[GSoC] D3.js and Three.js backend for our plotting module

355 views
Skip to first unread message

SAHIL SHEKHAWAT

unread,
Mar 18, 2014, 3:50:09 AM3/18/14
to sy...@googlegroups.com
I have been working on a proposal to implement 3D plotting in SymPyGamma, and  Jason pointed me to the importance of d3.js and Three.js backend in the Sympy itself. so, i want to discuss the idea.As only four days are left please reply.
My motivation is https://groups.google.com/forum/#!searchin/sympy/plotting$20module/sympy/q3kOnJfRXdw/JAEL6AyJnZQJ by Stefan Krastanov . SymPyGamma's plotting is based on D3.js and does not used SymPy's plotting module which limits the plots that can be produced by Gamma BUT if i can implement a D3.js backend for 2D plotting and Three.js backend for 3D plotting in SymPy itself which can be directly used in Gamma as done by Stefan .here: http://blog.krastanov.org/2013/05/14/sympy-plots-with-d3-in-ipyhton will it be more beneficial than implementing Three.js in Gamma only?
Also, the point about the python execution time limit on App engine we can use Ajax to separate the execution into multiple python executuion as suggested by Stefan in the discussion and also we can export the results as Gist and Query them which will reduce the execution time significantly, i have done significant work in my PR https://github.com/sympy/sympy_gamma/pull/32.

Please tell me is it any good? should i change my proposal? I can do this if everyone think that this is good!

Christophe Bal

unread,
Mar 18, 2014, 5:15:59 AM3/18/14
to sympy-list
Hello,
you can also look at Bokeh.

Christophe BAL


--
You received this message because you are subscribed to the Google Groups "sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sympy+un...@googlegroups.com.
To post to this group, send email to sy...@googlegroups.com.
Visit this group at http://groups.google.com/group/sympy.
To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/d2d0fc0b-187a-4a16-bf5b-d2ffdc6da826%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

SAHIL SHEKHAWAT

unread,
Mar 18, 2014, 5:20:02 AM3/18/14
to sy...@googlegroups.com
Its been copyrighted by Continuum Analytics, Inc.. will that be problem?
But it looks good!


SAHIL SHEKHAWAT

unread,
Mar 18, 2014, 5:22:51 AM3/18/14
to sy...@googlegroups.com
But sadly it has a lot of dependencies
  • NumPy
  • Flask
  • Redis
  • Requests
  • gevent
  • gevent-websocket
  • Pandas

Christophe Bal

unread,
Mar 18, 2014, 5:46:43 AM3/18/14
to sympy-list

This dependencies are due to the fact that this project focuses on datas. I've pointed to this project just for the "philosophy" of this project.

If you want to propose a "JS viewer", you "just" have to translate Sympy plot to the syntax of D3.js and/or three.js or another free JS library. This is not a too hard task.

Maybe the first steps will be to work with basic primitives like text, line, polygons, circles... After that being implemented, you could add function plots and others...

A big problem that you will meet is the support of math expressions. Maybe JSXGraph can be a more useful tools. You have examples here and especially this one which is a graphic containing MathJax equations.

Warning ! With three.js, there is the problem of the support of webgl by the web browsers. 

SAHIL SHEKHAWAT

unread,
Mar 18, 2014, 5:52:36 AM3/18/14
to sy...@googlegroups.com
Thanks a lot Christophe!
I misunderstood what you said..This look nice
Also, With three.js we always have an option to fall back to html canvas which every browser support ( specially IE7 ). I don't think that will a problem. What you say?

Christophe Bal

unread,
Mar 18, 2014, 5:57:10 AM3/18/14
to sympy-list
>>> With three.js we always have an option to fall back 
>>> to html canvas which every browser support ( specially IE7 ).

I didn't know that. The problem that you will met with three.js is the suport of formulas.



--
You received this message because you are subscribed to the Google Groups "sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sympy+un...@googlegroups.com.
To post to this group, send email to sy...@googlegroups.com.
Visit this group at http://groups.google.com/group/sympy.

SAHIL SHEKHAWAT

