Interface: BodyVariation
Complete visual variation for a planet — covers every shader parameter exposed by the procedural materials. Generated once from a deterministic seed (config.name) so appearance is identical across sessions and across server / client.
Physics (BodyConfig) sets whether features exist and their maximum values. Variation sets the exact visual expression within those constraints.
Properties
noiseSeed
noiseSeed: [number, number, number];noiseFreq
noiseFreq: number;roughnessMod
roughnessMod: number;Multiplier on physics roughness — makes surface smoother or rougher.
heightMod
heightMod: number;Multiplier on physics heightScale — flatter or more dramatic relief.
craterDensityMod
craterDensityMod: number;Multiplier on physics craterDensity.
craterCountMod
craterCountMod: number;Multiplier on physics craterCount.
waveAmount
waveAmount: number;Direct randomized wave layer amount — independent from physics.
waveScale
waveScale: number;Direct randomized wave scale — independent from physics.
colorMix
colorMix: number;Color temperature shift: 0=cooler, 0.5=neutral, 1=warmer. Applied to colorA/colorB.
luminance
luminance: number;Overall brightness for rocky/metallic palette.
crackIntensity
crackIntensity: number;0–1 lerp factor between the shader's crackAmount min / max. 0 disables the effect entirely — the caller (game logic) pushes a value > 0 when it wants the planet to display crust fractures. Default 0.
crackWidth
crackWidth: number;crackScale
crackScale: number;crackDepth
crackDepth: number;crackColor
crackColor: string;crackBlend
crackBlend: number;metalness
metalness: number;Direct metalness value — oxidisation / surface purity variation.
lavaIntensity
lavaIntensity: number;Lava intensity in [0, 1]. 0 disables the lava layer; the caller pushes a value > 0 when it wants the planet to display molten flows. Default 0.
lavaEmissive
lavaEmissive: number;lavaScale
lavaScale: number;lavaWidth
lavaWidth: number;lavaColor
lavaColor: string;Lava tint (#hex). Defaults to a neutral dark red; caller overrides for hotter / cooler looks.
gasBandSharpness
gasBandSharpness: number;gasBandWarp
gasBandWarp: number;gasJetStream
gasJetStream: number;gasTurbulence
gasTurbulence: number;gasCloudDetail
gasCloudDetail: number;gasColorMix
gasColorMix: number;gasLuminance
gasLuminance: number;gasCloudAmount
gasCloudAmount: number;gasCloudColor
gasCloudColor: string;rings
rings: RingVariation | null;Ring system when config.hasRings is true; null otherwise.