How avasyu-hub/nasa-spaceapp-challenge works
LunaWise compares lunar south-pole landing sites and mission dates by computing Sun/Earth visibility against terrain. Its documented workflow is offline ephemeris and horizon generation, export to static data, then browser-side mission evaluation and visualization. The repository also contains a 3D terrain-and-lander simulation and an independent ray-cast checker. Edges follow the README and shown source references; unsampled implementations and runtime wiring are not assumed.
Main entry points: LanderSimulation.js Lander simulation · main.js Simulation app · data_out Computed data · nasaTrekApi.js Moon Trek API
Components 27
Ephemeris pipeline
- SPICE angles
Member1/pipeline/spice_angles.py - Horizons client
Member1/pipeline/horizons_client.py - Angle generation
Member1/pipeline/make_angles.py - Angle combine
Member1/pipeline/combine.py - Kernel setup
Member1/pipeline/get_kernels.py
Terrain pipeline
- Horizon calculator
Member2/pipeline/horizon.py - Site selection
Member2/pipeline/site_from_illum.py - Terrain export
Member2/pipeline/export.py - Ray-check worker
Member2/src/raycastWorker.js - Ray-cast checker
Member2/src/raycast.js
Static data
- Computed data
data_out
Mission analysis
- Mission metrics
web/src/core/missionLogic.js - Mission math
web/src/core/math.js
Browser visualization
- Simulation app
Member4/src/main.js - Lander simulation
Member4/src/simulation/LanderSimulation.js - Terrain rendering
Member4/src/simulation/TerrainMesh.js - Celestial bodies
Member4/src/simulation/CelestialBodies.js - Horizon overlay
Member4/src/simulation/HorizonOverlay.js - Compass grid
Member4/src/simulation/CompassGrid.js - South-pole map
Member4/src/simulation/SouthPoleMap2D.js - Data loader
Member4/src/core/dataLoader.js - Fallback data
Member4/src/core/fakeData.js - Moon Trek API
Member4/src/core/nasaTrekApi.js - Simulation math
Member4/src/core/math.js
Other components
- Mission planner
- NASA Moon Trek
- JPL Horizons
Connections 31
- Mission planner → Simulation app: uses
README.md - Kernel setup → SPICE angles: supplies kernels
Member1/pipeline/spice_angles.py - Angle generation → SPICE angles: computes angles
Member1/pipeline/make_angles.py - Angle generation → Horizons client: cross-checks
Member1/pipeline/make_angles.py - Angle combine → Horizons client: uses client
Member1/pipeline/combine.py - Horizons client → JPL Horizons: queries
Member1/pipeline/horizons_client.py - Terrain export → Site selection: selects site
Member2/pipeline/export.py - Terrain export → Horizon calculator: computes profiles
Member2/pipeline/export.py - Site selection → Horizon calculator: uses sampler
Member2/pipeline/site_from_illum.py - Terrain export → Computed data: writes data
Member2/pipeline/export.py - Angle generation → Computed data: exports angles
README.md - Computed data → Mission metrics: provides inputs
web/src/core/missionLogic.js - Mission planner → Mission metrics: compares windows
README.md - Simulation app → Lander simulation: creates simulation
Member4/src/main.js - Simulation app → South-pole map: creates map
Member4/src/main.js - Simulation app → Moon Trek API: evaluates expedition
Member4/src/main.js - Lander simulation → Terrain rendering: renders terrain
Member4/src/simulation/LanderSimulation.js - Lander simulation → Celestial bodies: renders bodies
Member4/src/simulation/LanderSimulation.js - Lander simulation → Horizon overlay: uses overlay
Member4/src/simulation/LanderSimulation.js - Lander simulation → Compass grid: uses grid
Member4/src/simulation/LanderSimulation.js - Lander simulation → Data loader: loads data
Member4/src/simulation/LanderSimulation.js - Lander simulation → Fallback data: generates fallback
Member4/src/simulation/LanderSimulation.js - Lander simulation → Moon Trek API: fetches terrain
Member4/src/simulation/LanderSimulation.js - Lander simulation → Mission metrics: uses battery trace
Member4/src/simulation/LanderSimulation.js - Celestial bodies → Simulation math: uses vectors
Member4/src/simulation/CelestialBodies.js - Horizon overlay → Simulation math: uses vectors
Member4/src/simulation/HorizonOverlay.js - Compass grid → Simulation math: uses vectors
Member4/src/simulation/CompassGrid.js - South-pole map → Moon Trek API: uses terrain API
Member4/src/simulation/SouthPoleMap2D.js - Moon Trek API → NASA Moon Trek: fetches terrain
Member4/src/core/nasaTrekApi.js - Ray-check worker → Ray-cast checker: runs agreement
Member2/src/raycastWorker.js - Ray-check worker → Computed data: loads heightmaps
Member2/src/raycastWorker.js