A calm, scientifically grounded 3D explorer of the living Earth — the same product in the browser and in VR — layering real climate, ocean and live-traffic data over an astronomically correct globe, with a deep-time mode that winds the continents back to Pangaea.
The challenge
Build an Earth explorer that feels like a calm planetary observatory — not an overloaded GIS dashboard — and make the same product work both in the browser and in VR on a Meta Quest. It has to be astronomically correct, layer genuinely scientific data (climate, ocean, live ships/aircraft/satellites), and stay legible while doing it. Guiding rule: Earth first — the globe is always the main object, panels are tools, never the centre.
The approach
- Astronomically correct core (three.js). Sun–Earth–Moon with real ephemerides — 23.44° axial tilt, eccentric orbit, sidereal rotation, a Meeus lunar model — and NASA Blue Marble monthly textures so the surface changes with the seasons (snow in winter, vegetation in summer), with topography and ocean bathymetry.
- A living surface. Day/night terminator with a dusk band and city lights, animated ocean waves and sun-glitter, and an exaggerated tidal envelope with two bulges that track the Moon and Sun (spring/neap tides from the elongation).
- Real weather & circulation. A GPU particle wind field of the global circulation (trade winds, westerlies, migrating ITCZ, reversing monsoon) on a wind-speed colour scale; classic blue-water sailing routes that light up only in their favourable season. Live winds from Open-Meteo with pressure markers and meteorological wind barbs.
- Live layers, all on one time slider. Real ships (AIS via aisstream.io), aircraft (ADS-B via OpenSky), satellites & the ISS (TLE/SGP4 via CelesTrak) — thousands of stylised, instanced markers with detail only on focus.
- "Satellite zoom." On zoom, the view streams Sentinel-2 cloudless tiles (to ~40 m/px) blended with the day/night lighting — far beyond 8k near-view at minimal memory, and it holds up in VR.
- VR done right (WebXR, Quest 3). No wrist-locked menus: a deliberately summonable, grabbable, pinnable floating panel system with both hand and controller interaction — a quiet observatory, not a cockpit.
- Explorer Mode. A separate workspace over the same layers: free-axis globe rotation, full-text search (countries, mountains, rivers, tectonic plates) and a GPlates-driven plate-tectonics timeline that reconstructs the Earth from Pangaea to today, with paleo points of interest.
- Shipped as a product. Installable PWA (manifest + service worker) on the path to the Meta Horizon store.
The result
- One coherent product across browser and VR, with five areas — Time, Earth, Ocean, Traffic, Climate — and a strict "one focus layer at a time" rule that keeps it readable.
- Genuinely live scientific data (NASA, NOAA/NSIDC, CelesTrak, Open-Meteo, OpenSky, AIS) folded into a single calm interface.
- The same information architecture in both modes; performant enough to render thousands of live entities via instanced markers.
- Localised into 10 languages (including right-to-left Arabic), on the path to the paid Meta Horizon store.
What this demonstrates
- Real depth across 3D graphics (custom shaders), real-time data integration (many live APIs) and WebXR/VR — end to end.
- Turning a huge feature space into a calm, legible product through disciplined information architecture.
- Full ownership: concept, design, engineering, performance, deployment.
- Modern, AI-assisted delivery that turns an ambitious brief into working software quickly — human-steered and curated.
Tech at a glance
three.js · WebXR (Meta Quest 3) · WebGL / GLSL · PWA · satellite.js (SGP4) · NASA Blue Marble / GIBS · GPlates · Open-Meteo · OpenSky (ADS-B) · AIS · Sentinel-2 cloudless (EOX)



