Show HN: Browser-based interactive 3D Three-Body problem simulator
243 points
3 days ago
| 31 comments
| trisolarchaos.com
| HN
Features include:

  - Several preset periodic orbits: the classic Figure-8, plus newly discovered 3D solutions from Li and Liao's recent database of 10,000+ orbits (https://arxiv.org/html/2508.08568v1)
  - Full 3D camera controls (rotate/pan/zoom) with body-following mode
  - Force and velocity vector visualization
  - Timeline scrubbing to explore the full orbital period
The 3D presets are particularly interesting. Try "O₂(1.2)" or "Piano O₆(0.6)" from the Load Presets menu to see configurations where bodies weave in and out of the orbital plane. Most browser simulators I've seen have been 2D.

Built with Three.js. Open to suggestions for additional presets or features!

emmanueloga_
3 days ago
[-]
Tried writing an electrostatic particle simulator in Turbo Pascal 7 with BGI as a teen, a handful of particles before it crawled. Then saw a galaxy collision sim on a CD-ROM magazine disc handling thousands of bodies smoothly. Thought it was assembly tricks.. now I'm sure it's algorithmic (avoiding N**2 runtime) but never dug into the specifics. Are charges vs gravity sims essentially the same n-body problem?
reply
egorfine
2 days ago
[-]
EGAVGA.BGI

Oh this brings memories. I have tried to create a little bit of 3D→2D renderer in TP 6.0 but precision was never enough for nodes to not fall apart and 80286 speed was too slow to render anything meaningful except maybe a cube.

reply
hermitcrab
3 days ago
[-]
>Are charges vs gravity sims essentially the same n-body problem?

The force falls off as the inverse square of distance in both cases. So they are essentially the same problem. Except that charge can attract or repel and gravity (as far as we know) only attracts.

reply
wcrossbow
3 days ago
[-]
They might have been using the fast multipole expansion method
reply
ralferoo
3 days ago
[-]
One thing I'd never really considered before is how frequently bodies get ejected at high speed from the simulation, especially as the number of initial bodies is increased. Suddenly made me realise that the "big bang" which previously seemed a bit of a random and magical theory (obvious question is why would the universe be expanding from a single point when gravity would be immense) now seems a lot more plausible without needing any "magic" to justify it.
reply
hermitcrab
3 days ago
[-]
Some of the high speed ejections might be due to the approximations used. You can see this with a simple time-stepper when the forces get massive when 2 bodies get very close and that force is then applied for the whole timestep.
reply
JKCalhoun
2 days ago
[-]
I don't doubt that the math allows for escape velocities in some interactions. But I am wondering if, realistically, tidal forces might instead shred the bodies before forces were adequate for a body to achieve escape velocity.
reply
hermitcrab
2 days ago
[-]
It might be a fun option if bodies that pass really close can merge together or tear each other apart. The latter might add a lot of complexity though.
reply
constantcrying
2 days ago
[-]
I doubt that most (if not all) are physical. This happens since these are considered as point masses, which can not collide. Instead of a collision you get extremely high forces, which add another layer of unphysical results as the large numbers cause numerical problems.

Relating any of this to the big bang is not appropriate at all.

reply
layer8
2 days ago
[-]
reply
criddell
2 days ago
[-]
Would it be incorrect to say the universe was a single point at one time? That's been my layman's understanding - the universe at the start was infinitesimally small (a point) and has been expanding since.
reply
layer8
2 days ago
[-]
It wouldn't be correct. First of all, we don't know what happened in the first fraction of a picosecond after "time zero", because we have no working physics for that. For the period for which we believe that we have a fairly good understanding, if the universe is infinite in size now, then it was also infinite in size at that first picosecond. It was just inredibly more dense and hot.

Sometimes "universe" is used to mean our observable universe (the part of the universe cut out by our past light cone), which is finite in size. The size of the portion of the whole universe that is our observable universe can be extrapolated back towards the Big Bang, and it would have had a radius of about 10 light years at 1 second after the Big Bang, or a radius of 1 AU (distance of the Earth from the sun) at 1 picosecond after the Big Bang. But again, that's only an arbitrary portion of the whole universe that happens to correspond to what is observable to us (where light had had enough time to reach us). The whole universe, on the other hand, if infinite in size, would still have been infinite in size all the way back to the 10^-43 seconds or so where our physics break down.

