What this simulates, specifically
"Enigma" was never one machine — commercial, diplomatic, Army, Air Force, and Navy versions all differed in rotor count and wiring. This tool models the 3-rotor Wehrmacht service Enigma (Enigma I), the version used by the German Army and Air Force from the 1930s onward and functionally identical, in 3-rotor mode, to the Kriegsmarine's M3. It offers the five rotors issued with that model (I through V, any three of which could be selected and ordered by the operator) and both service reflectors, UKW-B and UKW-C. It does not model the 4-rotor M4 that the Navy introduced for U-boat traffic in February 1942, which added a thin fourth rotor and paired reflectors (UKW-B thin / UKW-C thin) specifically to counter Allied progress against the 3-rotor machine.
The rotor wiring, notch positions, and reflector wiring used here are public-domain historical specifications (see Sources below), not approximations. The engine reproduces the exact stepping mechanism, including the double-stepping anomaly: when the middle rotor sits on its own turnover notch, it advances again on that keypress instead of waiting for the right rotor to push it, dragging the left rotor forward with it. That quirk is a side effect of the physical pawl-and-ratchet mechanism, not a design choice, and it's why Enigma's rotor cycle is shorter than a naive three-wheel odometer would suggest.
How a keypress actually becomes a lamp
Press a key and four things happen in order, all before the lamp lights. First, the rotors step (at least the right-hand rotor, sometimes more, per the anomaly above). Second, the signal passes through the plugboard, swapping any letter pair you've wired. Third, it runs right-to-left through all three rotors, each one a fixed substitution cipher offset by its current position. Fourth, it hits the reflector, which sends it back left-to-right through the same three rotors, then back through the plugboard, and only then lights a lamp.
That reflector round trip is what makes Enigma reciprocal: with identical settings, encrypting a ciphertext produces the original plaintext back, which is also exactly why an operator and a receiving station could use the same machine, same settings, for both directions. It's also the source of Enigma's one unbreakable structural weakness — see the FAQ below on why no letter ever maps to itself.
From this simulator to a real wartime message
Our Zimmermann Telegram piece covers a diplomatic cipher intercepted and decoded by hand a generation before Enigma existed; our Navajo Code Talkers piece covers a wholly different wartime solution to the same problem, a code with no machine at all. Enigma sits between those two approaches: a machine cipher meant to be fast enough for daily battlefield traffic and, its designers believed, mathematically secure against the kind of manual cryptanalysis that broke the Zimmermann cable. Load the verification message above to see the kind of check real operators ran, a known plaintext and known settings, used to confirm two machines agreed before trusting them with an actual order.