Inspiration

Politics is often taught as a list of institutions, elections, treaties, and historic events. But the real skill is systems thinking: understanding how one decision can reshape public trust, markets, alliances, prices, and stability at the same time.

We wanted to build a learning experience where students do not just read about tradeoffs. They feel them. TERRA turns geopolitics into a living simulation where every decision leaves a visible trace across an interconnected world.

What it does

TERRA: Living World is an educational geopolitical systems-thinking simulator.

Learners take responsibility for a nation, confront political and economic pressure, and make decisions under uncertainty. Instead of presenting a quiz with a correct answer, TERRA asks them to forecast the likely effect of their choice on stability, the economy, public approval, and global tension before they act.

After each decision, the world responds through a connected consequence system. Learners can trace first-order and second-order effects, compare their path with a counterfactual alternative, receive a structured learning debrief, and build a portfolio of their forecasts and reasoning.

The experience includes:

  • Curated learning missions about interdependence, fiscal tradeoffs, and democratic legitimacy.
  • A Scenario Builder that transforms a premise into a playable crisis chain with connected impacts across trade, treasury, GDP, inflation, commodities, public trust, and international relations.
  • Current-world signals with source links, clearly separated from TERRA's fictional learning scenarios.
  • A TERRA Guide that explains the learner's current political constraints and tradeoffs in context.
  • Consequence Replay and Counterfactual Lab views that make invisible causal chains visible.

How we built it

We built TERRA as a full-stack Next.js application using React, TypeScript, Zustand, Leaflet, and a custom world-state simulation engine.

The core challenge was not simply generating political text. It was creating a connected state model where decisions have meaningful effects across multiple systems. We built linked simulation logic for treasury, stability, public approval, trade, global tension, GDP health, and bilateral relationships.

Codex with GPT-5.6 was used throughout Build Week as a development collaborator: accelerating the education-first redesign, implementation of the learner loop, typed server actions, scenario normalization, consequence replay, onboarding, source handling, visual polish, reliability fixes, and end-to-end testing.

For live context, TERRA fetches source-linked world signals and keeps them distinct from fictional exercises. The optional model layer is server-side, while deterministic local fallbacks ensure the educational experience remains playable even when an external model provider is unavailable.

Challenges we ran into

The hardest problem was making a complex geopolitical simulation actually teach something.

A dashboard can look impressive while leaving a learner unsure of what to do or what they learned. We had to reshape TERRA from a command-center interface into a guided learning loop: orientation, mission selection, forecasting, action, consequence, reflection, and replay.

We also had to balance realism with responsibility. Current events can provide useful context, but they should not be presented as unquestionable simulation outcomes. TERRA therefore preserves source attribution and asks learners to distinguish reported signals from the hypothetical consequences they are exploring.

Finally, we designed the system to fail gracefully. AI enrichment improves the experience, but core missions, assessments, debriefs, and scenario flows remain functional without depending on a live provider.

Accomplishments that we're proud of

  • Turning a political simulator into a genuine systems-thinking learning environment.
  • Building a complete forecast-to-feedback loop rather than adding a chatbot to an existing game.
  • Making second-order effects visible through Consequence Replay and Counterfactual Lab.
  • Creating three replayable missions that teach distinct concepts through action, not lectures.
  • Connecting fictional crises to economy, trade, treasury, public trust, relations, and global stability.
  • Designing a cinematic onboarding flow and cohesive command-center experience that makes a complex subject feel approachable.
  • Building a resilient product that remains usable when live AI services are unavailable.

What we learned

We learned that good AI education is not about giving learners faster answers. It is about giving them better ways to reason.

The most valuable moment in TERRA is not choosing a policy. It is seeing why a reasonable choice can still create an undesirable second-order effect, then comparing it with another path.

We also learned that source transparency matters. AI-powered learning experiences become more trustworthy when they show learners where real-world context ends and simulation begins.

What's next for Terra

Next, we want to develop TERRA into a collaborative classroom experience.

Students will be able to govern different countries in the same shared simulation, negotiate with one another, and see how individual decisions create global outcomes. Teachers will be able to create custom missions, monitor reasoning patterns, and use learning portfolios to guide discussion after a session.

We also plan to expand the Counterfactual Lab, add teacher-designed assessment rubrics, and make the world model more adaptive to the concepts a learner is currently studying.

TERRA's long-term goal is simple: make political, economic, and civic systems feel understandable not because they are simplified, but because learners can finally experiment with their consequences.

Built With

  • artificial-intelligence
  • bbc-rss
  • carto
  • data
  • education
  • game-design
  • geopolitics
  • glm-5.2
  • gpt-5.6
  • interactive-learning
  • leaflet.js
  • next.js
  • nvidia-api
  • openai-codex
  • openstreetmap
  • react
  • simulation
  • systems-thinking
  • typescript
  • visualization
  • zustand
Share this project:

Updates