As an analogy, if you take the real number line (from minus infinity to plus infinity), and divide all numbers on it by 10 (basically compress it by factor 10), then it would still be an infinite line. No matter how often you repeat that division, and compress the numbers closer and closer together, the line would never become a point, it would always stay an infinite line. Only when you consider a finite segment on the line, for example [1, 2] (the interval from 1 to 2), then that interval would become [0.1, 0.2] by the division, and then [0.01, 0.02], [0.001, 0.002], and so on, and would approach becoming a single point in the limit. But, back to the Big Bang, we don't know what happened at the limit, and the whole universe is more than just the one segment.

One aspect in which the above analogy is misleading is that the universe has no “middle point”, the way the number line has a zero point. The expansion happens equally at every place in the universe. There is no absolute coordinate system relative to which it could happen. It's more like an infinite graph paper you zoom in and out from. The zooming is independent from where you imagine doing the zoom; it zooms as a whole.

reply
iso1631
2 days ago
[-]
The universe isn't really expanding from a single point though, not in the sense that objects were flung away from that point into a vacuum like the objects in this simulation
reply
voxleone
2 days ago
[-]
Yes, in real world 3-body systems tend to “decay” into a two-body system + one escaping object.
reply
oskarkk
3 days ago
[-]
Looks very nice!

I think I found a bug: after pausing, moving a body and unpausing, I cannot move the camera. Changing "follow" to something and back to "none" helps.

reply
jgchaos
2 days ago
[-]
This should be fixed!
reply
TMEHpodcast
3 days ago
[-]
This is really lovely work! Simple to use, surprisingly solid, and just a pleasure to poke around with. The fact it runs in the browser is a bit of magic on its own.

One idea for later might be a few preset systems, such as Alpha Centauri or other known three-body systems. It would give people a quick way to drop into something real before they start making chaos of their own.

Anyway, cracking project.

reply
jgchaos
3 days ago
[-]
Thanks so much, really appreciate it! I’ve been focusing the presets on stable or interesting solutions that aren’t tied to real systems, but adding a few real examples like Alpha Centauri would fit in nicely. I’ll keep that on the list for future updates.
reply
westurner
2 days ago
[-]
Will this simulate the sun and planets of the solar system?

Do these models of n-body gravity predict the perihelion in the orbit of Mercury?

Newton's does not predict perihelion, GR General Relativity does, Fedi's SQG Superfluid Quantum Gravity with Gross-Pitaevskii does, and this model of gravity fully-derived from the Standard Model also predicts perihelion in the orbit of planet Mercury.

Lagrange points like L1 and L2 are calculated without consideration for the mass of the moon.

Additional notes on n-body mechanics: https://westurner.github.io/hnlog/#comment-45928486 Ctrl-f n-body, perihelion

reply
westurner
1 day ago
[-]
More notes on CFD, spiceypy, Navier-Stokes, quantum fluids, and SQG: https://news.ycombinator.com/item?id=44383829 :

> this model of gravity fully-derived from [~~the Standard Model~~ QFT] also predicts perihelion in the orbit of planet Mercury.

And also:

>> "Perihelion precession of planetary orbits solved from quantum field theory" (2025) https://arxiv.org/abs/2506.14447 .. https://news.ycombinator.com/item?id=45220460

Planetary orbits are an n-body problem. GR, SQG, and Gravity from QFT solve for planetary orbits

reply
HeliumHydride
3 days ago
[-]
Suggestion: add a preset for a configuration of the Painleve conjecture. https://en.wikipedia.org/wiki/Painlev%C3%A9_conjecture
reply
phkahler
3 days ago
[-]
How about a perturb button so those special stable orbits can be nudged just enough to destabilize them.
reply
drsopp
3 days ago
[-]
It destabilized after a few minutes on my phone.
reply
JKCalhoun
2 days ago
[-]
Pause, choose a body, tweaks its mass, resume.
reply
nhatcher
3 days ago
[-]
This is amazing! Nicely done!

I did something similar, mostly 2D here:

https://www.nhatcher.com/three-body-periodic/

(Mine is just unfinished)

