Explore · interactive
No star is an island
Until now a cluster has been a list of stars. Switch gravity on and it becomes asystem: every star pulls on every other, energies get shuffled by close passages, and the heaviest stars give up energy and sink toward the centre. Nothing below is choreographed — mass segregation is not a rule that was added, it is what this same gravity does when you let it run.
It is not a control. It follows from the cluster you built, roughly with, so a bigger or a lighter cluster gives a slower clock — and changing , or redraws it.
Fixed at and never recomputed, so the crossing-time clock stays a ruler rather than one that stretches while you read it.drag to orbitThe clock on the frame reads model time twice: in millions of years, and incrossing times — how long a typical star takes to cross the cluster. The second is the one a cluster actually keeps, because relaxation and segregation happen on multiples of it rather than on Myr. It is blank without gravity, where it is undefined.
The value of for this draw is in the caption above, with its own note — it is a property of the cluster you built, not of the clock.
Model time is not wall-clock time. It advances by a fixed number of integrator steps per frame, so how fast it runs depends on how quickly this browser can take them — and the clock slows on its own once a hard binary forms, so the pair can be watched rather than raced past.
Keys. space runs and pauses, R restarts the same draw,N draws a new one. They stand down while a slider or a button has focus, so the controls keep their own keys.
A gap on its own is not the evidence. With gravity off the curves separate anyway, because the two groups begin at different radii and with different speeds — and by how much is an accident of the draw. Measured across eight consecutive draws, the gap after eight crossing times ran from to, with the heavy group spreading faster in three of them. What gravity does is different in kind: the heavy curve drops below 1 while the light one climbs. Left running, the heavy curve settles well below half its starting radius while the light one keeps climbing. How far, and how fast, is not a fixed number: the heaviest 10% is a few dozen stars, so the curve is noisy from one sample to the next.The fraction of the cluster still gravitationally bound, by mass and bynumber. They disagree, and the gap is the point: the heaviest stars carry most of the mass and are the last to leave, so the mass curve stays high while the star count falls away beneath it. Run it long enough and the two separate by tens of percent — most of the mass still bound while a third or more of the stars have gone.
It does not start at 100%, and that is the initial conditions rather than a bug: the velocities are an isotropic Maxwellian scaled to a virial ratio of, which is not the equilibrium distribution function of the density profile they are paired with. A Maxwellian's tail is unbounded, so a few stars begin above the local escape speed. Measured across eight consecutive draws, 92% to 98% of the mass and 89% to 97% of the stars are bound at.
Both are blank with gravity off. Boundness is measured against a potential that is not being integrated then, so a number there would be a counterfactual rather than a property of what you are watching.The radii enclosing 20%, 50% and 90% of the bound cluster's mass — the standard way a cluster's evolution is read, because the inner and outer parts do opposite things and a single half-mass radius shows neither.
A cluster comes apart from the outside in. Encounters move energy outward: the inner region gives it up and stays compact, while the stars that receive it move onto wider and wider orbits. Measured here over twenty crossing times, the 90% radius grew about three and a half times while the half-mass radius grew by roughly half and the 20% radius hardly moved. The spread between the curves is the result, not any one of them.
The inner curve is the noisy one — it is a few dozen stars, and it wanders. Read the gap between top and bottom rather than any single wiggle. With gravity off all three simply expand together, which is the honest picture of a cloud with nothing holding it: no redistribution, so no differentiation.The core binary's own orbit: semi-major axis across, eccentricity up, one point per sample since it formed. Hardening moves it left. The colour changes at an exchange — where a passing star swapped itself in for one of the pair — so a jump in the track is a change of binary rather than a change of orbit.
The scatter is real, and it is not noise in the measurement. Both numbers are INSTANTANEOUS, computed from the pair's relative energy at that moment, and that energy is perturbed by the rest of the cluster and softened at small separations. So a single unchanging orbit still draws a cloud rather than a point: measured over four draws, ranged over a factor of 1.7 to 2.9 within one pair's own track. The cloud is smoothed nowhere — a tidier line would be a claim about a Keplerian orbit that this pair is not on.
Eccentricity is high but not uniformly so: median across those four draws ran from 0.50 to 0.94. A binary like this forms by capture rather than in place, so it arrives on a long thin orbit — and the damage to the energy strip is done in the small part of that orbit spent near periapsis.
The tab is here only while there is a binary. It appears once a pair has held together for half a crossing time and leaves if that pair is broken up or replaced; across four draws the pair first formed between 8 and 14 crossing times in.The mass function as drawn (grey) against the stars still bound(teal), in counts per dex, with the law they were sampled from over both.
The gap is dynamical, and it is one-sided. A cluster evaporates from the bottom up: energy is shared out by encounters, the lightest stars end up moving fastest, and they are the ones that reach escape speed. So the low-mass bins hollow out while the heavy end sits there. Measured on this cluster at twenty crossing times, about seven in ten of the lightest stars were still bound against nine in ten above a solar mass.
Two honest limits. The heaviest bins hold a handful of stars — often three or four — so their bars are noise, not a trend; the low-mass end is where this plot has the numbers to say anything. And the stars here do not age, so this is only the dynamical half of the story. A real cluster also loses its most massive stars to their own deaths, which empties the opposite end of the diagram from the one you are watching.
LogH fixes exactly that, and it is the interesting one. A symplectic scheme cannot simply be given a step controller — its bounded error comes from the fixed step, which is what makes it conserve one nearby Hamiltonian instead of a different one each step. So LogH changes the problem instead: it integrates in afictitious time with, so a fixed step in gives a step in that shortens itself wherever the potential deepens — symplectic and adaptive, with no criterion anywhere in it (Mikkola & Tanikawa 1999; Preto & Tremaine 1999).
On a two-body orbit it is spectacular: measured over twenty orbits at eccentricity 0.99, FSI4's peak error is — the orbit is destroyed — against for LogH at the same step count. On this cluster it is merely better, to depending on the draw, because the transformation is global: one binary is diluted among four hundred stars. Resolving that properly needs per-pair regularisation, which the research codes do and a browser does not.
Hermite is also fourth order and also adapts, but by a different route: itmeasures a step from each star's acceleration and jerk (Aarseth's criterion) and takes the smallest. That is a controller, and it costs it the symplectic property — its energy error is secular, growing steadily rather than returning.
So the three differ in what adapts, and in what the error does. Worst so far, measured on this cluster at this page's own settings:
| adapts? | 2 | 10 | 15 | 20 | |
|---|---|---|---|---|---|
| FSI4 | no | ||||
| LogH | by transformation | ||||
| Hermite | by criterion |
Which means Hermite is the most accurate here and the least trustworthy to extrapolate. Its small number does not promise to stay small; theirs do. FSI4 is the default despite being the least accurate of the three on this configuration, because it is the one ported directly from my
gravax code — so what you are watching is the scheme the research code runs, not the best result a browser could produce.- The most bound pair in the cluster, once it has held together for half a crossing time — long enough to be a binary rather than two stars passing.
a is the semi-major axis and e the eccentricity of their orbit about each other; P is its period. hard is the binding energy in units of a typical star's kinetic energy — above 1 the pair is "hard", meaning encounters tighten it further instead of breaking it up, which is why the number climbs.
steps/orbit is the one that explains the energy strip. It is how many integrator steps fall in one orbit, and a fixed step needs of order a hundred to follow periapsis. Watch it fall as a shrinks: that is the model running out, and the error below rising is the consequence.
It reads — under Hermite, and that is the honest answer rather than a missing feature: Hermite sizes every sub-step from the local acceleration and jerk, so there is no one step to count an orbit in. LogH does report one — its physical step floats with the depth of the potential — so the figure there is the step it actually took, and you should expect it to hold up far better than FSI4's as the pair tightens. That is the adaptivity, visible as a number.
Expect e to be large. A binary like this forms by capture rather than in place, so it arrives on a long thin orbit and hardens by repeated close passages — which is also why the damage is concentrated in the small part of the orbit spent near periapsis.
"Show me" draws the orbit as well as framing it. The curve is the lighter star's path around the pair's centre of mass — the two stars both orbit that point, and it is itself moving through the cluster, so the trail is drawn in its frame or the ellipse would be smeared along the binary's own path. Every point on it is a state the integrator produced: it is sampled every step rather than every eighth frame, because by the time this matters one orbit takes tens of steps, and nothing between the samples is filled in.
Why it tightens instead of breaking up — Heggie's law. The rule for what encounters do to a binary is one of the oldest results in stellar dynamics:hard binaries get harder, soft binaries get softer (Heggie 1975; Hills 1975). A soft pair — more loosely bound than a passing star's kinetic energy — is pulled apart by the next encounter. A hard one is not: on average a passing star leaves itmore tightly bound than it found it, and carries the difference away as kinetic energy.
So a hard binary never settles. It keeps giving energy to the cluster around it, which is why the hard figure above only ever climbs, and why a single binary can heat a whole cluster. It is also why this one eventually outruns the timestep: nothing in the physics stops it tightening, so the only question is whether the arithmetic can keep up. - —
- — pc
- —
- —
- hard
- —
- steps/orbit
- —
The reverse does not follow. A conserved energy says the integrator solved the equations it was given; it says nothing about whether those equations still describe a star cluster. See the note under the figure for where the model runs out.
With gravity off the strip stays empty: there is no integrator running to make a claim about.
Press run with no gravity selected. Every star keeps the velocity it was born with and flies off in a straight line, and within a few million years there is no cluster left — nothing was ever holding it together. Now pressgravity: the run restarts from the same initial conditions and keeps going. The same stars, the same velocities, one term added — and now they hold.
That one term is the entire model. Every star is pulled by every other star, so the acceleration of star is just the sum of those pulls:
That is the only equation being solved. Nothing in it says heavy stars should sink. Nothing in it builds a binary, or decides when a cluster comes apart, or knows what a cluster is. Everything below is this one sum, evaluated for every pair of stars, over and over — so when the heaviest stars end up in the middle, this is what put them there, and that is what makes it a result rather than a setting. The single liberty taken is , the softening: it keeps the pull finite when two stars pass very close, and the note under the figure says how large it is.
With gravity on, the two curves in the right-hand panel start together at 1 and then part — the heaviest stars contracting below where they began while the lightest climb away. That is a measurement rather than an impression: the same stars are followed all run, so the curves cannot separate by relabelling who counts as heavy. Each is drawn relative to its own starting radius, because the heaviest 10% is a small enough group that its absolute radius is a noisy number; the two absolute radii are in the readout, and at the start they differ by sampling alone.
A gap between those curves is not by itself the evidence, and it is worth seeing why. Run it with gravity off and the two separate anyway, because the heavy and light groups simply start at different radii and with different speeds. How far they separate is an accident of the draw rather than a result: measured across eight consecutive draws, the gap after eight crossing times ran from to , and in three of the eight it was the heavy group that spread faster. What gravity does is different in kind rather than in size: the heavy curve drops below 1 while the light one climbs away. That crossing is the segregation; the offset is not.
Watch the energy strip along the bottom while gravity is on. It plots the fractional energy error against the tolerance the run is checked at, and for the first several crossing times it sits around — the integrator is barely working. Then it climbs, in steps. Each step is not a generic "close encounter": it is one specific thing, and the panel above will tell you when it happens.
The cluster builds a binary, and then the binary breaks the arithmetic.Segregation sinks the heaviest stars to the centre, where two of them capture each other — and a hard binary hardens, giving up energy to every star that passes it. Watch the readout while it happens: the pair's orbit tightens until a single orbit takes a few dozen integrator steps instead of thousands, while its binding energy climbs from a few times a typical star's kinetic energy to hundreds of times it. Once an orbit takes only tens of steps, a fixed step cannot follow it through closest approach, and the error jumps. It then sits flat until the next jump — which is exactly what a symplectic scheme should do: the error arrives in discrete events and does not creep between them.
So the strip is measuring two things at once, and it is worth keeping them apart. Thesteps are real cluster physics — binaries form and harden, and that is a result, not a bug. The height of them is a statement about this browser's arithmetic. Let it run and some clusters climb to the limit; others never do. When one does, the run ends. It would be easy to keep integrating and let the picture go on looking convincing, and that is exactly the problem: past that line the arithmetic is no longer solving these equations well enough for the picture to mean anything, so the panel stops and says why rather than showing you a cluster it is no longer computing. With gravity off the strip stays empty, because there is no integrator running to make a claim about.
So what would a real code do instead of stopping? Shorten the step. That is not something this scheme can do as a habit — its well-behaved error comesfrom the step being fixed, so a step that changed at every one of them would trade a visible, bounded error for an invisible, creeping one. But changing it a handful of times is a different object: the error takes a single jump at the change and then sits flat again. Add ?autostepto the address and the run shortens its step as the error climbs instead of ending, at roughly half the model time per second of wall clock. It costs the halt, which is why it is not the default — the line above is the honest thing to show first. The note under the cluster says when the step moved.
Run the same cluster twice and you may not get the same ending. That is not a flaw in the model; it is the thing the model is about. The error is not spread evenly over the run — it is delivered in single close passages between stars, and a close passage magnifies whatever difference it is handed. So a discrepancy far below anything visible on screen is enough, a few encounters later, to decide whether one passage lands just inside the limit or just outside it. The same draw can stop in one browser and run on in another for exactly that reason. A cluster core is chaotic in the strict sense: the individual trajectory is not something you can pin down and keep — only the statistics are, which is why a real study runs a cluster many times and quotes a distribution instead of a number.
Drop N and the curves get noisier: with few stars, segregation is a statement about an average that barely has enough members to be an average. This is the same sampling problem the census shows at the high-mass end, arriving from the other direction.
What this model does and does not know. The integrator is a symplectic scheme of the same family my gravax code uses, run here on a few hundred stars so it keeps up with a browser; gravity is softened at small separations (, about 0.009 pc at), so very close encounters are smoothed rather than resolved.
The stars move but they do not age: masses, temperatures and luminosities are ZAMS values held fixed for the whole run. That is a limit on the dynamics and not only on the picture. The most massive star is a different star in every draw — measured across eight consecutive draws it ran from 16 to 47 — and even the lightest of those would leave the main sequence within about 12 Myr, the heaviest within about 4, returning most of its mass. This run keeps integrating them at their birth masses throughout. Past a few tens of Myr the cluster you are watching is a cluster of stars that would no longer exist, and the energy strip cannot tell you that: a conserved energy says the integrator solved the equations it was given, not that those equations still describe a star cluster.
The segregation you are watching is earned: the initial conditions place stars without regard to mass, so nothing here arranges the heavy ones and the arrangement has to come from the gravity you switched on.