My little math expression parse-evaluate-render thing is coming along nicely. It's far from complete and the codebase is chaotic, but it does let you perform a fair bit of stuff, such as trigonometry and linear algebra.
I keep it in an Observable notebook for now, but it could easily be standalone.
The expressions are processed using the facilities in math.js, plus my own code, and is rendered with KaTeX.