Fizz is a library for rendering in an old physics textbook style. It's a reimplementation of @jemmybutton's Fiziko library.
See demo page for example and parameters (there are a lot of them)
I really liked Fiziko when I ran across it, and I wanted to tinker with it, but the language it's written in -- MetaPost -- is almost incomprehensible to me. Rather than trying to get it working I reimplemented it (some of it, anyway) in typescript, targeting SVG and canvas.
GPLv3