a list of some of my pages or projects
a quiz generator, using OpenTDB to supply the questions.
This was originally made as a challenge to see if I could make a mostly accessible (by my current standards, let me know if/how it can be improved) test / score system that used css to do all the interactivity of the quiz (once generated).
Afterwards I focused on making the quiz's that were generated print friendly and styling the questions around grade school tests using more css.
A simulator for Tower Unite's laser expressions.
The parser uses parser-lang, this made writing the parser pretty easy and only took an hour or so. Most of the time was spent verifying behavior between Tower Unite and my parser.
I wrote a basic ast node based interpreter, but it wasn't very efficient so I wrote a bytecode compiler and interpreter and the significantly improved things. Even still, I still wanted better performance and so I wrote a bytecode interpreter in assemblyscript.
Unfortunately, most of the transferred size is from the wasm binary generated from assemblyscript.
The actual projector output is a simple canvas 2d renderer.
If I come back to this in the future, I'd like to transpile the language to a gpu shader, handwrite the parser, and improve the wasm binary size.
Most of the interpreter's logic is pretty simple, it's just a bit tedious to write by hand. So making a small language similar to walt for generating a smaller wasm binary might be beneficial.
I've since released 2.0, which replaces the old parser with a handwritten one, and the renderer with gpu shader compilation.
The transfer size increased a bit and it mostly comes from the library twlg-core.js being imported, something I'd like to remove a dependency on in the future.