unread,
Mar 18, 2014, 6:08:40 AM3/18/14
to sy...@googlegroups.com
Can you please elaborate a bit about function's support of Three.js i am a bit unclear.. 
you can look here http://stemkoski.github.io/Three.js/Graphulus-Function.html this example is able to plot function ( which the javascript support). and we have another option to use mathbox.js (https://github.com/unconed/MathBox.js/) instead of three.js 
This (http://acko.net/blog/making-mathbox/) is a nice example of mathbox.js

Christophe Bal

unread,
Mar 18, 2014, 6:12:56 AM3/18/14
to sympy-list
Sorry for the poorness of my english. Indeed when I wrote "formulas" I think about "legends containing formulas".

Christophe Bal

unread,
Mar 18, 2014, 6:18:46 AM3/18/14
to sympy-list
This MathBox is just amazing !

SAHIL SHEKHAWAT

unread,
Mar 18, 2014, 6:21:52 AM3/18/14
to sy...@googlegroups.com
Really! :D
Then i guess we can use it instead of Three.js. They have used tQuery with Three.js and also have MIT license. and most of the things are ready-made.

SAHIL SHEKHAWAT

unread,
Mar 18, 2014, 6:56:29 AM3/18/14
to sy...@googlegroups.com
One more important thing,
By actually creating a JS viewer i can probably provide an alternative of matplotlib and to interpret the javascript code produced from sympy i can:
1) Use libraries like Rhino and Spidermonkey
2) Use browser.
3) Just leave the code as it is and applications like Live or Gamma can directly call it.

What you think, will it be any good specially if a user have an internet connectivity and can install a libary ( or just use his browser ) to view much nicer plotting by D3.js and Mathbox.js instead of what matplotlib's plot which is quite slow and is not shard enough.?
This will also introduce usable interactivity within plots. 

Christophe Bal

unread,
Mar 18, 2014, 7:27:50 AM3/18/14
to sympy-list
Do not forget that "fixed" pictures are useful for paper reports. On the other hand, I think that using web browsers for sliders is the better solution to use actually because of the dynamical features and the JS library that helps to build such sliders. 

SAHIL SHEKHAWAT

unread,
Mar 18, 2014, 7:41:47 AM3/18/14
to sy...@googlegroups.com
Indeed they are and for that there is already an option of downloading from matplotlib's support. 
We can give an option to view the plot in the web browser and Live and Gamma are always there to help us. They can render the plots very nicely.
I think it is very significant and should be my proposal for GSOC.
Thanks a lot Christophe for your help.

Jason Moore

unread,
Mar 18, 2014, 8:47:56 AM3/18/14
to sy...@googlegroups.com
There are a lot people working on plotting in the browser, many of them tied to python execution. There probably isn't much reason to reinvent the wheel here. This is another more simple project that implements a d3.js backend for matplotlib: mpld3.github.io . Also there matplotlib has a webagg backend.

--
You received this message because you are subscribed to the Google Groups "sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sympy+un...@googlegroups.com.
To post to this group, send email to sy...@googlegroups.com.
Visit this group at http://groups.google.com/group/sympy.

SAHIL SHEKHAWAT

unread,
Mar 18, 2014, 9:02:12 AM3/18/14
to sy...@googlegroups.com
So, how can i improve sympy then?
I mean you said that we want 3D plotting for SymPy as a whole. so , how can i improve that?


SAHIL SHEKHAWAT

unread,
Mar 18, 2014, 9:15:10 AM3/18/14
to sy...@googlegroups.com
sorry for the slang but if a lot of people are working on the similar project then what is there that i can work on!
I talked to Ondrej and David and they said that implementing 3D plotting for Gamma is fine. Please suggest something.

Jason Moore

unread,
Mar 18, 2014, 10:25:32 AM3/18/14
to sy...@googlegroups.com
My suggestion on melange was just to mention that if you only focus on 3D plotting for SymPy Gamma then we are missing the majority of SymPy users. My hunch is that 99% of people who use SymPy use it locally, not from SymPy live or SymPy Gamma. If we currently don't support 3D plotting locally, then the effort may be more fruitful adding 3D plotting to SymPy for local use. If 3D plotting for SymPy were implemented in such a way that it is web compatible, then the plotting for SymPy Live and SymPy Gamma will be gained almost for "free".

