Virtual Enigma Simulation

Virtual Enigma is a detailed and accurate simulation of the German Enigma I and Enigma M4 machines using three.js

You can use it just as you would a real machine, look around, swap the rotors, set the wires on the stecker & change the ringstellung settings of the rotors. Tutorials are included to allow you to learn how to encipher/decipher using the machine.

There is even a working transceiver so you can send & receive Morse messages. Regular enciphered automated transmissions can be found on some frequencies for you to decipher.

It even includes a mobile version (on the same site) that implements the device orientation for the view.


The Enigma machine of which the code was deciphered in WW2 by the famous Alan Turing -interesting app for the fans of problem-solving / encryption / historical mechanisms!

As a feedback: there is a lot of interaction even when no hand cursor appears or other symbol (like the cover of the numerical rotors) so the user might miss them. I’d prefer the movement of the camera closer and at a better angle to the area of interest during interaction, and more consistent hints for the interaction areas -optionally removed/minimized after the user learns to operate the machine.

1 Like

Thanks for the feedback. There is an initial tutorial which I added which leads you through the main features and options you can interact with as you’re right, there’s a lot of potential interactions. It automatically clears after you’ve done it once but you can restart it from the Tutorial menu. Did you do this & did it not give enough detail on basic usage or what you can click on?

You can move your position around using the WASD keys to get a better view on PC and on mobile, there’s a camera position bottom right to easily alter your viewpoint to a set of fixed useful positions or to fine tune with the cursor pad.

Many thanks for taking an interest.

Sorry, I didn’t have time to read the tutorial, (although I glanced for a second over the controls page but it was too long and I didn’t see the WASD keys).

Of course in order to learn how to operate a complex machine, a manual is needed, but when I see a 3D visual interface I expect an intuitive navigation and interaction, that doesn’t need a manual or tutorial.

I applaud your idea to simulate that historical machine, and you’ve done great for the most part, but I think that the interface needs a bit more work, so that anyone can use it, navigate around, approach any part, interact with any part consistently and intuitively, without having to read any tutorials at all, just like we do in real life when we come into first contact with a new “toy”.

P.S. Making a user-interface intuitive is not easy, it’s still more art than science, but any effort invested pays back. Usability testing is a must, ideally with a group of testers (creators are always biased about their creations)…


That makes sense, I really appreciate you taking the time to give constructive feedback. A simpler entry point (maybe startup basic keys panel) for those that just want to play quickly. And more end user testing in future. Got it.

1 Like