Show HN: A working 3D model of an Enigma machine
Exploring the Enigma: An Interactive 3D Experience
This project presents a functional 3D simulation of the Enigma machine, blending historical education with technical demonstration.
Historical Context: During World War II, the German military relied on the Enigma to secure their communications. However, the combined efforts of French, Polish, and British cryptanalysts eventually cracked the code by exploiting both the machine's inherent flaws and the operators' predictable habits.
📡 The Transmission Workflow
The process of sending a message wasn't just about typing; it involved a multi-step relay.
While anyone with a radio could intercept the signal, the content remained —completely illegible without the correct daily configuration.
⚙️ Configuring the Machine
To decrypt a message, the operator needed the "Daily Key," distributed via top-secret sheets. These documents were carried on planes strictly forbidden on aircraft and printed with water-soluble ink to ensure they could be destroyed instantly if captured.
The Four Pillars of Setup
| German Term | English Translation | Description | Detail |
|---|---|---|---|
Grundstellung | Initial Position | The starting letter for each rotor. | Set via the rotor windows. |
Steckerverbindungen | Plugboard Settings | Cables connecting pairs of letters. | Started at 6 cables, grew to 10. |
Walzenlage | Rotor Order | Which rotors are used and in what slot. | Army/Air Force: 5 options; Navy: 8 options. |
Ringstellung | Ring Settings | The offset of the alphabet ring. | Shifts the ring relative to the internal wiring. |
Setup Checklist
- Select the three rotors for the day (
Walzenlage). - Adjust the alphabet rings (
Ringstellung). - Connect the plugboard cables (
Steckerverbindungen). - Set the starting letters (
Grundstellung).
⌨️ Operating the Device
The interface allows users to interact with the machine using their keyboard. The logic follows a complex path: \text{Input Letter} \rightarrow \text{Plugboard} \rightarrow \text{Rotors (Right \rightarrowLeft)} \rightarrow \text{Reflector} \rightarrow \text{Rotors (Left\rightarrow Right)} \rightarrow \text{Plugboard} \rightarrow \text{Lamp}
Interaction Guide:
- Type on your keyboard to actuate the keys.
- Observe the lamp that lights up for each letter.
- Transmit the result using the Morse key.
Example Encrypted Telegram:
Input: HELLO
Output: KQXRT
Morse: -.- --.- --.. .-. -
Note: To fully experience the 3D interactivity and the simulated radio transmission, JavaScript must be enabled in your browser.