ZPet
Independent · not public
An interactive engine for teaching physics. A headless SI kernel and a Canvas interface. Of 24 experiments, 23 are clean-room remakes of PhET, and one is a demo of the framework itself.
Clean-room means the PhET source was not used. The behavior was reimplemented from the experiments. The interface has a Chinese paper look.
- The kernel uses a fixed 200 Hz clock, swappable integrators, and component-style state. Shared math and geometry are pulled up from individual experiments only when they are general enough and not duplicates.
- A scene can be a JSON recipe: envelope checks, templates, and deterministic checks. A command-line tool can validate a recipe or export SVG headlessly. Whoever writes the recipe, including a language model, does not have to touch rendering or the interface.
- Each experiment has a headless Chrome smoke script that checks the interaction.
TypeScript · Vite · Canvas
The repository is local. There is no public remote.