reply
jgchaos
3 days ago
[-]
Thank you! Your 2D version is great, I love seeing how different people approach this stuff. As for integrators, I currently only have Velocity Verlet and RK4 (can change in the advanced settings). I started with just Verlet, but to get some of the presets to behave properly I ended up needing RK4 as well. I’ve been thinking about adding adaptive methods next, but I'll take a look at the methods you've got listed too. Everything is still running in plain JS for now. I started moving some of the work into web workers but haven’t finished that part yet.
reply
saboot
3 days ago
[-]
Symplectic integrators are the approach I used for some old galaxy simulations. Page 5 on the attached paper was my main reference, eq 22 https://arxiv.org/pdf/cond-mat/0110585 I believe this is used in several academic codes for long term N-body calculations.
reply
nhatcher
3 days ago
[-]
I would be very curious to compare notes on the integrators you used. How good do they perform in general?

In the avobed shared you can go to the settings a pick an integrator. I did the integrators in wasm although I suspect js is just as fast.

Color me impressed! I love the ammount of settings you can play with. I still need to understand what happens whe yu add more bodies though.

reply
tetris11
2 days ago
[-]
what the heck? are those three orbits genuinely symmetrical in 2D or did I misinterpret
reply
nhatcher
2 days ago
[-]
I'm not sure which ones are you talking about specifically. But there are some with some heavy symmettrical patterns indeed. To my eyes some are mesmerizing to watch.

The orbits are computed in real time, so yeah what you are seeing (modulo errors in my code is genuine)

There are some caveats though. Some orbits are periodic only in a rotating frame of reference.

EDIT: you can share the URL and I can see which orbits you are talking about

Like: https://www.nhatcher.com/three-body-periodic/?class=bhh_sate...

reply
joshdavham
3 days ago
[-]
Nice work!

Were you by any chance inspired to make this because of the three body series by Cixin Liu? Or were you moreso just inspired because the simulation/math/physics are interesting?

reply
jgchaos
3 days ago
[-]
Thanks! The Three-Body series definitely helped spark the idea, and the URL is a little nod to the books. I also took some simulation classes back in college, so the math and physics side pulled me in too. It’s crossed my mind that it could be fun to add a kind of Trisolaran mode that tracks a small planet and how habitable its position is throughout the orbits.
reply
allemagne
3 days ago
[-]
It was nice of you to add that stable era to the submission URL. It was good while it lasted. Oh well, Time to DEHYDRATE
reply
notaurus
3 days ago
[-]
I think the URL is telling
reply
authnopuz
3 days ago
[-]
Nightfall by Asimov was a 7 bodies problem - https://en.wikipedia.org/wiki/Nightfall_(Asimov_novelette_an...
reply
authnopuz
3 days ago
[-]
And to be fair, Liu Cixin's book is a 4 bodies problem :)
reply
Cthulhu_
3 days ago
[-]
This made me irrationally annoyed, lol. But that was only the start (I've only seen the TV show though)
reply
adastra22
3 days ago
[-]
Seriously there was so much wrong with that book.
reply
hermitcrab
3 days ago
[-]
There was a lot right with it as well IMHO. It was very original (I've only read the first book so far).
reply
adastra22
2 days ago
[-]
To each their own, I suppose.
reply
thrance
3 days ago
[-]
There is also this fun website: https://labs.sense-studios.com/threebody/index.html

Simulating a four-body problem from the point of view of a telluric planet being juggled around by three stars. It's supposed to emulate the evolution of trisolarans from the "Three Body Problem" novel by Liu Cixin.

reply
gorgoiler
3 days ago
[-]
I didn’t realize something until I used this simulation: with three bodies you can eject one body in one direction and the barycentre of the remaining two in another. This means that compared to the original frame of reference you have an orbiting pair that moves.

It’s one of those things that seems so obvious and yet actually seeing it is a really important step in understanding.

reply
layer8
2 days ago
[-]
There are animations of how the solar system as a whole moves through space. (The solar system isn’t stationary within our galaxy.) The planets therein are forming spirals around the trajectory of the sun in a similar fashion.
reply
ge96
2 days ago
[-]
Oh one question I have, when I messed around with ThreeJS line width was a problem, these curves look pretty nice/thick on mac, maybe that was updated recently. (lines as in orbit path)

ThreeJS is awesome btw, I exported a GDB file I think from a CAD program and imported it into ThreeJS/able to animate each part pretty cool.

reply
thomasikzelf
2 days ago
[-]
You might be using the webgl lines (LINE_STRIP), those are always thin. The other way is to build a mesh that looks like a line (which Three.js also has functions for). select the line type here to see the difference: https://threejs.org/examples/?q=lines#webgl_lines_fat
reply
ge96
2 days ago
[-]
oh yeah those look great
reply
jgchaos
2 days ago
[-]
I'm using https://threejs.org/docs/#Line2 which does support variable thickness - you can change this via the Trail Thickness slider. I think older versions did have some issues with line width.
reply
xnx
2 days ago
[-]
By coincidence, Google demoed an example of Google Search using Gemini 3 Pro to generativity create an interactive UI for the three body problem: https://youtu.be/uYQGrK55gxQ?t=21
reply
lutusp
3 days ago
[-]
> Open to suggestions for additional presets or features!

Anaglyphic (red/cyan) 3D rendering would be nice. I've created a lot of anaglyphic 3D apps over the years, but they're no longer very popular -- I suspect it's the goofy glasses one must acquire and wear.

But a true 3D view of an orbital simulator like this greatly increases its impact and tutorial value.

reply
jgchaos
2 days ago
[-]
I do not currently have a set of those glasses so I can't test it, but three.js has this and it's pretty easy to add. There should be an "Anaglyph 3D" checkbox at the bottom of the configuration settings. Let me know if you are able to test it out.
reply
lutusp
2 days ago
[-]
Thanks! I tried the anaglyphic option, but the data being provided to the engine doesn't include third dimension data (so the orbits are essentially flat in the third dimension). Also the orbital colors interfere with the anaglyphic effect (which normally expects white graphic data that it then splits into red and cyan).

I think adding third-dimension data would solve or mitigate the other issues, because full-color anaglyphs are possible, although at a reduced degree of subjective separation between the views.

Thanks for pointing out to me that an anaglyphic option is present, which I managed not to notice the first time.

Anyway, with third-dimension data, the anaglyph option ought to work -- for hard-core, old-fashioned red-blue eyeglass wearers. :)

reply
jgchaos
2 days ago
[-]
I just added that option. It wasn’t there when you initially looked :). Are you using one of the 3D presets/random config or are you using a 2D preset? I'll order a set of glasses so I can test. Not very familiar with this so would be fun to experiment.
reply
scottshambaugh
2 days ago
[-]
Thanks for adding it! I think anaglyphs are super underused in 3D visualization. The grid lines look pretty good in 3D but the orbits themselves aren't as sharp - it might be the coloring or it might be that the angular distance between the eye views is too large.

