A State Machine With a Border Running Through ItA step in my virtual lab looks simple from the outside. The scene settles, the camera moves somewhere useful, the student does something, objects animate to where they belong, a physics simulation runAug 13 · 10 min readboundarylayer.hashnode.dev
A Constraint Solver With No EquationsSomeone authoring a virtual lab experiment does not want to type coordinates. They want to say what the scene is: The compass sits five centimetres east of the bar magnet, resting on the desk, turnedAug 13 · 16 min readboundarylayer.hashnode.dev
An Engine Inside the EngineWe ship one Unity WebGL build. It serves two applications that share almost no user-facing behaviour. One is a lab player: it loads an authored document, steps a student through an experiment, animateAug 13 · 8 min readboundarylayer.hashnode.dev
Eighty Lines Instead of a ContainerThere is a file in my Unity project called ServiceLocator.cs. It is eighty-three lines long, it wraps a static Dictionary<Type, object>, and by the standard reading of the literature it is an anti-patAug 13 · 12 min readboundarylayer.hashnode.dev
Two Float Arrays and a Function CallI spent a long stretch building the layer where a Unity WebGL build meets the JavaScript that drives the interface around it. Unity WebGL means Unity compiled to WebAssembly, which is the fact this enAug 13 · 15 min readboundarylayer.hashnode.dev