How hygia1122-susu/ares-cradle works
Ares Cradle is a Mars-outpost engineering simulator for young learners. Cadets manage power and life-support trade-offs during timed Sol scenarios, respond to environmental events, and receive a mission debrief. The React experience combines a 3D outpost with a mission-control HUD, driven by a shared simulation store and deterministic formulas. Classroom rooms and leaderboards, NASA weather with fallback data, and Django-backed stages and telemetry extend the core play loop. Backend view-to-model links are supported by the source index; some UI and backend routing details were not excerpted.
Main entry points: useOutpostStore.ts Outpost State · MissionControlOverlay.tsx Mission HUD · urls.py Django REST API · App.tsx React App
Components 23
Mission Experience
- React App
src/App.tsx - 3D Outpost
src/modules/outpost-3d/MarsCanvas.tsx - Rover Interaction
src/modules/outpost-3d/MarsRover.tsx - Astronaut Controls
src/modules/character/AstronautPlayer.tsx - Mission HUD
src/modules/mission-control/MissionControlOverlay.tsx - Stage Banner
src/modules/mission-control/StageBanner.tsx - Classroom Tools
src/modules/survival-ui/ClassroomModal.tsx - Survival UI
src/modules/survival-ui
Simulation Runtime
- Outpost State
src/modules/store/useOutpostStore.ts - Simulation Math
src/modules/simulation-engine/formulas.ts - Mars Weather
src/modules/story-engine/services/marsWeatherService.ts - Sound Engine
src/modules/audio/soundEngine.ts
Mission Services
- Mission Service Contract
src/services/api/IMissionService.ts - Mock Mission Service
src/services/api/MockMissionService.ts - Django Mission Adapter
src/services/api/DjangoMissionService.ts - Classroom API Client
src/services/api/apiClient.ts
Django Backend
- Django REST API
backend/backend/urls.py - Stage Endpoints
backend/apps/simulation/views.py - Stage Configurations
backend/apps/simulation/models.py - Telemetry Endpoints
backend/apps/telemetry/views.py - Telemetry Records
backend/apps/telemetry/models.py
Other components
- Cadet
- NASA InSight
Connections 29
- Cadet → React App: starts
- React App → 3D Outpost: renders
src/App.tsx - React App → Mission HUD: renders
src/App.tsx - 3D Outpost → Rover Interaction: renders
src/modules/outpost-3d/MarsCanvas.tsx - 3D Outpost → Astronaut Controls: renders
src/modules/outpost-3d/MarsCanvas.tsx - Mission HUD → Outpost State: reads state
src/modules/mission-control/MissionControlOverlay.tsx - Mission HUD → Stage Banner: renders
src/modules/mission-control/MissionControlOverlay.tsx - Mission HUD → Classroom Tools: renders
src/modules/mission-control/MissionControlOverlay.tsx - Mission HUD → Survival UI: renders
src/modules/mission-control/MissionControlOverlay.tsx - Rover Interaction → Outpost State: updates state
src/modules/outpost-3d/MarsRover.tsx - Rover Interaction → Sound Engine: plays effects
src/modules/outpost-3d/MarsRover.tsx - Astronaut Controls → Outpost State: updates state
src/modules/character/AstronautPlayer.tsx - Outpost State → Simulation Math: calculates outcomes
src/modules/store/useOutpostStore.ts - Outpost State → Mars Weather: fetches telemetry
src/modules/store/useOutpostStore.ts - Outpost State → Sound Engine: plays cues
src/modules/store/useOutpostStore.ts - Stage Banner → Outpost State: reads state
src/modules/mission-control/StageBanner.tsx - Classroom Tools → Classroom API Client: requests rooms
src/modules/survival-ui/ClassroomModal.tsx - Outpost State → Mission Service Contract: uses service
src/modules/store/useOutpostStore.ts - Mission Service Contract → Mock Mission Service: implemented by
src/services/api/index.ts - Mission Service Contract → Django Mission Adapter: implemented by
src/services/api/index.ts - Django Mission Adapter → Django REST API: calls REST API
src/services/api/DjangoMissionService.ts - Classroom API Client → Django REST API: calls REST API
src/services/api/apiClient.ts - Mars Weather → NASA InSight: fetches weather
src/modules/story-engine/services/marsWeatherService.ts - Django REST API → Stage Endpoints: routes requests
- Django REST API → Telemetry Endpoints: routes requests
- Stage Endpoints → Stage Configurations: reads stages
backend/apps/simulation/views.py - Stage Endpoints → Stage Configurations: serializes stages
backend/apps/simulation/views.py - Telemetry Endpoints → Telemetry Records: reads records
backend/apps/telemetry/views.py - Telemetry Endpoints → Telemetry Records: serializes records
backend/apps/telemetry/views.py