# Earth Layer Style Property Index This document records the material, color, opacity, line width, radius offset, and `renderOrder` style properties of all Earth frontend layers. For layer ordering relationships, see [earth-render-layer-order.md](/home/ray/dev/linkong/planet/docs/technical/en/earth-render-layer-order.md). ## Naming Conventions | Category | Convention | Example | | --- | --- | --- | | Global config objects | `*_CONFIG` | `COUNTRY_BOUNDARY_CONFIG` | | Layer radius offsets | `*AltitudeOffset` / `radiusOffset` | `lineAltitudeOffset`, `GRID_CONFIG.radiusOffset` | | Opacity | `*Opacity` | `hoverLineOpacity` | | Render order | `*RenderOrder` | `textureOverlayRenderOrder` | | Color | `*Color`, hex number or CSS color value | `lineColor`, `colors.supercomputer` | | Line width | `lineWidth` / `*LineWidth` | `GRID_CONFIG.lineWidth` | ## Earth Base and HD Texture | Name | Variable | Current Value | Location / Notes | | --- | --- | --- | --- | | Earth base radius | `CONFIG.earthRadius` | `100` | `earth.js:createEarth()` | | Earth base color | `EARTH_MATERIAL_CONFIG.color` | `0x010609` | `MeshPhongMaterial.color` | | Earth base emissive | `EARTH_MATERIAL_CONFIG.emissive` | `0x010609` | `MeshPhongMaterial.emissive` | | Earth base specular | `EARTH_MATERIAL_CONFIG.specular` | `0x1a2d45` | `MeshPhongMaterial.specular` | | Earth base shininess | `EARTH_MATERIAL_CONFIG.shininess` | `12` | `MeshPhongMaterial.shininess` | | Earth base opacity | `EARTH_MATERIAL_CONFIG.opacity` | `1` | `MeshPhongMaterial.opacity` | | HD texture radius offset | `EARTH_MATERIAL_CONFIG.textureOverlayAltitudeOffset` | `0.1` | Standalone HD texture sphere radius | | HD texture opacity | `EARTH_MATERIAL_CONFIG.textureOverlayOpacity` | `0.88` | HD texture `MeshPhongMaterial.opacity` | | HD texture renderOrder | `EARTH_MATERIAL_CONFIG.textureOverlayRenderOrder` | `0.96` | `_earthTextureOverlay.renderOrder` | | HD texture specular | `EARTH_MATERIAL_CONFIG.textureOverlaySpecular` | `0x05080d` | Reduces specular highlight in direct-light areas to avoid blown-out texture | | HD texture shininess | `EARTH_MATERIAL_CONFIG.textureOverlayShininess` | `4` | Reduces specular concentration | | HD texture color multiplier | inline | `0xffffff` | `_earthTextureOverlayMaterial.color` | ## Earth Occluder and Day/Night | Name | Variable | Current Value | Location / Notes | | --- | --- | --- | --- | | Occluder radius factor | `EARTH_MATERIAL_CONFIG.occluderRadiusFactor` | `0.999` | Depth occluder sphere radius | | Occluder segments | `EARTH_MATERIAL_CONFIG.occluderSegments` | `48` | Occluder geometry segments | | Occluder renderOrder | inline | `-1` | `occluder.renderOrder` | | Day/night sun direction | `EARTH_MATERIAL_CONFIG.dayNight.sunDirection` | `{ x: 1, y: 0.2, z: 0.4 }` | Custom day/night shader | | Night-side minimum brightness | `EARTH_MATERIAL_CONFIG.dayNight.nightFloor` | `0.24` | Shader uniform | | Day-side boost | `EARTH_MATERIAL_CONFIG.dayNight.dayBoost` | `1.12` | Shader uniform | | Twilight width | `EARTH_MATERIAL_CONFIG.dayNight.twilightWidth` | `0.2` | Shader uniform | | Twilight intensity | `EARTH_MATERIAL_CONFIG.dayNight.twilightIntensity` | `0.14` | Shader uniform | | Twilight color | `EARTH_MATERIAL_CONFIG.dayNight.twilightColor` | `0x4ea0ff` | Shader uniform | | Night tint color | `EARTH_MATERIAL_CONFIG.dayNight.nightTintColor` | `0x0b1830` | Shader uniform | | Night tint intensity | `EARTH_MATERIAL_CONFIG.dayNight.nightTintIntensity` | `0.08` | Shader uniform | ## Atmospheric Glow and Clouds | Name | Variable | Current Value | Location / Notes | | --- | --- | --- | --- | | Inner atmosphere radius factor | `EARTH_MATERIAL_CONFIG.atmosInnerRadiusFactor` | `1.01` | `atmosInnerGeo` | | Inner atmosphere segments | `EARTH_MATERIAL_CONFIG.atmosInnerSegments` | `64` | `atmosInnerGeo` | | Inner atmosphere color | `EARTH_MATERIAL_CONFIG.atmosInnerColor` | `[0.25, 0.62, 1.0]` | Shader RGB | | Inner atmosphere rim power | `EARTH_MATERIAL_CONFIG.atmosInnerRimPower` | `3.2` | Shader rim falloff | | Inner atmosphere intensity | `EARTH_MATERIAL_CONFIG.atmosInnerIntensity` | `0.18` | Shader alpha multiplier | | Outer atmosphere radius factor | `EARTH_MATERIAL_CONFIG.atmosOuterRadiusFactor` | `1.016` | `atmosOuterGeo` | | Outer atmosphere segments | `EARTH_MATERIAL_CONFIG.atmosOuterSegments` | `48` | `atmosOuterGeo` | | Outer atmosphere color | `EARTH_MATERIAL_CONFIG.atmosOuterColor` | `[0.18, 0.45, 0.9]` | Shader RGB | | Outer atmosphere rim power | `EARTH_MATERIAL_CONFIG.atmosOuterRimPower` | `5.0` | Shader rim falloff | | Outer atmosphere intensity | `EARTH_MATERIAL_CONFIG.atmosOuterIntensity` | `0.02` | Shader alpha multiplier | | Atmosphere blending | inline | `THREE.AdditiveBlending` | `ShaderMaterial.blending` | | Atmosphere renderOrder | inline | `1` | `atmosInner/Outer.renderOrder` | | No-HD-texture rim glow color | `EARTH_MATERIAL_CONFIG.rimGlowColor` | `[0.35, 0.65, 1.0]` | Fresnel shell RGB when HD texture is hidden or unavailable | | No-HD-texture rim glow power | `EARTH_MATERIAL_CONFIG.rimGlowPower` | `3.8` | Shader rim falloff; higher = narrower edge | | No-HD-texture rim glow intensity | `EARTH_MATERIAL_CONFIG.rimGlowIntensity` | `0.28` | Shader alpha multiplier | | No-HD-texture rim glow segments | `EARTH_MATERIAL_CONFIG.rimGlowSegments` | `64` | `earth-rim-glow` geometry segments | | Cloud layer radius offset | `CLOUD_LAYER_CONFIG.radiusOffset` | `3` | Cloud sphere radius | | Cloud layer segments | `CLOUD_LAYER_CONFIG.widthSegments / heightSegments` | `64 / 64` | Cloud sphere geometry | | Cloud layer opacity | `CLOUD_LAYER_CONFIG.opacity` | `0.15` | `MeshPhongMaterial.opacity` | | Cloud texture | `CLOUD_LAYER_CONFIG.textureUrl` | `"./assets/earth_clouds_1024.png"` | Cloud texture map | | Cloud blending | inline | `THREE.AdditiveBlending` | `MeshPhongMaterial.blending` | ## Land/Ocean Base and Country Borders | Name | Variable | Current Value | Location / Notes | | --- | --- | --- | --- | | Country border data path | `COUNTRY_BOUNDARY_CONFIG.dataPath` | `"/earth/data/countries-admin0.min.geojson"` | GeoJSON input | | Ocean fill color | local `OCEAN_HEX` | `0x010609` | Land/ocean base canvas background | | Land fill color | `COUNTRY_BOUNDARY_CONFIG.landColor` | `0x080f1b` | Land/ocean base canvas land | | Land/ocean base opacity | `COUNTRY_BOUNDARY_CONFIG.landOpacity` | `1.0` | `MeshBasicMaterial.opacity` | | Land/ocean base radius offset | `COUNTRY_BOUNDARY_CONFIG.landAltitudeOffset` | `0.08` | `country-land-ocean` radius | | Land/ocean base renderOrder | `COUNTRY_BOUNDARY_CONFIG.landRenderOrder` | `0.86` | `country-land-ocean.renderOrder` | | Land/ocean mask size | `landMaskWidth / landMaskHeight` | `2048 / 1024` | Canvas / DataTexture size | | Country tint color | `COUNTRY_BOUNDARY_CONFIG.tintColor` | `0x0b1830` | Tint when HD texture is off | | Country tint radius offset | `COUNTRY_BOUNDARY_CONFIG.tintAltitudeOffset` | `0.04` | `country-tint` radius | | Country tint renderOrder | `COUNTRY_BOUNDARY_CONFIG.tintRenderOrder` | `0.2` | `country-tint.renderOrder` | | Border line color | `COUNTRY_BOUNDARY_CONFIG.lineColor` | `0x7fc7ff` | Normal border line | | Border line opacity | `COUNTRY_BOUNDARY_CONFIG.lineOpacity` | `0.58` | Normal border line opacity | | Border dimmed opacity on hover | `COUNTRY_BOUNDARY_CONFIG.dimmedLineOpacity` | `0.18` | Normal border opacity during hover | | Border line radius offset | `COUNTRY_BOUNDARY_CONFIG.lineAltitudeOffset` | `0.24` | Normal border line radius | | Border line renderOrder | `COUNTRY_BOUNDARY_CONFIG.lineRenderOrder` | `2.2` | Normal border line level | | Border hover color | `COUNTRY_BOUNDARY_CONFIG.hoverLineColor` | `0xff3b1f` | Neon red-orange | | Border hover opacity | `COUNTRY_BOUNDARY_CONFIG.hoverLineOpacity` | `1.0` | Hover line opacity | | Border hover radius offset | `COUNTRY_BOUNDARY_CONFIG.hoverAltitudeOffset` | `0.32` | Hover line radius | | Border hover renderOrder | `COUNTRY_BOUNDARY_CONFIG.hoverLineRenderOrder` | `2.3` | Hover line level | | Border hover glow opacity | `COUNTRY_BOUNDARY_CONFIG.hoverGlowOpacity` | `0.38` | Glow line opacity | | Border hover glow line width | `COUNTRY_BOUNDARY_CONFIG.hoverGlowLineWidth` | `3` | Glow `LineBasicMaterial.linewidth` | | Border hover glow level offset | `COUNTRY_BOUNDARY_CONFIG.hoverGlowRenderOrderOffset` | `0.01` | Glow renderOrder = `2.29` | | Border hover glow radius offset | `COUNTRY_BOUNDARY_CONFIG.hoverGlowRadiusOffset` | `0.04` | Glow radius = hover radius + 0.04 | ## Real Terrain | Name | Variable | Current Value | Location / Notes | | --- | --- | --- | --- | | Terrain tile size | `TERRAIN_CONFIG.tileSize` | `256` | Terrarium tile read size | | Terrain base zoom | `TERRAIN_CONFIG.baseZoom` | `4` | Terrain sampling zoom | | Terrain geometry segments | `geometryWidthSegments / geometryHeightSegments` | `320 / 320` | Terrain sphere geometry | | Terrain base radius offset | `TERRAIN_CONFIG.baseRadiusOffset` | `0.16` | Terrain overlays HD texture | | Terrain exaggeration | `TERRAIN_CONFIG.exaggeration` | `34` | Elevation to world units | | Terrain land fade height | `TERRAIN_CONFIG.landRevealFadeMeters` | `220` | Vertex alpha for coastline fade | | Terrain opacity | `TERRAIN_CONFIG.opacity` | `0.68` | `MeshPhongMaterial.opacity` | | Terrain color | `TERRAIN_CONFIG.color` | `0x8aa884` | `MeshPhongMaterial.color` | | Terrain emissive | `TERRAIN_CONFIG.emissive` | `0x030704` | Reduces self-emission to preserve terrain shading | | Terrain specular | `TERRAIN_CONFIG.specular` | `0x344438` | Gives terrain local sheen without boosting HD texture brightness | | Terrain shininess | `TERRAIN_CONFIG.shininess` | `16` | Tightens terrain highlight | | Terrain renderOrder | inline | `1.2` | `terrain.renderOrder` | | Terrain polygonOffset | inline | `factor -1`, `units -1` | Reduces z-fighting near sphere surface | ## Grid Lines | Name | Variable | Current Value | Location / Notes | | --- | --- | --- | --- | | Grid radius offset | `GRID_CONFIG.radiusOffset` | `0.14` | Grid sphere radius | | Grid color | `GRID_CONFIG.color` | `0xc0e0ff` | `LineBasicMaterial.color` | | Grid opacity | `GRID_CONFIG.opacity` | `0.08` | `LineBasicMaterial.opacity` | | Grid line width | `GRID_CONFIG.lineWidth` | `1` | `LineBasicMaterial.linewidth` | | Grid renderOrder | `GRID_CONFIG.renderOrder` | `2.05` | Grid level | | Latitude step | `GRID_CONFIG.latitudeStep` | `15` | Latitude line generation step | | Longitude step | `GRID_CONFIG.longitudeStep` | `30` | Longitude line generation step | | Segment sample step | `GRID_CONFIG.segmentStep` | `5` | Grid line sample step | ## Submarine Cables and Landing Points | Name | Variable | Current Value | Location / Notes | | --- | --- | --- | --- | | Default cable color | `CABLE_COLORS.default` | `0xffff44` | Used when no data color available | | Cable radius offset | `CABLE_CONFIG.line.altitudeOffset` | `0.2` | Cable line radius | | Cable line width | `CABLE_CONFIG.line.lineWidth` | `1` | `LineBasicMaterial.linewidth` | | Cable opacity | `CABLE_CONFIG.line.opacity` | `1.0` | Cable line opacity | | Cable renderOrder | `CABLE_CONFIG.line.renderOrder` | `1` | Cable line level | | Landing point radius offset | `CABLE_CONFIG.landingPoint.altitudeOffset` | `0.48` | Aligns with compute center marker height | | Landing point icon texture size | `CABLE_CONFIG.landingPoint.textureSize` | `256` | Canvas size for solid map-pin icon | | Landing point icon aspect ratio | `CABLE_CONFIG.landingPoint.iconAspectRatio` | `0.82` | `Sprite.scale.x = height * aspect` | | Landing point icon anchor | `CABLE_CONFIG.landingPoint.anchorX / anchorY` | `0.52 / 0.276` | `Sprite.center`, aligns pin tip to landing point lat/lon | | Landing point base scale | `CABLE_CONFIG.landingPoint.baseScale` | `12` | Matches compute center sprite height | | Landing point color | `CABLE_CONFIG.landingPoint.color` | `0xffaa00` | `SpriteMaterial.color` | | Landing point opacity | `CABLE_CONFIG.landingPoint.opacity` | `1.0` | `SpriteMaterial.opacity` | | Landing point renderOrder | `CABLE_CONFIG.landingPoint.renderOrder` | `4.5` | Aligns with compute center surface level | | Landing point dim brightness | `landingPointVisual.dimBrightness` | `0.62` | Dim state color multiplier | | Dimmed landing point color | `landingPointVisual.dimmed.colorRGB` | `{ r: 180, g: 116, b: 28 }` | Dim state color; avoids dark base showing through as a dark hole | | Dimmed landing point emissive | `landingPointVisual.dimmed.emissive` | `0x3a2200` | Dim state weak amber self-emission | | Dimmed landing point opacity | `landingPointVisual.dimmed.opacity` | `0.78` | Dim state opacity; no longer uses low alpha blending with dark base | ## Satellites, Trails, and Footprints | Name | Variable | Current Value | Location / Notes | | --- | --- | --- | --- | | Satellite display radius offset | `SATELLITE_CONFIG.displayAltitudeOffset` | `8` | Satellite point position | | Satellite dot base pixel size | `SATELLITE_CONFIG.dotBaseSize` | `2.8` | Point shader size | | Satellite backdrop dot scale | `SATELLITE_CONFIG.dotBackdropScale` | `1.28` | Backdrop dot size | | Satellite dot opacity range | `dotOpacityMin / dotOpacityMax` | `0.7 / 1.0` | Breathing animation | | Satellite dot breathing speed | `SATELLITE_CONFIG.dotBreathingSpeed` | `0.12` | Dot opacity animation | | Satellite backdrop renderOrder | inline | `5` | `satelliteBackdropPoints.renderOrder` | | Satellite dot renderOrder | inline | `6` | `satellitePoints.renderOrder` | | Satellite trail length | `SATELLITE_CONFIG.trailLength` | `10` | Trail buffer | | Satellite trail line width | `SATELLITE_CONFIG.trailLineWidth` | `3` | Ribbon shader uniform | | Selected ring size | `SATELLITE_CONFIG.ringSize` | `0.07` | Hover / locked ring sprite | | Satellite overlay renderOrder | `SATELLITE_CONFIG.overlayRenderOrder` | `12` | Locked ring / halo / orbit | | Footprint renderOrder | local `GROUND_FOOTPRINT_RENDER_ORDER` | `3` | Footprint fill | ## Compute Centers | Name | Variable | Current Value | Location / Notes | | --- | --- | --- | --- | | Compute center radius offset | `COMPUTE_CENTER_CONFIG.altitudeOffset` | `0.48` | Marker position | | Compute center base opacity | `COMPUTE_CENTER_CONFIG.marker.baseOpacity` | `0.88` | `SpriteMaterial.opacity` | | Supercomputer marker scale | `COMPUTE_CENTER_CONFIG.marker.supercomputerScale` | `12` | Supercomputer marker | | GPU cluster marker scale | `COMPUTE_CENTER_CONFIG.marker.gpuClusterScale` | `12` | GPU marker | | Hover scale | `COMPUTE_CENTER_CONFIG.marker.hoverScale` | `1.16` | Hover state | | Locked scale | `COMPUTE_CENTER_CONFIG.marker.lockedScale` | `1.22` | Locked state | | Dimmed scale / opacity | `dimmedScale / dimmedOpacity` | `0.82 / 0.34` | Dim state | | Supercomputer color | `COMPUTE_CENTER_CONFIG.colors.supercomputer` | `"#38bdf8"` | Marker texture | | GPU cluster color | `COMPUTE_CENTER_CONFIG.colors.gpu_cluster` | `"#2dd4bf"` | Marker texture | | Linked color | `COMPUTE_CENTER_CONFIG.colors.linked` | `"#f8fafc"` | Linked state | | Compute center renderOrder | local `COMPUTE_CENTER_RENDER_ORDER` | `4.5` | Surface facility below satellites | ## BGP Observation | Name | Variable | Current Value | Location / Notes | | --- | --- | --- | --- | | BGP event radius offset | `BGP_CONFIG.altitudeOffset` | `2.1` | Anomaly marker | | BGP collector radius offset | `BGP_CONFIG.collectorAltitudeOffset` | `1.6` | Collector marker | | Event base scale | `BGP_CONFIG.marker.eventBaseScale` | `6.2` | Anomaly sprite | | Collector base scale | `BGP_CONFIG.marker.collectorBaseScale` | `7.4` | Collector plane | | Hover / dim scale | `hoverScale / dimmedScale` | `1.16 / 0.92` | Interaction states | | Normal event opacity | `BGP_CONFIG.opacity.normal` | `0.78` | Anomaly sprite | | Hover opacity | `BGP_CONFIG.opacity.hover` | `1.0` | Hover state | | Dimmed opacity | `BGP_CONFIG.opacity.dimmed` | `0.24` | Dim state | | Collector opacity | `BGP_CONFIG.opacity.collector` | `0.62` | Collector state | | Critical color | `BGP_CONFIG.severityColors.critical` | `0xff4d4f` | Critical event | | High color | `BGP_CONFIG.severityColors.high` | `0xff9f43` | High-severity event | | Medium color | `BGP_CONFIG.severityColors.medium` | `0xffd166` | Medium-severity event | | Low color | `BGP_CONFIG.severityColors.low` | `0x4dabf7` | Low-severity event | | Collector base color | `BGP_CONFIG.collectorColor` | `0x6db7ff` | Default collector color | | Region color | `BGP_CONFIG.regionColor` | `0x2dd4bf` | Region overlay | ## Celestial and Starfield | Name | Variable | Current Value | Location / Notes | | --- | --- | --- | --- | | Sky sphere radius | `CELESTIAL_CONFIG.skyRadius` | `2600` | Celestial background | | Sky opacity | `CELESTIAL_CONFIG.skyOpacity` | `1` | Background material | | Sun distance / scale | `sunDistance / sunScale` | `2150 / 78` | Sun sprite | | Moon distance / scale | `moonDistance / moonScale` | `2050 / 38` | Moon sprite | | Sun halo scale | `CELESTIAL_CONFIG.sunHaloScale` | `136` | Sun halo | | Moon halo scale | `CELESTIAL_CONFIG.moonHaloScale` | `62` | Moon halo | | Sun light color / intensity | `sunLightColor / sunLightIntensity` | `0xfff4df / 1.02` | Scene light | | Back light color / intensity | `backLightColor / backLightIntensity` | `0x2b4c78 / 0.3` | Scene light | | Star count | `STARFIELD_CONFIG.count` | `8000` | `createStars()` | | Star radius range | `minRadius + radiusJitter` | `800 + 200` | Random distribution | | Star color | `STARFIELD_CONFIG.color` | `0xffffff` | `PointsMaterial.color` | | Star size | `STARFIELD_CONFIG.size` | `0.5` | `PointsMaterial.size` |