Devlog #7
The engine has been correct for a while now — rotor stepping, ring settings, reflector, all of it. This session wasn’t about correctness, it was about feel: making the wooden lid open and shut for real, and making a keypress light up an actual path of current through the machine instead of just blinking a lamp at the end.
Then I committed all three changes in one go and the build blew up in my face. Worth it.
What actually works now
-
The lid hinges open and closed. A
▣ 뚜껑toggle drives a hinge pivot, and the render loop lerps it toward the target angle so it swings instead of snapping shut. - Rebuilt the lid as a real box. My first lid was a single flat plank — it clipped straight through the rotors and only covered half the keyboard. Now it’s a hollow box (top + front + two side walls) with the hinge raised above the rotor tops, so it clears everything when it closes.
- Live current path. Until now, pressing a key did nothing to the cabling — the keyboard-to-plugboard route was never visualized at all. Now I take the trace the engine hands back and draw the whole route — keycap → plugboard → rotor contacts → lamp — as one glowing tube, with a spark running along it.
- Heavier materials pass. Nudged the wood/brass/steel roughness, metalness, and env-map strength a notch heavier to kill the last of the plastic look.
Stuff that tripped me up
- I committed all three changes at once and the build died on boot — three TypeScript errors, all from one mistake. My new
lidstore collided with an existinglidmesh variable, so the compiler threwProperty 'subscribe' does not exist..., an implicit-anyfell out of that, and on top of it I’d pasted over and deleted apartnerOfhelper. Aliasing the import tolidStoreand restoring the helper cleared all three at once. - Lesson, paid the usual way: when you add a store with the same name as an existing mesh variable, alias it at the import line first — before TypeScript makes you.
Next up
The case opens and the wiring lights up, but it isn’t historically right yet. The real Enigma’s case came apart in three pieces — the main lid, a fold-down flap in front of the plugboard, and a separate cover over the rotors — and mine is still one lid sitting over fully exposed rotors. Next session: make it match the real thing.
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.