Skip to content

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

ts
noiseSeed: [number, number, number];

noiseFreq

ts
noiseFreq: number;

roughnessMod

ts
roughnessMod: number;

Multiplier on physics roughness — makes surface smoother or rougher.


heightMod

ts
heightMod: number;

Multiplier on physics heightScale — flatter or more dramatic relief.


craterDensityMod

ts
craterDensityMod: number;

Multiplier on physics craterDensity.


craterCountMod

ts
craterCountMod: number;

Multiplier on physics craterCount.


waveAmount

ts
waveAmount: number;

Direct randomized wave layer amount — independent from physics.


waveScale

ts
waveScale: number;

Direct randomized wave scale — independent from physics.


colorMix

ts
colorMix: number;

Color temperature shift: 0=cooler, 0.5=neutral, 1=warmer. Applied to colorA/colorB.


luminance

ts
luminance: number;

Overall brightness for rocky/metallic palette.


crackIntensity

ts
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

ts
crackWidth: number;

crackScale

ts
crackScale: number;

crackDepth

ts
crackDepth: number;

crackColor

ts
crackColor: string;

crackBlend

ts
crackBlend: number;

metalness

ts
metalness: number;

Direct metalness value — oxidisation / surface purity variation.


lavaIntensity

ts
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

ts
lavaEmissive: number;

lavaScale

ts
lavaScale: number;

lavaWidth

ts
lavaWidth: number;

lavaColor

ts
lavaColor: string;

Lava tint (#hex). Defaults to a neutral dark red; caller overrides for hotter / cooler looks.


gasBandSharpness

ts
gasBandSharpness: number;

gasBandWarp

ts
gasBandWarp: number;

gasJetStream

ts
gasJetStream: number;

gasTurbulence

ts
gasTurbulence: number;

gasCloudDetail

ts
gasCloudDetail: number;

gasColorMix

ts
gasColorMix: number;

gasLuminance

ts
gasLuminance: number;

gasCloudAmount

ts
gasCloudAmount: number;

gasCloudColor

ts
gasCloudColor: string;

rings

ts
rings: RingVariation | null;

Ring system when config.hasRings is true; null otherwise.

Distribué sous la licence indiquée dans le dépôt.