There's some math at the bottom of my matplotlib extension for anaglyphs if you want to play around: https://github.com/scottshambaugh/mpl_stereo

reply
lutusp
1 day ago
[-]
> Are you using one of the 3D presets/random config or are you using a 2D preset?

Thanks! The 3D presets work, they provide good anaglyphic results. I didn't notice the presets option on my first visit.

So ... nice! Even with colors enabled, the 3D effect is clearly visible with red/cyan glasses.

Anyway, it's a nice online resource.

reply
buf
3 days ago
[-]
I spent a long time playing with the sim. Nice work.

Most of the random data sets that I ran ended up with a two body system, where the third body was flung far into space never to return. However, some of these were misleading. I had one running for 15 minutes at 5x, and the third body did eventually return.

reply
lutusp
3 days ago
[-]
> However, some of these were misleading. I had one running for 15 minutes at 5x, and the third body did eventually return.

That's not misleading. Real three-body orbital systems show this same behavior. Consider that such a system must obey energy conservation, so only a few extreme edge cases lose one of its members permanently (not impossible, just unlikely).

Ironically, because computer simulators are based on numerical DE solvers, they sometimes show outcomes that a real orbital system wouldn't/couldn't.

reply
moi2388
3 days ago
[-]
I don’t understand. How would energy not be conserved if one flew away? It’s not in the system, but it’s still out there?
reply
lutusp
2 days ago
[-]
I'm just saying that, because of energy conservation, an escaping member would need to permanently carry away more than 1/3 of the system energy (for equal-mass satellites). This is possible but unlikely.
reply
jgchaos
3 days ago
[-]
It might be fun to add some kind of visualization showing when a body has enough energy to potentially escape the system.
reply
pylotlight
3 days ago
[-]
Question, can you mathmatically plot a trajectory across time X and energy required to see when it's met and how long it would take given a start position or something? Or is the simulation so complex that you can never project. Oh never mind I see answers to this elsewhere here, cheers.
reply
JKCalhoun
2 days ago
[-]
Agree. I was hoping perhaps it would "flash" or do something visually different to indicate "Bye bye!"
reply
ge96
2 days ago
[-]
My dumb question: I thought the whole thing with this is the instability/inability to predict. It starts off with the three bodies locked in to fixed motions? I guess it has to be for the user to start messing around with it?
reply
teraflop
2 days ago
[-]
Not a dumb question at all!

