NanoEdit is an algebraic modeler.
The expression defines the modeled objects but also the user interfaces (web, X11...).
It is used by students as an interactive framework to implement and test 3d modeling algorithms.
But all the documentation is in french...
The home page.