Numbas is an open-source system for creating SCORM-compliant exams which run entirely in the browser, developed by Newcastle University's School of Maths and Stats.

- Can be run on anything that has a web browser.
- Compatible with IE8+, Firefox 3+, Chrome, Safari, Opera, iPhone, Android, etc.
- Implemented entirely in client-side javascript - requires no plugins, no installation on client's machine, no communication with servers.
- Interacts with LMSs such as Blackboard and Moodle through SCORM. Very detailed session data are recorded.
- Extensive support for questions of a mathematical nature; answers to questions can be mathematical expressions.
- Mathematics display is pure LaTeX, using MathJax.
- Rich content such as videos, interactive graphs easily added.
- Questions can be fully randomised.
- Write questions using simple markup with any text editor.
- Easily extensible.

- Download and extract Numbas package: contains source files and Python scripts to compile exams.
- Write exam: plain text file in a JSON-like format, with Textile/HTML for content markup. Shouldn't be any harder than writing a LaTeX document.
- Compile exam: creates directory or zip file containing standalone exam. Ready to run straight-away.
- Upload to LMS for session tracking, or run standalone.

- jQuery - jquery.com - page manipulation, UI.
- Sarissa - sarissa.sf.net - cross-browser XML support
- MathJax - mathjax.org - maths display \[ \begin{aligned} \nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} & = \frac{4\pi}{c}\vec{\mathbf{j}} \\ \nabla \cdot \vec{\mathbf{E}} & = 4 \pi \rho \\ \nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} & = \vec{\mathbf{0}} \\ \nabla \cdot \vec{\mathbf{B}} & = 0 \end{aligned} \]
- JSXGraph - jsxgraph.uni-bayreuth.de - interactive graphs and geometry

- Number entry
- Text entry - match set pattern
- JME - enter mathematical expression
- Multiple choice - choose one from a list, several from a list, or grid of choices

All question types can be randomised.

- Trapping student input for carry-over marks.
- Adaptive feedback and marking.
- More question types.