How ashtynguela/amaze-x works
AMAZE-X is a browser-based lunar landing-site analysis and planning app, with a separate Rocky assistant/overlay. The primary workflow is to choose a lunar site and landing date, load Sun/Earth and terrain data, inspect current and mission-long conditions, then screen landing windows or compare scenarios. The graph includes the documented Solar System and Earth–Moon views, terrain, exports, and assistant capabilities. Some UI and server internals were not sampled; edges are limited to shown imports/calls or README-documented behavior.
Main entry points: App.tsx App shell · World.tsx Lunar views · store.ts Session state · SolarSystem.tsx Solar System view
Components 26
App experience
- App shell
src/App.tsx - Session state
src/store.ts - Lunar views
src/World.tsx - Globe and terrain
src/LunarGlobe.tsx - Solar System view
src/SolarSystem.tsx
Lunar analysis
- Sky conditions
engine/index.mjs - Lunar map data
engine/lunar-map.mjs - Lunar scene model
engine/lunar-scene.mjs - Terrain service
server/terrain.mjs
Mission planning
- Landing planner
src/LandingPlanner.tsx - Mission timing
engine/mission-history.mjs - Landing windows
engine/landing-search.mjs - Scenario comparison
engine/comparison.mjs - Analysis reports
engine/report.mjs - Nearby sites
src/NearbySites.tsx
Solar and orientation
- Horizons client
server/horizons.mjs - Solar packets
server/solar.mjs - Solar positions
engine/solar.mjs - Planet orientation
engine/planetOrientation.mjs - Lunar celestial state
engine/celestial-context.mjs
Data and assistant services
- Rocky assistant UI
src/Rocky.tsx - Assistant service
server/assistant.mjs - App action tools
server/app-tools.mjs - HTTP API
server/index.mjs
Other components
- App user
- NASA/JPL data
Connections 34
- App user → App shell: uses
README.md - App shell → Session state: updates
src/App.tsx - App shell → Lunar views: renders
src/App.tsx - App shell → Landing planner: renders
src/App.tsx - App shell → Nearby sites: renders
src/App.tsx - App shell → Analysis reports: exports
src/App.tsx - App shell → Solar System view: shows
README.md - Lunar views → Sky conditions: evaluates
src/World.tsx - Lunar views → Lunar scene model: uses
src/World.tsx - Lunar views → Lunar map data: loads
- Lunar views → Lunar celestial state: requests state
- Globe and terrain → Session state: reads
src/LunarGlobe.tsx - Solar System view → Solar positions: positions bodies
src/SolarSystem.tsx - Solar System view → Planet orientation: orients bodies
src/SolarSystem.tsx - Solar System view → Lunar celestial state: uses
src/SolarSystem.tsx - Lunar celestial state → Solar positions: calculates from
engine/celestial-context.mjs - Lunar celestial state → Planet orientation: orients Moon
engine/celestial-context.mjs - Landing planner → Mission timing: uses timing
src/LandingPlanner.tsx - Landing planner → Landing windows: screens arrivals
src/LandingPlanner.tsx - Landing planner → Session state: reads
src/LandingPlanner.tsx - Nearby sites → Session state: reads
src/NearbySites.tsx - HTTP API → Solar packets: routes requests
server/index.mjs - HTTP API → Terrain service: routes requests
server/index.mjs - HTTP API → Assistant service: routes requests
server/index.mjs - Solar packets → Horizons client: fetches vectors
server/solar.mjs - Solar packets → Solar positions: uses
server/solar.mjs - Assistant service → App action tools: runs actions
server/assistant.mjs - Assistant service → Sky conditions: calculates conditions
server/assistant.mjs - App action tools → Mission timing: searches arrivals
server/app-tools.mjs - App action tools → Scenario comparison: compares sites
server/app-tools.mjs - Rocky assistant UI → App shell: requests actions
src/Rocky.tsx - Session state → HTTP API: fetches API data
- Horizons client → NASA/JPL data: requests ephemerides
- Terrain service → NASA/JPL data: reads terrain