Math formula editor lets users enter and edit mathematical formulas.
Its main value is understanding the formula's meaning.
Math Editor is the first class interface between people who need to work with familiar formula notation and specialized math software that need strict input.
When we developed an AI based Calculus tutor for one of our customers, we needed a way for users to interact with the tutor by entering math formulas for the tutor to understand and process.
None of the existing formula editors suited us for the following reasons:
We developed our own formula editor that understands the formula's meaning. The editor is user-friendly, accessible and ready for integration with any external systems.
The editor can convert a manually entered formula into a strict language that is understood by external systems such as Computer Algebra Systems, plotting libraries and a lot more.
It is an ideal interface between people who need to work with familiar formula notation and specialized math software products that need strict input.
Integration with SymPy - an open source computer algebra system lets us automatically take the derivative, integrals, simplify the formula and a lot more.
Integration with matplotlib, a plotting library, enables 2d and 3d plotting features.
The editor has a syntax tree and a semantic tree of the expression inside. The trees are updated on the fly.
Syntax tree reflects the expression structure. Semantic tree reflects the expression's meaning.
Using the semantic tree we can integrate the editor with a broad range of math-oriented software.
You can change the formula and see how the trees get rebuilt on the fly here
Understanding the meaning of the expression, the editor highlights syntax errors and can give context-sensitive hints when writing a formula
The editor is adapted for blind people, and can vocalize the input character-by-character as well as read complete formulas as if a human mathematician did it.
The editor is API driven and extensible. As a developer you have full control over the editor’s behavior, can listen and react to the in-editor events, can interact with the editor’s users and post-process the user’s input (e.g adding custom validators or custom heuristics).
The editor can be integrated with a lot of existing software to bring a first class human-machine interface in the mathematical area.
The most obvious applications are: