21 KiB
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.
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
The land/ocean base is an Earth base-map asset and preloads at startup; the "Border Lines" layer toggle only controls normal border lines, hover lines, and interactive hover.
| 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.115 |
Normal border line radius; slightly above HD texture 0.10 and below terrain base 0.16 to reduce floating |
| 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.14 |
Hover line radius; close to the surface but above normal border lines |
| 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.2 |
Same surface height as cable lines, avoiding a floating marker |
| Landing point sprite height | local LANDING_POINT_SPRITE_HEIGHT |
3 |
THREE.Sprite base height |
| Landing point reference FOV | local LANDING_POINT_SIZE_REFERENCE_FOV |
75 |
Matches the current Earth camera FOV |
| Landing point scale minimum | local LANDING_POINT_SIZE_SCALE_MIN |
0.16 |
Minimum multiplier after roughly 200% zoom, limiting high-zoom screen footprint; 3 * 0.16 = 0.48 |
| Landing point scale maximum | local LANDING_POINT_SIZE_SCALE_MAX |
3 |
Maximum multiplier at far distance; current minimum zoom reaches roughly 2.50 |
| Landing point atlas size | local LANDING_POINT_ATLAS_CELL_SIZE |
128 |
Canvas flat shaded sphere texture size |
| 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 |
1 |
Same level as cable lines; depthTest: false keeps the ball whole, while camera-to-center globe occlusion hides back-side points |
| Landing point dim brightness | landingPointVisual.dimBrightness |
0.62 |
Dim state color multiplier |
| Related landing point opacity | landingPointVisual.related.opacityBase / opacityPulse |
0.8 / 0.2 |
Highlight pulse |
| 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 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 |
Starlink footprint fill and Iridium coverage ring; must stay above land / texture / terrain surface layers |
AIS Vessels
| Name | Variable | Current Value | Location / Notes |
|---|---|---|---|
| Vessel radius offset | VESSEL_CONFIG.altitudeOffset |
0.2 |
Normal marker position, close to the real terrain base layer |
| Vessel track radius offset | VESSEL_CONFIG.track.altitudeOffset |
0.2 |
Selected vessel track line, aligned to the vessel marker radius; the frontend anchors the track endpoint to the current marker position |
| Vessel renderOrder | local VESSEL_RENDER_ORDER |
4.4 |
Normal marker and interactive overlay |
| Vessel track renderOrder | VESSEL_RENDER_ORDER - 0.1 |
4.3 |
Below vessel markers |
| Vessel point pixel size | local VESSEL_POINT_SIZE |
34 |
Shared size for normal markers and hover / locked overlays |
| Default vessel render cap | VESSEL_CONFIG.maxRenderedMarkers |
0 |
0 means the frontend does not clip by default; positive values send limit and clip markers |
| Vessel texture canvas size | local VESSEL_ATLAS_CELL_SIZE |
128 |
Canvas point texture |
| Course bucket count | local VESSEL_COURSE_BINS |
32 |
Moving vessels are bucketed by COG to reduce draw calls while preserving direction |
| Vessel hover picking throttle | local VESSEL_HOVER_PICK_INTERVAL_MS |
100 |
main.js hover picking |
| Vessel screen hit radius | local VESSEL_POINTER_RADIUS_PX |
22 |
main.js screen-space picking |
AIS vessel markers use batched THREE.Points, not one THREE.Sprite per vessel. Moving vessels stay triangular, anchored or slow vessels stay circular, and hover / locked states add a same-size glow overlay. Vessel type color and info-card type text must come from the same normalized result: vessels.js reads both backend vessel_type_name and AIS numeric vessel_type, derives the color-driving type, then exposes vessel_type_display for the info card, hover summary, and search results.
Compute Centers
| Name | Variable | Current Value | Location / Notes |
|---|---|---|---|
| Compute center radius offset | COMPUTE_CENTER_CONFIG.altitudeOffset |
0.48 |
Marker position |
| Compute center point size | local COMPUTE_CENTER_POINT_SIZE |
36 |
Shared Interactable base size for normal markers and hover / locked overlays |
| Compute center asset fit size | local COMPUTE_CENTER_ICON_FIT_SIZE |
60 |
Maximum SVG asset draw size inside the 128x128 atlas canvas, controlled by icon.fitSize |
| Compute center base opacity | COMPUTE_CENTER_CONFIG.marker.baseOpacity |
0.88 |
Normal PointsMaterial.opacity |
| Supercomputer marker scale | COMPUTE_CENTER_CONFIG.marker.supercomputerScale |
12 |
Legacy Sprite scale; not directly used by the current Interactable path |
| GPU cluster marker scale | COMPUTE_CENTER_CONFIG.marker.gpuClusterScale |
12 |
Legacy Sprite scale; not directly used by the current Interactable path |
| Hover scale | COMPUTE_CENTER_CONFIG.marker.hoverScale |
1.16 |
Hover overlay size multiplier |
| Locked scale | COMPUTE_CENTER_CONFIG.marker.lockedScale |
1.22 |
Locked overlay size multiplier, with pulse |
| 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 |
0.48 |
BGP event Interactable marker |
| BGP collector radius offset | BGP_CONFIG.collectorAltitudeOffset |
0.2 |
BGP collector Interactable marker, aligned with the vessel layer |
| BGP event point size | local BGP_EVENT_POINT_SIZE |
34 |
Event Interactable base size, adjusted by severity through getPointSizeMultiplier() |
| BGP event symbol draw size | local BGP_EVENT_SYMBOL_SIZE |
60 |
Event canvas symbol draw size inside the 128x128 atlas |
| BGP collector point size | local BGP_COLLECTOR_POINT_SIZE |
36 |
Collector Interactable base size, adjusted by activity through getPointSizeMultiplier() |
| BGP collector asset fit size | local BGP_COLLECTOR_ICON_FIT_SIZE |
60 |
Maximum bgp-broadcast-pin.svg draw size inside the atlas canvas |
| Event base scale | BGP_CONFIG.marker.eventBaseScale |
6.2 |
Event ring anchor |
| Collector base scale | BGP_CONFIG.marker.collectorBaseScale |
7.4 |
Collector halo / coverage animation anchor |
| Hover / dim scale | hoverScale / dimmedScale |
1.16 / 0.92 |
Interaction states |
| Normal event opacity | BGP_CONFIG.opacity.normal |
0.78 |
BGP event Interactable normal state |
| 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 |