Show HN: A working 3D model of an Enigma machine

(enigma.design)

94 points | by primitivesuave 1 day ago

13 comments

  • virtualcolossus 10 hours ago
    Good job, I like the many cutaways to show exactly what's going on inside.

    You may be interested in my simulation of Enigma (https://enigma.virtualcolossus.co.uk) which I wrote back in 2021 (pre-AI!). One of several I've done.

    Try it on an Android phone to look around it in VR or on PC/Mac for easier use. You can even send messages to other users over the internet using the radio & Morse key.

    • primitivesuave 2 hours ago
      Yours is amazing work, and certainly a higher degree of fidelity than I was able to achieve with AI assistance. The initial motivation behind this was largely driven by curiosity around the rotor motion (the ratchet and pawl assembly), and then into how the wiring actually works. For my brain, I needed to press the keys a hundred times and watch the current flow before it started making sense.

      I'm curious about how you worked out the inner dimensions and part placements so accurately. Thank you for providing this marvelous free resource!

  • espinielli 2 hours ago
  • heurekamala 8 hours ago
    Cool work. There are some of this educational gems here. Is there a site which combines these treasures (like in a virtual museum?)
    • primitivesuave 1 hour ago
      Thank you! Very honored to be considered an educational gem :)
  • dmcrespo 6 hours ago
    Really cool project! The only thing I noticed is that the performance feels a bit slow at times, and it could use a little more fluidity, especially when interacting with the model.

    Other than that, everything feels really well done. Building something like this in JavaScript/HTML, especially with a 3D model this detailed, must be quite challenging from an optimization standpoint.

    Great work!

    • primitivesuave 1 hour ago
      Thank you!! I was also hitting performance issues, especially on mobile - I think the latest version has gotten it a bit closer to a smoother experience, but there is still a lot of low-hanging fruit on making this more fluid (especially the step transitions).
  • utopiah 15 hours ago
    Neat, would be great to have it in WebXR with hand tracking, imagining 2 modes :

    - AR where the machine can be put on your desk, next to documents

    - VR where the machine is in context, e.g. a 3D model of German Naval Signals HQ in Guernsey, eventually stepping back to a broader context.

    • primitivesuave 1 hour ago
      This is such a great idea. I didn't know about WebXR before reading your comment, and was delighted to see that this is a relatively easy thing to implement. I need to find some VR goggles to borrow so I can test this out, but I'll optimistically push out an update within the next day with the WebXR update.
  • anonydsfsfs 23 hours ago
    I love the presentation! Would you mind sharing the source code?
    • primitivesuave 20 hours ago
      Thank you for the kind words! As mentioned in the other comment below, I'll open-source it very soon and update the site with a GitHub link.
    • soltanov 20 hours ago
      +1. source code will be useful for educational purposes.
      • primitivesuave 20 hours ago
        I will open-source it very soon! I was a bit nervous about putting it out there before I'm sure that the machines are absolutely accurate, especially the more niche ones where I had to make some inferences about the wiring. Will add the GitHub link to the site when I've had a chance to review everything for accuracy, and will probably end up moving some of my "educated guesses" off the main branch.
        • utopiah 15 hours ago
          > bit nervous about putting it out there before I'm sure that ...

          At the risk of being presumptuous I believe that's the wrong way of looking at it. The point isn't to show the entire World that everything you did is perfect (because it's not, for anyone) but rather to grow from potential collaborations, even if only just discussions in issues. It is a humbling process to show how something was built but with a positive crowd it is definitely leading to growth!

      • tonymet 20 hours ago
        typical freeloading entitlement. It's his project, and he can share whatever he likes.
        • orphea 15 hours ago
          I don't follow. How is a polite question if the code can be shared (not even a request to share the code), freeloading entitlement?
        • krapp 20 hours ago
          The purpose of Show HN is to share and discuss code, not to advertise products. That isn't freeloading entitlement, it's the point of being here.
          • tonymet 20 hours ago
            That's a misleading narrowing of the topic. It's a show and tell. Code, hobby, product, whatever the person wants.
            • krapp 19 hours ago
              The guidelines demonstrate that it isn't merely show and tell: https://news.ycombinator.com/showhn.html

                  On topic: things people can run on their computers or hold in their hands. For hardware, you can post a video or detailed article. For books, a sample chapter is ok.
                  Off topic: blog posts, sign-up pages, newsletters, lists, and other reading material. Those can't be tried out, so can't be Show HNs. Make a regular submission instead.
                  The project should be non-trivial. Don't post quickly-generated one-offs; anybody can do that now. Share something that is deeply personal and interesting to you.
                  Explain how and why. 
              
              Also see dang's comments on the validity of various submissions:

              https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...

              And in particular this comment that touches on AI submissions in particular (https://news.ycombinator.com/item?id=48118727) from which I provide an excerpt:

                  In software it's fascinating how configuration management (that boringest of all phrases) is becoming the hard part. How do you share and version the source? 
                  What even is the source? Is it the prompts? That's where the OP heads at the end: "share it somewhere — or, better yet, just a screenshot and the prompts you 
                  used to make it." But when I floated a couple trial balloons about whether we might use this for Show HN—i.e., don't just share the code you generated, 
                  because that's not the source anymore; instead share the prompts—we got a lot of pushback from knowledgeable people 
                  (summarized here: https://news.ycombinator.com/item?id=47213630).
              
              The topic is supposed to be narrow. It's supposed to be more than just show and tell, and definitely not "whatever the person wants."
              • tonymet 19 hours ago
                you're making my case, not yours.
                • krapp 19 hours ago
                  No, I'm not.
                  • tonymet 7 hours ago
                    the app meets the bar, thanks for sharing.
                    • krapp 4 hours ago
                      It meets your personal bar, which matters to no one but you. Thanks for sharing.
  • DylanMerigaud 17 hours ago
    Inspection tools ensure historical accuracy; great effort!
  • ted_dunning 23 hours ago
    It would be nice to be able to back up in the sequence. There were a few times where I realized I had not fully understood a previous step and would have like to be able to review some previous steps.

    Otherwise this is completely excellent!

    • primitivesuave 20 hours ago
      Thank you for the suggestion and the kind words! Completely agree that the navigation is a bit unintuitive, will work on fixing that tonight :)
  • adityamishra241 19 hours ago
    This is really cool. The attention to detail on the internal mechanics is impressive, especially the inspection tools you built. Looking forward to seeing where you take it!
  • psolidgold 1 day ago
    Seems pretty cool but unfortunately the poor performance on mobile (Chrome 154 and Android 17) makes it unusable for me. I'll have to check it out on desktop.
    • primitivesuave 20 hours ago
      Thank you for the tip about mobile performance, my apologies for neglecting it and I'm working on fixing it right now!
      • psolidgold 20 hours ago
        No need to apologize. Hit me up when you work out the kinks and I'll give it a go again.
        • primitivesuave 7 hours ago
          I revamped the mobile experience last night, let me know what you think!
          • psolidgold 5 hours ago
            Hmm. It may be slightly better but I'm still getting a very stuttery framerate and slow response time. Could just be me. I'm on a Pixel 11 Pro though so it's not like I'm on an ancient device or anything.
    • palad1n 17 hours ago
      Tested and fine on 6th gen iPad Mini, if anyone is interested.
  • 1283736 12 hours ago
    The coolest and pre-slop simulator is here:

    https://www.ciphermachinesandcryptology.com/en/enigmasim.htm

    A pity that our governments allow such cool tech to be stolen.

  • kingkemol888 19 hours ago
    good jobs!
  • vladsiu 19 hours ago
    [dead]