Interface: SolidShellConfig
Inputs for buildSolidShell.
Properties
tiles
tiles: readonly Tile[];Tiles eligible for the cap — typically every tile below the waterline.
baseElevation
baseElevation: ReadonlyMap<number, number>;Per-tile underlying mineral elevation in band space. The cap's wall starts here; the top sits at topElevation. Tiles missing from the map are skipped.
topElevation
topElevation: number;Uniform top elevation in band space — the waterline. Same value for every cap tile so the surface reads as a sealed sheet. Fractional values are linearly interpolated against palette.
palette
palette: TerrainLevel[];Palette feeding the band → world-height conversion. Must be the same palette the underlying sol mesh uses, otherwise the cap and the floor separate. Heights are interpreted as offsets above coreRadius (matching the lib's terrainBandLayout convention).
bodyRadius
bodyRadius: number;World-space surface radius of the body — equals BodyConfig.radius. Required so the cap aligns with the underlying sol mesh, which is extruded from coreRadius rather than the surface.
coreRadius
coreRadius: number;World-space radius of the inner core sphere — anchors palette[0].height. Pass body.config.radius * coreRatio (or compute via resolveCoreRadiusRatio).
color
color: ColorRepresentation;Resolved solid-phase tint (caller-owned chemistry).
roughness?
optional roughness?: number;PBR roughness override. Defaults to a snowy matte (0.8).
metalness?
optional metalness?: number;PBR metalness override. Defaults to 0 (non-metallic).