GSoC 2012 Application Vishesh Kumar: Equation Editor

Visheshk edited this page Apr 4, 2012 · 1 revision
Clone this wiki locally

Personal Details

Name: Vishesh Kumar

University: Indian Institute of Technology, Guwahati

Short bio: I have had an avid interest in math since forever, and have experience with problem solving contests and such, as well. Apart from that, I like to program, though most of my experience is only with algorithmic problem solving (in C/C++).

Contact Info: E-mail and Google chat – Github username: visheshk

##Coding Skills

Platform: Primarily Mac OS X 10.6; secondarily Ubuntu

I have used Python since a long time, but only very basic tools in the same, and very little development of any real

Slight experience with Mercurial, and a little with Git.


I plan to make an easy-to-interact-with equation editor, for the desktop version of Sympy, as well as the web version in Sympy-Live, which makes it convenient to type equations or enter queries without knowing the entire syntax required by Sympy. This could be integrated with some natural language processing capabilities, added as a part of my project or other projects like Sympy Gamma, to make interaction with Sympy remarkably easy. The idea seems rather interesting to me because Sympy could be useful in some mainstream sense by interested students, and many other people, if there was a lower entry barrier with respect to the syntax required for Sympy queries.

Possible contributions to plotting module: Interested in implementing a plotting capability for greater than 3-D surfaces, as cross-sectional views by changing the further dimension variables, and possibly generating isometric, and other projections, of hyper dimensional surfaces.

Making an interactive interface for seeing the plots of normal equations - possibly making the interface provided by matplotlib in the python window, have controllers to change variables.


The first work to do is to inspect all the possible interfacing tools I can use to make the required editor, for all the platforms to be considered. (Curses or Urwid for desktop, or something like Tkinter or wxpython. HTML/CSS and Javascript for Sympy Live and web interfaces. (any alternates? Flash?) Mobile app interfaces - Qt toolkit, Java, or native development for Android and iOS.) After making a mock-up of the intended design, I will begin preparing the required interface for the desktop. The initial aim will be to cover all the basic and most-used functionality offered by sympy, in the interface, with eventual build-up to include additional functionality, and ideally benig adequately extendable.

I do not have a detailed idea of the time this will take, but I do believe I will be able to work on an interface for the web tool as well. The scope for making interfaces for individual mobile platforms, I believe would extend beyond the summer, but I would love to try to cover as much as I can (I do have the tools for, and very basic experience with Android and iOS development as well.)

###Patch I am currently attempting to work on this patch: I have not yet committed any change, and will mention updates here as soon as I do.