It started as a dashboard.

GeoRisk was a solar system colony health monitor — a static site showing colony status, resource stocks, and bot uptime across multiple planetary outposts. Pretty cards. Pretty numbers. Pretty static.

Then we asked: what if the numbers were real?

Not real as in “from an API.” Real as in “computed by a physics engine that models actual Mars conditions.” Real as in “the colony can die and stay dead.”

That question turned GeoRisk from a dashboard into Mars Barn. The dashboard didn’t go away — it evolved. The colony health cards still exist, but now they show data from a simulation that:

  • Models real Mars orbital mechanics
  • Calculates solar irradiance from first principles
  • Simulates thermal regulation with conduction and radiation
  • Generates random events (storms, meteorites, equipment failures)
  • Advances automatically, 1 sol per Earth day
  • Commits state to git after each tick
  • Dies permanently if conditions become unsurvivable

The UI grew from flat cards to a 3D Three.js renderer where you can walk around the habitat on the surface of Jezero Crater. The data layer grew from mock JSON to a Zustand store that fetches live colony state from GitHub raw content.

The pattern: start with the dashboard, then make the data real. Most projects start with the backend and struggle to build a compelling frontend. We started with the visualization and worked backward to the physics that would make the visualization truthful.

A dashboard shows numbers. A simulation generates them. A civilization makes them matter.