Jason Moore

unread,
Mar 18, 2014, 10:28:11 AM3/18/14
to sy...@googlegroups.com
Correction: "My hunch is that 99% of sympy use is local, ..."

SAHIL SHEKHAWAT

unread,
Mar 18, 2014, 10:32:49 AM3/18/14
to sy...@googlegroups.com
But we do support 3D plotting by matplotlib and also you mentioned that a lot of people are working on making it browser compatible.
Sorry if i am irritating but i just want to clarify.


Jason Moore

unread,
Mar 18, 2014, 10:57:11 AM3/18/14
to sy...@googlegroups.com
If we already use matplotlib for 3D plotting, then a long term solution to this is to add three.js to the web backend of any one of the new plotting libraries that are popping up (bokeh, mpld3, matplotlib's webagg backend). Then you can simply use the library for the backend to the matplotlib calls. Now, that route is more arduous and may not be the fastest course to having 3D plotting in Gamma. You can certainly implement a custom 3D web based plotter for SymPy Gamma that only works for SymPy Gamma, but as soon as these aforementioned libraries mature we will most certainly use them as the backend for SymPy plotting. I'm not involved in the SymPy plotting package so I don't know the roadmap for it or what people really want. But people that are doing plotting want what these new libraries are creating and one or more of them will become a de facto web plotting library for 3D graphics. But also having a working 3D plot in Gamma by the end of the summer will be cool, regardless if we use the more established libs in the future. If you want to go the fast and dirty route, then the Mathbox.js looks like a good choice.

Jason Moore

unread,
Mar 18, 2014, 10:58:24 AM3/18/14
to sy...@googlegroups.com
But even if you implement something with Mathbox.js then it would be nice if users can use it locally or through Live/Gamma. That is the approach with took with pydy-viz. Right now we can run them locally and if you want embed it in a website you can.

SAHIL SHEKHAWAT

unread,
Mar 18, 2014, 11:19:47 AM3/18/14
to sy...@googlegroups.com
can you please point me out the direction where i can learn how PyDy works?


Jason Moore

unread,
Mar 18, 2014, 11:22:53 AM3/18/14
to sy...@googlegroups.com
We basically generate data on the python side, then write a json file to disk, then we have a generic html/js/css template that uses three.js to load in all the data from the json file and create a scene. The json file is the communication between python and js. This is rudimentary, but works and I think it would work for your idea too.

SAHIL SHEKHAWAT

unread,
Mar 18, 2014, 11:47:50 AM3/18/14
to sy...@googlegroups.com
That exactly what i was looking for!
I think i will go by this concept only...its awesome!
about using Json mathics guys also use json to render 3D plotting for Three.js, Its good enough and works.
Thanks again. :)


David Li

unread,
Mar 18, 2014, 12:12:55 PM3/18/14
to sy...@googlegroups.com
Just some thoughts:
  • I agree with Jason that ultimately, integrating a library specifically focused on Python and web plotting is the best course for SymPy and Gamma/Live in general.
    • Gamma/Live's problem is that it runs on App Engine - anything that requires a server won't work. (I think Bokeh/WebAgg fall into this category, but I'm not sure. WebAgg also isn't available on App Engine yet anyways.)
      • WebAgg seems to render the plot on the server and send frames to the client. Locally it ran at an acceptable (but slow) rate; I'm not sure how well this would hold up on App Engine.
    • One of the reasons that Gamma uses its own plotting is because it lets the user pan the plot and load more of the plot on demand.
  • On mpld3: it would be nice to integrate just to support more plots, but for 3D specifically it won't help.
  • On passing JSON data to the browser to render: this is what we do already.
David

SAHIL SHEKHAWAT

unread,
Mar 18, 2014, 12:29:50 PM3/18/14
to sy...@googlegroups.com
David,
So, what your thought are,? should i write the codes into Gamma and Live or into Sympy because both can be done and both will use Json which the Three.js will use anyways!
* By implementing into Sympy we can make the plots  locally  like PyDy and then also create a html element which will contain  all the codes. ( somehow)
There is not much difference anyways so what you suggest?




