I got my adaptive sampling branch merged last week. Now the plots are sampled adaptively and is more accurate. I also added a lot of tests to the implicit plotting branch and the coverage now is greater than 90%.
One of the major things decided in the previous week was to restructure the plot
function. Presently plot
is a single function, which depending on its input, renders
an 2d or an 3d plot. Though it plots the right kind of plot, the plot
function is
quite complex and it was decided to split the plot function into smaller functions
that plots a particular type of plot. I tried an approach where all 2D plots are plotted
by a plot2d
function, the 3D plots by plot3D
and the existing plot_implicit
plots to plot regions and implicit equations. Aaron mentioned that the API is still very
complex as I was using tuples and lists to differentiate between a parametric plot
and a 2d line plot and he was right. It is a bit complex and it was decided to have
a functions for each kind of plot.
I think i can have the new plot functions as an PR by next week and I would like to try getting a Mayavi backend ready by the end of my GSoC period.
I forgot to mention why I deviated from my what I said I would do in my GSoC application. I tried getting a svgfig backend ready for almost one and a half week, and it was quite difficult. svgfig is not being updated and I had a hard time getting the axis ticks labelling to work most of the time. I wrote to the project maintainer many times and he helped me with a lot of things, but the library was not polished enough to use it with Sympy Live. So plotting for SymPy Live should be attempted with a javascript plotting library rather than a python backend. If we get matplotlib support on GAE, then it would be awesome.