There is no general closed-form solution to the three-body problem. There are certain specific initial conditions which give periodic, repeating orbits. But they are almost always highly "unstable", in the sense that any tiny perturbations will eventually get amplified and cause the periodic symmetry to break.

It's analogous to balancing an object on a sharp point. Mathematically, you can imagine that if the object's center of gravity was perfectly balanced over the point, then there would be zero net force and it would stay there forever. But the math will also tell you that any tiny deviation from perfect balance will cause the object to fall over. It's an equilibrium, but not a stable equilibrium.

The example at the link demonstrates this. The numerical integration can't be perfectly accurate, due to both the finite time steps and the effects of floating-point rounding. Initially the error is much too small to see, and the orbits seem to perfectly repeat. But if you wait a couple of minutes, the deviations get bigger and bigger until the system falls apart into chaos.

reply
ge96
2 days ago
[-]
Ahh okay I'll let it run as is for a while and see what happens, thanks
reply
decatur
2 days ago
[-]
Not really. Any solar system proves a kind of stability. And so does the famous KAM theorem. It states that a periodic solution is indeed quasi-stable under small pertubations. And yes, small sometimes is extremely small. But still stable. Imagine a sharp point with a tiny dent.
reply
grumbelbart2
3 days ago
[-]
I triggered some bug by pausing the simulation, setting the mass of one of the objects to 29.1, then resuming. The lighter objects bounced into the massive objects a few times, then all three objects were suddenly ejected with a very high velocity.
reply
pixelpoet
3 days ago
[-]
Super cool!

I've been working on some n-body code too, currently native only though: https://www.youtube.com/watch?v=rmyA9AE3hzM

reply
chombier
3 days ago
[-]
Nice! It would be interesting to visualize the total momentum vector, IIRC Verlet being symplectic should be good at preserving symmetries, whereas RK4 is good at conserving energy.
reply
carodgers
2 days ago
[-]
Just beautiful. I love that the pattern appears stable but diverges after 5 mins or so. Is the initial state proven to be stable under exact conditions?
reply
Ethan312
3 days ago
[-]
The 3D presets are the standout here, especially the ones that move in and out of the orbital plane. The interaction feels smooth, and it’s great to see this level of detail running in the browser.
reply
brna-2
3 days ago
[-]
Starting out with the stable preset I had no idea how hard it would be to not make a object slingshot out. But it is a really fun sim, I think I will let my kid play with it.
reply
Mikhail_Edoshin
3 days ago
[-]
I recently thought that if life supposedly happened by chance then it should be same for the three-body problem: naturally occurred solutions floating here and there somewhere.
reply
adastra22
3 days ago
[-]
There’s a big one in the sky right now - the Earth-Moon-Sun system.
reply
2b3a51
3 days ago
[-]
The relative scales might be a bit hard to put in the simulation. Roughly 400 to 1 for Earth-Sun to Earth-Moon. It would be fun to set that up and view from Earth and view from Sun though.
reply
JKCalhoun
2 days ago
[-]
Give it time…
reply
adastra22
2 days ago
[-]
With full tidal locking and no external perturbations, it would be permanently stable. If that still bothers you, then consider L4/L5 orbits. An object orbiting around the L4/L5 points in a 3-body system will be perpetually stable so long as there is no external perturbations with total energy above the "hill" at the edge of the L4/L5 space.
reply
hermitcrab
3 days ago
[-]
Excellent work. Is this based on simple Newtonian gravity applied over a uniform time-step, or something more sophisticated?
reply
constantcrying
2 days ago
[-]
What you describe is the Euler method, which is well known for being a comparatively bad choice in most situations. The ODE solver can be selected, the default is RK4, which is a Runge–Kutta method of 4th order, it computes the next time step by combining the values at 4 previous time steps.
reply
hermitcrab
2 days ago
[-]
I see it now, under the 'Advanced' options.
reply
JKCalhoun
2 days ago
[-]
For accuracy, time step can get smaller when bodies are closer.
reply
hermitcrab
2 days ago
[-]
Yes, but this would slow the simulation right down if 2 bodies are very close. I think people sometimes use a 'fudge factor', e.g. if distance < x then treat distance as x.
reply
hermitcrab
2 days ago
[-]
>'fudge factor'