SAHIL SHEKHAWAT

unread,
Mar 18, 2014, 12:51:14 PM3/18/14
to sy...@googlegroups.com
one more thing, for Three.js we need not to worry about panning, so according to me there isn't much difference
While implementing in Sympy has an extra advantage but also we will need to figure out some ways to do things but with implementing into SymPyGamma and Live we are implementing codes for which we are writing and is straight and simple.

Mateusz Paprocki

unread,
Mar 18, 2014, 1:03:37 PM3/18/14
to sympy
Hi,

On 18 March 2014 17:12, David Li <li.da...@gmail.com> wrote:
> Just some thoughts:
>
> I agree with Jason that ultimately, integrating a library specifically
> focused on Python and web plotting is the best course for SymPy and
> Gamma/Live in general.
>
> Gamma/Live's problem is that it runs on App Engine - anything that requires
> a server won't work. (I think Bokeh/WebAgg fall into this category, but I'm
> not sure.

Bokeh can just generate JSON/JavaScript/HTML, so no server is required
(thought possible as well). I'm not sure if it would run on App Engine
anyway, because of its dependencies (numpy, pandas, etc.), but we will
make them optional (most of Bokeh's dependencies are used by the
bokeh.server module anyway).

Mateusz
> https://groups.google.com/d/msgid/sympy/639b6471-703e-4905-b2b2-f21ca2afad1b%40googlegroups.com.

Jason Moore

unread,
Mar 18, 2014, 1:08:04 PM3/18/14
to sy...@googlegroups.com
Also, note that even though WebGL is supported in most of the latest browser versions, this will not work with a lot of peoples systems. We've had tons of trouble getting the visualizations to run cross browser and cross platform. I still haven't figured out MAC yet.

https://github.com/pydy/pydy-viz/issues/113

SAHIL SHEKHAWAT

unread,
Mar 18, 2014, 1:13:27 PM3/18/14
to sy...@googlegroups.com
Jason,
But all the browser do support HTML Canvas right?
and Three.js uses it as a fallback option if there is no WebGL.


Christophe Bal

unread,
Mar 18, 2014, 1:15:29 PM3/18/14
to sympy-list
I have a Mac and I can see all the official examples of Three.js.

Christophe BAL


Jason Moore

unread,
Mar 18, 2014, 1:15:53 PM3/18/14
to sy...@googlegroups.com
I don't know if it is that simple. If it is you are welcome to fixed pydy-viz with the solution.

SAHIL SHEKHAWAT

unread,
Mar 18, 2014, 1:17:37 PM3/18/14
to sy...@googlegroups.com
I can surely try to fix it! thakns for pointing that issue to us.

On Tuesday, March 18, 2014 1:20:09 PM UTC+5:30, SAHIL SHEKHAWAT wrote:
I have been working on a proposal to implement 3D plotting in SymPyGamma, and  Jason pointed me to the importance of d3.js and Three.js backend in the Sympy itself. so, i want to discuss the idea.As only four days are left please reply.
My motivation is https://groups.google.com/forum/#!searchin/sympy/plotting$20module/sympy/q3kOnJfRXdw/JAEL6AyJnZQJ by Stefan Krastanov . SymPyGamma's plotting is based on D3.js and does not used SymPy's plotting module which limits the plots that can be produced by Gamma BUT if i can implement a D3.js backend for 2D plotting and Three.js backend for 3D plotting in SymPy itself which can be directly used in Gamma as done by Stefan .here: http://blog.krastanov.org/2013/05/14/sympy-plots-with-d3-in-ipyhton will it be more beneficial than implementing Three.js in Gamma only?
Also, the point about the python execution time limit on App engine we can use Ajax to separate the execution into multiple python executuion as suggested by Stefan in the discussion and also we can export the results as Gist and Query them which will reduce the execution time significantly, i have done significant work in my PR https://github.com/sympy/sympy_gamma/pull/32.

Please tell me is it any good? should i change my proposal? I can do this if everyone think that this is good!

Aaron Meurer

