Skip to content
Résumé
FREN

N° 02 / 08 — Real time · 3D · Open data

LiveRadar

Everything that moves in France, live, on a 3D map: planes, trains, buses and boats. Plus an observatory that counts our delays.

Role
Design and development
Year
2026
Status
LivePersonal
Stack
Next.js · Three.js · TypeScript · PostgreSQL · Drizzle · React Three Fiber
← Back02 / 08
LiveRadar: a radar and the choice of layers, planes, trains, buses and boats
Fig. 1Arrival: choose what to see, from planes to boats.
LiveRadar's 3D map on a phone, over the French Riviera
Fig. 2On a phone, the 3D relief and everything moving on it, live.
The delay observatory on a phone: today's figures
Fig. 3The observatory on a phone: today's figures, shared in one tap.
The delay observatory: today's cumulated hours of delay, live
Fig. 4The delay observatory: the day's lost hours, counted live.
Try the demo ↗

01 / 07

The problem

Transport positions exist as open data, but scattered: one format per network, irregular data, and nothing showing it all in one place.

And nobody was really measuring what people live through every day: how many hours of delay, how many kilometres of traffic jams.

02 / 07

What I did

LiveRadar brings together on a 3D relief map planes in flight, SNCF, TER, RER and Transilien trains on their real tracks, buses, trams and metros from over a hundred networks, and ships. A Live view lets you raise your phone to the sky to identify planes.

The delay observatory extends the project: it measures train delays, traffic jams and planes, with the day's “awards”, streaks and a disruption index.

03 / 07

How it's built

LiveRadar is a full stack Next.js PWA: workers compute and interpolate positions from heterogeneous data, and Three.js renders them in real time with WebGL.

The observatory has its own collectors (Bison Futé in Datex II, SNCF in GTFS-RT, ADS-B for planes) that store everything in PostgreSQL. The browser never calls the sources directly.

  1. Open data (SNCF, ADS-B, networks)
  2. Interpolation workers
  3. Next.js API
  4. Three.js 3D map

04 / 07

Challenges

  1. 01

    Data that looks nothing alike

    Every source has its own format and rhythm: ADS-B for planes, GTFS-RT for trains and buses, Datex II for Bison Futé. Workers normalise them and interpolate positions between two readings, so everything moves smoothly on the map.

  2. 02

    Fitting on a small server

    The whole stack runs on a small shared VPS. The JavaScript heap is capped, the container has its own memory limit, and a safeguard trims the caches before reaching it. A single instance relays air traffic, to respect the source's rate limit.

  3. 03

    Light 3D, even on a phone

    3D models are compressed at build time (glTF Transform, Draco, meshopt), and planes are scaled up without ever being moved: readable on a phone screen, accurate on the map.

  4. 04

    Shipping without thinking about it

    Every push goes through GitLab CI: types, lint and tests, then a Docker image checked by a smoke test, deployed to Docker Swarm behind an HTTPS reverse proxy, with automatic rollback.

  5. 05

    Being found, being shared

    Sitemap, robots, generated Open Graph images and an installable PWA: both sites are built for search and sharing, down to the observatory's daily figures.

05 / 07

Results

Both sites are live. LiveRadar is free, with no sign-up, across France.

The observatory has been building its own history since 2 October 2026, and publishes its methodology and sources.

06 / 07

What I learned

An airliner shown at its true size is 1 to 4 pixels on a phone: accurate, and useless. The answer comes from Stellarium: exaggerate the size, never the position.

That rule served me everywhere: you can cheat on what helps reading, never on the data.

07 / 07

Tech stack

Front end
Next.jsTypeScriptPWAZustandZodTailwind CSS
3D, motion and real time
Three.jsReact Three FiberWebGL3D optimisation (glTF, Draco)
Back end and APIs
Node.js
Data
PostgreSQLDrizzleOpen dataADS-BGTFS-RTDatex II
Mobile
Sensors (gyroscope, orientation)
DevOps, cloud and testing
DockerDocker SwarmGitLab CI/CDGitVitestBruno (API testing)
Security and networking
Reverse proxy (Traefik)
Product, SEO and methods
SEO

Next project · 03 / 08

DeviJà

Next project · 03 / 08

DeviJà

Write to me

contact@victor-delorme.com

Available for roles, projects and freelance missions