Interface: RingVariation
Deterministic visual variation for a planet's ring system.
A single annular mesh is painted using a macroscopic radial profile (8 opacity samples, lerp-interpolated) combined with 1D micro-banding noise. The profile is drawn from a rich archetype pool — the combination of archetype choice, per-sample jitter, palette swaps and noise parameters produces hundreds of visually distinct looks (thin shepherd bands, solid dense bands, icy halos, dusty outer rings, …) without bespoke shaders.
Properties
innerRatio
innerRatio: number;Inner edge radius as a multiple of the planet visual radius.
outerRatio
outerRatio: number;Outer edge radius as a multiple of the planet visual radius.
colorInner
colorInner: string;Inner-edge tint (radial gradient start).
colorOuter
colorOuter: string;Outer-edge tint (radial gradient end).
profile
profile: readonly [number, number, number, number, number, number, number, number];8 opacity samples along the radial axis (t=0 at inner edge, t=1 at outer edge).
bandFreq
bandFreq: number;Micro-banding frequency (number of fine rings visible across the strip).
bandContrast
bandContrast: number;Micro-banding contrast [0..1]. Higher = sharper bright/dark alternation.
dustiness
dustiness: number;Dustiness [0..1] — blend toward a diffuse uniform field (halo/nebulous look).
grainAmount
grainAmount: number;Grain amount [0..1] — amplitude of the 2D high-frequency speckle/grain layer.
grainFreq
grainFreq: number;Grain frequency — radial scale of the speckle pattern (higher = finer grain).
opacity
opacity: number;Global alpha multiplier [0..1].
lobeStrength
lobeStrength: number;Strength of the low-frequency azimuthal lobes [0..1]. Higher = more angular asymmetry.
keplerShear
keplerShear: number;Keplerian differential rotation [0..1]. At 0 the ring rotates as a rigid block (texture locked to the mesh); at 1 each radial band drifts at its own Kepler rate (ω ∝ r^-3/2), so outer bands visibly lag behind inner ones over time — producing Saturn-like shear spirals.
noiseSeed
noiseSeed: number;Seed used by the 1D hash-noise in the shader — keeps patterns deterministic.
archetype
archetype: RingArchetype;Archetype label — purely informational, useful for tests / debug.