/the garage — 07 / 07

Personal project in progress

BifrostControl Deck

An intelligence platform for strategic conflict simulation: live aircraft, live economies and a missile simulator, converging on one interactive 3D globe.

Bifrost backend — data feeds

  • OpenSkyconnected

    11,000+ live aircraft, rendered on the globe in real time

  • FREDconnected

    Economic indicators per country — GDP, inflation, unemployment, rates

  • Missilesconnected

    Simulator loadout — 118 publicly documented systems

  • AISStreamplanned

    Maritime traffic — backend WebSocket relay ready, globe layer in progress

Bifrost — Control Deck
BIFROST Control Deck — missile loadout, aircraft telemetry and economic data over the 3D globe
00 — Full session: loadout armed, aircraft tracked, Russia's economy on screen

/development

Personal project in progress focused on economic warfare, physical conflict, and realistic 3D simulation. It features an interactive dashboard for managing entities across the world with live operational context.

/stack

  • Next.js
  • Globe.gl
  • Three.js
  • FastAPI
  • SQLAlchemy
  • MySQL
  • OpenSky
  • FRED
  • AISStream

/ux design

Designing the operational dashboard of the platform: information hierarchy for dense live data, interaction patterns for navigating entities on a 3D globe, and a dark interface language built for a high-focus, control-room feel.

/tools & methods

  • Information architecture
  • Data visualization
  • Interaction design
  • Dark UI

/architecture

Three tiers, one bridge: the Control Deck never touches an API key or an external provider directly — everything crosses the FastAPI backend, Bifrost's namesake.

Tier 01

Control Deck

Next.js frontend

A globe.gl scene with three.js sprites: aircraft rendered as SVG plane icons through a texture cache, colored by ADS-B category. Country polygons come from TopoJSON, a cloud mesh animates on demand, and shadcn/radix panels handle telemetry, economy snapshots and the missile loadout.

  • globe.gl
  • three.js
  • TopoJSON
  • shadcn/ui
  • Tailwind 4

Tier 02

Bifrost Backend

FastAPI bridge

Every feed crosses this bridge — the browser never sees an API key. Routes delegate to per-provider services over a shared httpx client: OAuth-authenticated OpenSky calls, FRED queries composed into per-country economy snapshots, and a WebSocket relay that injects the AISStream key and forwards position reports downstream.

  • GET /api/opensky/states/all
  • GET /api/economy/country?name=Russia
  • GET /api/missiles
  • WS /api/aisstream/stream

Tier 03

Data Sources

Live feeds & storage

OpenSky Network for live aircraft states, flights and tracks; FRED for economic series; AISStream for maritime traffic; and a MySQL catalog of publicly documented missile systems, queried through SQLAlchemy.

  • OpenSky REST
  • FRED REST
  • AISStream WS
  • MySQL + SQLAlchemy

/the control deck

BIFROST Control Deck — Live traffic — 11,144 aircraft streamed from OpenSky onto the night globe
01 Live traffic — 11,144 aircraft streamed from OpenSky onto the night globe
BIFROST Control Deck — Category filters — traffic over Europe, colored by ADS-B class
02 Category filters — traffic over Europe, colored by ADS-B class
BIFROST Control Deck — Aircraft telemetry — callsign, route, altitude and live position per contact
03 Aircraft telemetry — callsign, route, altitude and live position per contact
BIFROST Control Deck — Economic warfare — country selection with live FRED indicators
04 Economic warfare — country selection with live FRED indicators
BIFROST Control Deck — Simulator workspace — cloud layer on, missile loadout armed
05 Simulator workspace — cloud layer on, missile loadout armed