Maybe that is what the 'softening' parameter relates to?

reply
jgchaos
2 days ago
[-]
Yes, the softening factor keeps the forces from getting too big when bodies get close together. Better for the visualization but not very accurate to leave it in.
reply
hermitcrab
2 days ago
[-]
Better than things flying off to infinity or the whole simulation slowing right down.
reply
MrQianjinsi
3 days ago
[-]
So beautiful, I once had a similar idea, and I'm glad to see someone bring it to life
reply
sbinnee
3 days ago
[-]
I really enjoyed the book series. This is an amazing work! Thanks for sharing.
reply
deafpolygon
3 days ago
[-]
nice simulator…

one issue i have always had with the n-body calculations is how can you be sure there is exactly n?

reply
kapitanjakc
3 days ago
[-]
No physics expert but isn't this unpredictable (based on what I saw in series) ?

Amd this does seem predictable, I saw this for almost a minute

reply
adastra22
3 days ago
[-]
No, and please don’t try to learn anything from that science-free series. The author doesn't even have a Wikipedia-level understanding of what he is writing about.

N-body problems for N>3 do not have exact, closed form solutions. For N=2 the solution is an ellipse. For N=3+ there is no equation you can write down that you can just plug in t and get any future value for the state of the system.

But that is NOT the same as saying it is unpredictable. It is perfectly predictable. You just have to use one of the many numerical solutions for integrating ODEs.

reply
lutusp
3 days ago
[-]
> No physics expert but isn't this unpredictable (based on what I saw in series) ?

A three-body orbital problem is an example of a chaotic system, meaning a system extraordinarily sensitive to initial conditions. So no, not unpredictable in the classical sense, because you can always get the same result for the same initial conditions, but it's a system very sensitive to initial settings.

> Amd this does seem predictable, I saw this for almost a minute

The fact that it remains calculable indefinitely isn't evidence that it's predictable in advance -- consider the solar system, which technically is also a chaotic system (as is any orbital system with more than two bodies).

For example, when we spot a new asteroid, we can make calculations about its future path, but those are just estimates of future behavior. Such estimates have a time horizon, after which we can no longer offer reliable assurances about its future path.

You mentioned the TV series. The story is pretty realistic about what a civilization would face if trapped in a three-solar-body system, because the system would have a time horizon past which predictions would become less and less reliable.

I especially like the Three Body Problem series because, unlike most sci-fi, it includes accurate science -- at least in places.

reply
adastra22
3 days ago
[-]
There are stable solutions. See: Earth’s Moon (or any other planetary moon in the solar system).
reply
lutusp
2 days ago
[-]
> There are stable solutions. See: Earth’s Moon (or any other planetary moon in the solar system).

Those are not stable solutions. Remember that Earth's moon only came into existence because of a collision with a protoplanet in the past, and if a large enough body passed close by in the future, we might lose our moon -- all because of the complexity of orbital systems with more than two members.

> (or any other planetary moon in the solar system)

There are any number of examples of planets gaining and/or losing moons because of multi-body orbital complexity.

reply
adastra22
2 days ago
[-]
If you are presupposing external perturbations or collisions, it's not an N=3 system... we're talking about the three body problem. A tidally locked system with periodic resonance is permanently stable in the absence of external forces.
reply
lutusp
1 day ago
[-]
> If you are presupposing external perturbations or collisions, it's not an N=3 system... we're talking about the three body problem.

Let me clarify something. A "three body problem" system is any orbital system with more than two bodies. The term "three-body problem" certainly doesn't mean systems with only three bodies.

> A tidally locked system with periodic resonance is permanently stable in the absence of external forces.

No. In an orbital system with more than two bodies, external forces are the name of the game. For such a system, the expression "permanently stable" cannot apply. Such a system is not open to a closed-form solution and all such systems must be modeled numerically.

