A Vite + React + TypeScript web app that renders a Cesium 3D Earth with a continuously orbiting satellite and a deterministic mission control simulation panel. All telemetry is derived from formulas and toggles (no randomness).
npm install
npm run dev
Open the URL printed by Vite (usually http://localhost:5173).
The sim runs at 10 Hz. Orbit time is accelerated to a 120-second loop for visibility.
orbitPhaseadvances from 0..1 based on sim time.sunlightis derived from orbit phase unless forced by toggles.contactWindowis derived from proximity to the Ground Station unless forced by toggles.- Toggles: Sunrise, Eclipse, Thermal Warn, Thermal Halt, Cool Down, Blackout, Link Up, Solar Flare.
- Sunlight status:
SUNLIGHTorECLIPSE. - Lux (0..1000): based on sunlight and Solar Flare; forced to 0 by Eclipse or Blackout.
- Thermal status:
OK,WARN, orHALTfrom CPU temp and thermal toggles. - CPU Temp (°C): evolves each tick by a thermal equation.
- Network:
UPwhen in contact window (unless Blackout),DOWNotherwise. - Contact Window:
CONTACTorNO CONTACTbased on proximity. - Job:
OKorFAILEDbased on thermal limits. - Outbox: pending data count that increases with compute and drains when network is
UP. - Last Action: rule-based agent action for the current tick.
Each tick:
cpuTemp += (heat_in - cooling_out) * deltaSeconds
Where:
heat_in = baseHeat + workloadHeat (+ solarFlareHeat)workloadHeatincreases when jobs run (higher in sunlight).cooling_outincreases when Cool Down is toggled or the agent chooses a cooldown action.- CPU temp is clamped to 20..95°C.
Every tick, the agent decides:
- If
cpuTemp > 88or Thermal Halt is toggled:thermal halt - Else if
cpuTemp > 80or Thermal Warn is toggled:cooldown - Else if
contactWindowand outbox > 0 and networkUP:downlink - Else if
sunlightand thermalOKand networkUP:run job - Else:
noop
Each action writes an event log entry with a timestamp.
- Sunrise: Forces sunlight
true(overrides orbit-derived darkness unless Eclipse is also on). - Eclipse: Forces sunlight
falseand Lux to 0. - Thermal Warn: Forces thermal status
WARNand biases the agent to choosecooldown. - Thermal Halt: Forces thermal status
HALTand immediately fails any running job. - Cool Down: Increases cooling output, helping CPU temperature recover.
- Blackout: Forces contact window
false, networkDOWN, and Lux to 0. - Link Up: Forces contact window
true, networkUP. - Solar Flare: Increases heat input and Lux.
Precedence rules:
EclipseoverridesSunrisefor sunlight and Lux.BlackoutoverridesLink Upfor contact window and network.
- Earth imagery is provided by OpenStreetMap tiles (no Cesium Ion token required).
- The Sun lighting model is enabled to create day/night shading.
- The satellite follows a circular LEO path (inclination 55°) with a visible orbit track.
- A Ground Station marker is placed near 34.7°N, 120.6°W.