OptionalshapeThe population's shape (see BeltShape). Defaults from type: 'belt' →
'ring', 'cloud' → 'shell'. Set 'cluster' for a population that isn't
spread round the whole circle.
id of the body this surrounds or clusters round — usually the star.
Degrees — the full angular THICKNESS of the population, centred on the reference plane: particles scatter up to half of this above it and half below (the asteroid belt's 20 is ±10°). For a 'shell', 180 is a complete sphere; anything less is a shell with its polar caps left empty. A few degrees for a thin ring, tens of degrees for the asteroid belt.
How many particles to render. When realPositions is set, this is
just its length (the real count); otherwise it's a rendering/
legibility choice, not a real population count (a real belt like the
asteroid belt holds millions+ of objects, far more than would ever be
rendered as individual points).
OptionalrealReal individual positions (km, relative to parentId), when they're
actually known — e.g. a game's asteroid fields, where the source data
enumerates every real rock's exact position, unlike the Solar
System's asteroid belt (millions of real objects, none individually
catalogued here). When set, rendering uses these exact points instead
of statistically scattering particleCount points across
[innerRadiusKm, outerRadiusKm] — real data over an invented
distribution, whenever real data actually exists.
OptionalgapsRadius ranges the scattered population keeps clear of — e.g. the
asteroid belt's Kirkwood gaps, cleared by resonance with Jupiter. Only
affects the statistical scatter; ignored when realPositions is set.
OptionalsitesNamed sites inside this belt (see BeltSite), drawn as distinct markers among its population.
OptionalcoWhen set, this population isn't spread uniformly around the full circle — it clusters in a libration zone leading or trailing a specific body's current orbital position by a fixed angle, and rotates together with that body over time. This is the real shape of Jupiter's Trojan asteroids: gravitationally locked to Jupiter's L4/L5 points (60° ahead of and behind it), not spread around the Sun the way the main asteroid belt is — a genuinely different population shape, not a rendering variation of the same one.
The body this population leads/trails — its current position
(around parentId) sets the cluster's centre angle each moment.
+60° = L4 (leading), -60° = L5 (trailing)
Degrees — how wide the population spreads around that leading/ trailing point (real libration zones are a complex "tadpole" shape; a simple angular band is a legibility simplification, same spirit as the radius-range/inclination-spread simplification everywhere else in this type).
OptionalcolorOptionalnoteOptionalwikiSee CelestialBody's own wikiSummary/wikiUrl — same meaning here.
Optionalwiki
A population spread across a region rather than one tracked body: a belt round a star (the asteroid belt, the Kuiper belt), a shell (the Oort cloud), or local clusters (a Lagrange point's asteroids). These are objects in their own right — selectable and framed as belts. A planet's own ring system is not a belt: it's part of the planet (see CelestialBody.rings).