If you have never used XPP before, we strongly recommend you download a copy (http://www.math.pitt.edu/~bard/xpp/download.html) and try it out! There is plenty of documentation (http://www.math.pitt.edu/~bard/xpp/help/xpphelp.html) and hundreds of example ODE files (http://www.math.pitt.edu/~bard/xpp/odes/). If you have any questions, don't hesitate to contact either of us: bard@pitt.edu or ashutoshmohan@gmail.com. If you have any ideas other than the ones below, let us know!


Idea 1: Web port

The overall goal of this project will be to port XPP so that it runs as a web application. The web application should mimic all aspects of the desktop and web versions of XPP.

Idea 2: Android port

This will be similar to the XPP iOS port.


Both the above projects will be along the following lines.


Phase 1: Batch mode

  1. User uploads an ODE file with any additional data files.

  2. Gets back the results as a text file


For phase 1 you will need to be able to set up a server and get the core XPP code to compile, run and serve requests (for idea 1).


Phase 2: Batch mode with plotting

  1. Can plot results in either the browser (idea 1) or the device (idea 2)

  2. Can tweak the plot, change plot settings (what to plot, colors etc.) and export as image.

For phase 2, you should be able to set up plotting (probably using something like (http://whiff.sourceforge.net/).


Phase 3: ODE editor + separate sessions for users

  1. Users should be able to sign up/login and save ODE files in the server. (idea 1)

  2. Editor to type in ODE files.

  3. Autocomplete, error reporting, export files.

  4. Run ODE files


Phase 4: Implement nullclines, direction fields, 2D/3D graphing settings, graph size settings, numerics settings.

  1. Most of these variables can be set/get using the core XPP library.

  2. Should rethink XPP GUI for web applications (idea 1) and android (idea 2; though this one might not be too hard. We are expecting the android interface will mimic as much as possible the iOS interface).

  3. All functions should be accessible using shortcuts.


Phase 5: Implement animations, SET files, array plots. Testing

  1. Most of these functions can be easily accessed from the core XPP library.

  2. The web application should work on all major browsers (idea 1) and major devices (idea 2).