Interactive Double Pendulum Playground

(theabbie.github.io)

66 points | by melector 3 days ago

7 comments

  • japhyr 20 hours ago
    I built a physical version of this back when I was teaching HS math and science. I used two bicycle hubs, and attached metal arms to each. I put an LED on the second hub, and the end of the second arm.

    For the demonstration, I'd have it under a blanket in the front of the room when students came in. I'd turn the lights out, only turn the outer LED on, and set it in motion. Then I'd cover it up, turn the lights on, and ask students to sketch what they thought was under the blanket. Then I'd turn the lights out again, turn both LEDs on, and set it in motion again.

    Most people were able to sketch something pretty close to a double pendulum after that second demonstration. I also set up a camera and did some time lapses, and got pictures that look just like this online demo.

    Super fun project, and students loved it! :)

  • isoprophlex 2 days ago
    This is hilariously bad.

    If you want to see what a real physically sensible double pendulum sim looks like:

    https://www.myphysicslab.com/pendulum/double-pendulum-en.htm...

    • gus_massa 2 days ago
      I don't see the difference. The motion in the version you linked is slower but I guess it can be fixed changing g. What are the visible errors in the main post?

      EDIT: I just noticed someone found an error and apparently it's fixed now.

  • JKCalhoun 16 hours ago
    Love to see someone do this for a harmonigraph [1].

    [1] https://en.wikipedia.org/wiki/Harmonograph

    (I contributed to this Wikipedia article over two decades ago!)

  • greenbit 21 hours ago
    Could use a way to set some friction
  • sim04ful 15 hours ago
    Could someone explain why turning off gravity makes it path so uniform ?
    • bheadmaster 15 hours ago
      Because of the constant-length rigid connections, they start behaving like celestial objects in perfect orbit.
  • close04 19 hours ago
    The motion is still off, as it was 2 days ago [0] in the previous submission. There's something that just doesn't look right, and some particular setups trigger very unrealistic behaviors.

    Not sure if this got a second lease on life from the mods after clearing the old comments and resetting the submission date to today, or how did it make the front page again.

    [0] https://news.ycombinator.com/from?site=theabbie.github.io

    • magicalhippo 17 hours ago
      If you tried it when it was broken, could it be you're running the old version? That is, clear your cache and try again?

      If not, describe what feels off, as it feels fine to my untrained eyes after the sign fix.

  • Evidlo 2 days ago
    Anyone else feel like the pendulum motion seems off? Maybe the default mass settings are weird, but the movement just does not look physical to me.
    • magicalhippo 2 days ago
      It's way off. My first guess was that there was something wrong with the physics code, but after carefully checking against this[1] derivation of the Hamiltonian it seemed fine, and once I wrapped my head around the JavaScript the RK4 integration[2] checked out as well.

      So, what else might be wrong I wondered. Well, it seems to move in the wrong direction... so I checked how the pendulum is displayed. And sure enough, I think there's a sign error:

        getUpperBob() {
           const { x0, y0, ang0, l0 } = this;
           const { x, y } = this.calculateBobPosition(x0, y0, ang0, l0);
           return { x, y };
         }
      
         getLowerBob() {
           const upperBobPos = this.getUpperBob();
           const { ang1, l1 } = this;
           const { x, y } = this.calculateBobPosition(
          upperBobPos.x,
          upperBobPos.y,
          -ang1,
          l1
           );
           return { x, y };
         }
      
      Note how the upper bob uses ang0 while the lower one has -ang1. Meanwhile the physics derivation assumes both angles are against the vertical, so have same sign.

      Changing -ang1 to ang1 does indeed make the pendulum move in a natural way, except now dragging it is flipped. Ie you drag it left and it moves right. Another sign error in setLowerBobPos. Fixing that as well it now works as I'd expect.

      [1]: https://dassencio.org/46

      [2]: https://lpsa.swarthmore.edu/NumInt/NumIntFourth.html##sectio...

      • Evidlo 2 days ago
        Just made a PR
        • magicalhippo 2 days ago
          I considered it, but had to go to work and I figured since the last commit was over 4 years ago it might just sit there idly, so I skipped it.

          But no, PR was merged in short order. Lesson learned.

        • cabirum 20 hours ago
          Hn shows this story is 3 hours old, yet your GitHub PR was made 2 days ago, linking here?
    • navtoj 2 days ago
      There's a "How To Use?" section on the GitHub repo page.

      https://github.com/theabbie/DoublePendulum?tab=readme-ov-fil...

    • mihau 2 days ago
      Yep, it's just bad. Physics feels totally off.
    • WithinReason 2 days ago
      Yes I think the physics is wrong
      • kookybakker 2 days ago
        When you bring up the lower mass and let it go, it seems to push the upper mass away, which should never happen. This whole site smells off vibe coded jank.
        • Evidlo 2 days ago
          I don't think that's fair. Also the project is 4 years old so the timeline doesn't really work out for being vibe-coded.
        • probabletrain 2 days ago
          > This whole site smells off vibe coded jank.

          A vibe-coded double pendulum sim should produce a much better result than the physics on this page. Claude Code made this just now off one prompt, the physics are much better: https://keir.is/swinging