Closed-form solutions are available for orbits with two bodies, and can sometimes approximate the behavior of systems with more than two, but the reliability of such a model degrades rapidly as time increases, until the predictions become meaningless.

From https://en.wikipedia.org/wiki/Orbit_of_the_Moon : "The properties of the orbit described in this section are approximations. The Moon's orbit around Earth has many variations (perturbations) due to the gravitational attraction of the Sun and planets, the study of which [ ... ] has a long history."

reply
jgchaos
3 days ago
[-]
The link points to one of the stable solutions, and there are actually quite a few of those. The problem is that there’s no general closed form that tells us exactly where the bodies will be in the future, so we rely on numerical methods to approximate the motion. If you hit Reset All a few times or add more bodies, you’ll start to see the chaos
reply
sbrorson
3 days ago
[-]
An interesting corollary to this is that even if the future trajectory of a general 3-body orbit is predictable in theory using numerical methods (and infinite precision calculations), in practice the use of finite-precision floating point means that after some time the trajectory predicted by an ODE solver will diverge from the mathematically-true trajectory. Even symplectic integrators have this problem. More details on the general case of chaos are provided by this insightful blog post:

https://www.stochasticlifestyle.com/how-chaotic-is-chaos-how...

reply
Pulcinella
3 days ago
[-]
There actually is an analytical solution using a power series that actually converges (Karl Sundman's work). Unfortunately, the universe still mocks our attempts. Though the series converges, it does so incredibly slowly. From Wikipedia:

The corresponding series converges extremely slowly. That is, obtaining a value of meaningful precision requires so many terms that this solution is of little practical use. Indeed, in 1930, David Beloriszky calculated that if Sundman's series were to be used for astronomical observations, then the computations would involve at least 10^8000000 terms.

reply
Nevermark
3 days ago
[-]
> the computations would involve at least 10^8000000 terms.

Well we could speed up that simulation pretty easily, just arrange the actual masses and velocities somewhere...

Then I thought, is there a way to scale the distances, masses and velocities to create a system with the same, but proportionally faster behavior?

One guess as to perhaps why not: As distances get small, normal matter bodies will get close enough to actually collide. Perhaps some tiny primordial black holes would be useful.

reply
taneq
3 days ago
[-]
When you say 'stable' here, do you mean 'periodic' or are these solutions actually stable in the face of small perturbations (as opposed to the sensitive dependence on initial conditions that we'd expect from a chaotic system)?
reply
constantcrying
2 days ago
[-]
The math in the 3 body problem was made up.

Computing the trajectory of a 3 body problem is a comparatively simple task.

The two grains of truth are that the solutions for most starting conditions are not analytic, roughly meaning that they can not be expressed in terms of functions. The other being that the numerical solution to an ODE diverges exponentially.

reply
mclau153
2 days ago
[-]
Any github?
reply
jjmarr
3 days ago
[-]
Is this with Gemini 3?
reply
lutusp
3 days ago
[-]
> Is this with Gemini 3?

An LLM couldn't provide results for a sim like this, compared to a relatively simple numerical differential equation solver, which is how this sim works. Unless you're asking whether a sim like this could be vibe-coded, if so, the answer is yes, certainly, because the required code is relatively easy to create and test.

Apart from a handful of specific solutions, there are no general closed-form solutions for orbital problem in this class, so an LLM wouldn't be able to provide one.

reply
xnx
2 days ago
[-]
Part of the Gemini 3 Pro marketing release demonstrated that search results can include interactive UI elements like a simulation of the three body problem https://youtu.be/uYQGrK55gxQ?t=21
reply
jjmarr
2 days ago
[-]
Well I was wondering if it was vibe coded because Gemini 3 loves Three.js and that's a main selling point of the model.
reply
jgchaos
2 days ago
[-]
Yeah, I used Claude Code, definitely started as a vibe-coded thing. First pass was just basic physics + Three.js rendering. But once I saw it working, I spent some more time on better numerical stability and adding presets from stable 3D orbits, so it turned into more of a real project.
reply
picturesnottxt
2 days ago
[-]
This was posted as well to the vibecoding subreddit, where the OP said they used Claude Code.
reply
kona358
3 days ago
[-]
fuck this is so cool. im currently reading deaths end from the three body trilogy and seeing the physical representation is so cool. Makes a certain moment in deaths end seem awesome.
reply