unread,
Mar 19, 2014, 8:34:25 PM3/19/14
to sy...@googlegroups.com
SymPy is also copyrighted. The important thing is the license, which
is BSD (the same as SymPy), which basically says you can take the
source code and do whatever you want with it (read it, it's quite
short).

The dependencies make it not suitable for the App Engine (though we
don't *have* to stick with the App Engine). My hope is that
Continuum's Wakari platform will develop into something that will be a
much better replacement for the App Engine for SymPy Live and SymPy
Gamma.

(by the way, I work for Continuum, so if you have any questions about
Bokeh or Wakari, just let me know and I can pass them on)

Aaron Meurer

On Tue, Mar 18, 2014 at 4:20 AM, SAHIL SHEKHAWAT
<sahilshe...@gmail.com> wrote:
> Its been copyrighted by Continuum Analytics, Inc.. will that be problem?
> But it looks good!
>
>
> On Tue, Mar 18, 2014 at 2:45 PM, Christophe Bal <proj...@gmail.com> wrote:
>>
>> Hello,
>> you can also look at Bokeh.
>>
>> Christophe BAL
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "sympy" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an
>>> email to sympy+un...@googlegroups.com.
>>> To post to this group, send email to sy...@googlegroups.com.
>>> Visit this group at http://groups.google.com/group/sympy.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/sympy/d2d0fc0b-187a-4a16-bf5b-d2ffdc6da826%40googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "sympy" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to sympy+un...@googlegroups.com.
>> To post to this group, send email to sy...@googlegroups.com.
>> Visit this group at http://groups.google.com/group/sympy.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/sympy/CAAb4jG%3D59KLpO4gazStjR7FLeiDTAHNX2qyng8vZNTPaqCPeaQ%40mail.gmail.com.
>>
>> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sympy+un...@googlegroups.com.
> To post to this group, send email to sy...@googlegroups.com.
> Visit this group at http://groups.google.com/group/sympy.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sympy/CA%2BOR%3DbjhKaoe%2BJaY%3DwnpZaXz_ps9S5Zhw%2BgCNGdBv-uwuJ4hnw%40mail.gmail.com.

SAHIL SHEKHAWAT

unread,
Mar 19, 2014, 9:07:19 PM3/19/14
to sy...@googlegroups.com
Aaron,
But i have proposed something different, without using any library other than three.js. 
I just want to user three.js and create a browser/web based backend which will work locally ( on the browsers) as well as on the Gamma and Live.


Jason Moore

unread,
Mar 19, 2014, 10:32:54 PM3/19/14
to sy...@googlegroups.com
Is there any reason not to use MathBox.js? Seems like you'll have to write very similar code to what is already implemented there.

SAHIL SHEKHAWAT

unread,
Mar 19, 2014, 10:39:30 PM3/19/14
to sy...@googlegroups.com
Yeah! That will be nice!


SAHIL SHEKHAWAT

unread,
Mar 19, 2014, 10:41:41 PM3/19/14
to sy...@googlegroups.com
And I can focus more on creating a python base which will make the JSON rather than concentrating on graphs and animations (Three.js)

SAHIL SHEKHAWAT

unread,
Mar 19, 2014, 10:43:07 PM3/19/14
to sy...@googlegroups.com

SAHIL SHEKHAWAT

unread,
Mar 19, 2014, 10:43:38 PM3/19/14
to sy...@googlegroups.com
I don't have much time left for the deadline.

David Li

unread,
Mar 19, 2014, 10:47:55 PM3/19/14
to sy...@googlegroups.com
And I can focus more on creating a python base which will make the JSON rather than concentrating on graphs and animations (Three.js)

Doesn't SymPy already essentially have this? E.g.

>>> from sympy import *
>>> from sympy.plotting.plot import SurfaceOver2DRangeSeries
>>> x, y = symbols('x y')
>>> series = SurfaceOver2DRangeSeries(x + y, (x, -1, 1), (y, -1, 1))
>>> series.get_meshes()
(array([[-1.        , -0.95918367, -0.91836735, ...,  0.91836735,
         0.95918367,  1.        ],
...

All that would be left is converting the NumPy arrays to JSON. (This is what Gamma does.)

David

SAHIL SHEKHAWAT

unread,
Mar 19, 2014, 10:53:43 PM3/19/14
to sy...@googlegroups.com
I completely agree with you david but
1.we still need the cameras, lights, canvas,
2.we are using mathbox.js, I guess that json for it will be different.
3.Creating a server for the local users which will render the static files and javascript like Bokeh

Thanks for pointing out that we also have numpy arrays which i can use..


SAHIL SHEKHAWAT

unread,
Mar 19, 2014, 10:56:44 PM3/19/14
to sy...@googlegroups.com
David,
Then what you suggest i should do to intoduce 3D plotting in Sympy or Gamma/Live

David Li

unread,
Mar 19, 2014, 11:00:44 PM3/19/14
to sy...@googlegroups.com
Sahil,

I was just unsure what else exactly was needed on the Python end - I didn't account for the lighting, etc.

David

SAHIL SHEKHAWAT

unread,
Mar 19, 2014, 11:05:11 PM3/19/14
to sy...@googlegroups.com
It wouldn't be much but along with other things it will be like creating a separate base on which many other libraries can also be used like server.
And it will introduce 3D plotting in Gamma and Live also.
Thanks for pointing that out!

Overall how do you think the idea is?


David Li

unread,
Mar 19, 2014, 11:07:54 PM3/19/14
to sy...@googlegroups.com

One concern I have - does this mean we are bundling a copy of Three.js/MathBox with SymPy now? Or are we going to rely on a third party CDN?

David

SAHIL SHEKHAWAT

unread,
Mar 19, 2014, 11:10:00 PM3/19/14
to sy...@googlegroups.com
I think we include the Mathbox.js in Sympy to avoid any more dependencies, so that a local user can plot right away..
What you say? 


On Thu, Mar 20, 2014 at 8:37 AM, David Li <li.da...@gmail.com> wrote:

One concern I have - does this mean we are bundling a copy of Three.js/MathBox with SymPy now? Or are we going to rely on a third party CDN?

David

--
You received this message because you are subscribed to the Google Groups "sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sympy+un...@googlegroups.com.
To post to this group, send email to sy...@googlegroups.com.
Visit this group at http://groups.google.com/group/sympy.

SAHIL SHEKHAWAT

unread,
Mar 19, 2014, 11:56:17 PM3/19/14
to sy...@googlegroups.com
The problem with mathbox.js is that it is tested only on chrome and even then it's example http://acko.net/files/mathbox/MathBox.js/examples/3D.html is not rendering at all in chrome on  linux
I tried firefox also but no luck.

SAHIL SHEKHAWAT

unread,
Mar 19, 2014, 11:59:25 PM3/19/14
to sy...@googlegroups.com
And in Firefox also, the rendering of other examples is a bit laggy.
So, should i still go ahead with Mathbox.js or just use Three.js and write the codes for Three.js which will be do same thing as Mathbox.js
I can also change the mathbox.js to suit us better.
Any suggestion?

Ondřej Čertík

unread,
Mar 20, 2014, 2:58:34 AM3/20/14
to sympy
On Tue, Mar 18, 2014 at 3:20 AM, SAHIL SHEKHAWAT
<sahilshe...@gmail.com> wrote:
> Its been copyrighted by Continuum Analytics, Inc.. will that be problem?

No, that's not a problem, you simply copy their BSD license into your
code if you are reusing it.

Ondrej

SAHIL SHEKHAWAT

unread,
Mar 20, 2014, 3:31:41 AM3/20/14
to sy...@googlegroups.com
Instead of using Bokeh i will use their concept to create our backend which will render plots into browser like they do by using a server. i will write that server on my own just to get the static files. And i will create link between json and server so that the process can be stopped after genrating JS and static files which will used by Gamma and Live.
I am drafting my proposal now on this basis, any more suggestions are welcome.

SAHIL SHEKHAWAT

unread,
Mar 20, 2014, 3:34:42 AM3/20/14
to sy...@googlegroups.com
And also, i will use mathbox.js instead of Three.js as they already have the code base which i intend to create, so writing them on my own will not be a good choice.

SAHIL SHEKHAWAT

unread,
Mar 20, 2014, 10:40:48 AM3/20/14
to sy...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages