Interface: PlanetVisualProfile
Visual tunables kept inline on PlanetConfig — these are read by the render layer when building palettes and decorative features but have no effect on the simulation itself. Full palette overrides live separately in BodyRenderOptions (render-only, coupled to THREE.Color).
Stars do not carry a visual profile: their look is fully driven by SpectralType — every visible knob (palette, granulation, corona, godrays) derives from it.
Properties
liquidColor?
optional liquidColor?: ColorInput;Liquid-surface colour. Required when liquidState !== 'none' — the lib no longer ships a fallback keyed on chemistry names, so the caller owns the substance→colour catalogue entirely. Frozen sheets use this value as the liquid-side anchor; the frozen tint is then derived by desaturation.
bandColors?
optional bandColors?: object;Four-stop band palette for gas giants — ordered light → dark → accent → secondary. Consumed by the gas terrain palette and the shader's band uniforms. When omitted, a neutral default is used; callers that want molecule-accurate hues (Jupiter, Neptune, Titan…) compute the stops from their own gas catalogue and pass them in here.
colorA
colorA: ColorInput;colorB
colorB: ColorInput;colorC
colorC: ColorInput;colorD
colorD: ColorInput;terrainColorLow?
optional terrainColorLow?: ColorInput;Low anchor colour of the default rocky terrain ramp — assigned to the shortest band (elevation 1). Ignored when a palette override is supplied at render time. Defaults to DEFAULT_TERRAIN_LOW_COLOR.
terrainColorHigh?
optional terrainColorHigh?: ColorInput;High anchor colour of the default rocky terrain ramp — assigned to the tallest band (elevation N). Ignored when a palette override is supplied at render time. Defaults to DEFAULT_TERRAIN_HIGH_COLOR.
metallicBands?
optional metallicBands?: readonly [MetallicBand, MetallicBand, MetallicBand, MetallicBand];Four-band palette for metallic bodies — ordered crater floor → plains → highlands → peaks. Consumed by the metallic terrain palette and the procedural shader (base + accent are read from the first and last bands). When omitted, the lib falls back to a neutral grey ladder; callers wire their own composition catalogue (see the playground for a reference implementation) and pass the result in here.
hasRings?
optional hasRings?: boolean;When true, a decorative ring system is generated around this body (visual only).