BodyFigure

interface BodyFigure

The measured figure of a body that gravity did not round off.

radius and polarRadius describe a spheroid, which is the right shape for everything hydrostatic equilibrium got hold of — every planet, every large moon, Pluto and Ceres. Below roughly 400 km across, self-gravity loses to material strength and the body keeps whatever shape the last collision left it. Phobos is 27 × 22 × 18 km with a nine-kilometer crater in one end; Kleopatra is a dog bone; Bennu is a spinning top. A spheroid cannot say any of that, and drawing one is not an approximation of those bodies, it is a picture of a different object.

Present exactly when the body is not a spheroid. Null is not "unknown", it is "round", and the renderer reads it that way.

universe/src/system.ts:289

Members

intermediateRadiusreadonly

intermediateRadius: number

The second equatorial half-extent, meters.

radius is a and polarRadius is c; this is b. It lives here rather than as a third top-level radius because a = b for every hydrostatic body there is, so on a spheroid the field would be a third number restating the first. In Sol that is 37 bodies it would be redundant on against 92 it is load-bearing for; across the galaxy the ratio inverts, because a generated system is mostly round worlds with a belt. Either way the field belongs with the bodies that need it rather than on the ones that do not.

irregularityreadonly

irregularity: number

Radial roughness as a fraction of the mean radius, for the generated figure that stands in when there is no model.

The measured half-extents are a fact and this is not; it is the same split SurfaceParameters makes, where the published relief is used verbatim and the shape below the map's resolution is drawn from the seed. A body with a model ignores it.

modelreadonly

model: string | null

Key into the shape-model manifest, or null.

A key, not a path, for the same reason BodyAppearance.texture is one: packages/universe cannot fetch anything and must not know what a URL is. A key with no entry falls back to the generated figure below, which is why this can name a model that has not been vendored yet.