ROUNDING_RADIUS

const ROUNDING_RADIUS: Meters

The radius above which a body is round, and below which it is a rock.

Self-gravity beats material strength somewhere around 200 km for rock and a little lower for ice: Mimas is round at 198 km, Proteus is very nearly round at 201, and Hyperion at 133 is a sponge. It is not a sharp edge — Vesta at 265 km has a basin taken out of its south pole deep enough to see in the silhouette — so this is where the transition is centered rather than where roundness begins.

Why it lives in a file of its own

It is read by system.ts (which draws generated figures) and by solar/smallBodies.ts (which classifies measured ones), and those two are on opposite sides of an import cycle: system.ts imports solar/system.ts for SOL, and solar/system.ts imports solar/smallBodies.ts. A type import across that edge is erased and harmless, which is why solar/bodies.ts can take BodyKind from system.ts and nothing notices. A value import is not: SOLAR_SMALL_BODIES is built eagerly at module scope, so it read this constant while system.ts's own body had not yet run.

That threw ReferenceError: Cannot access 'ROUNDING_RADIUS' before initialization for anyone importing system.ts directly, and was invisible from index.ts only because its export * list happens to name ./solar/system.ts before ./system.ts — an alphabetical accident, one re-sort away from taking down the whole package. pnpm graph cannot see it: it checks for cycles between packages, and this one is inside a package.

A leaf with no imports of its own cannot be on either side of a cycle, which is the only durable fix. system.ts re-exports it, so the public name is unchanged.

universe/src/rounding.ts:35

Generated from the source of @inertialref/universe and its comments. Nothing on this page is written by hand.