Comment je l'ai construit
- Mon rôle
- Produit, design & développement
- Contexte
- Projet personnel
Le problème
[01]Les données publiques en direct sur la planète sont partout, mais dispersées : un suivi de vols, une carte des navires, un flux de séismes, un catalogue de satellites. Chacun a sa carte et son bouton d'actualisation, et aucun ne montre tout ce qui se passe sur Terre au même instant.
Ce que j'ai construit
[02]Pulse réunit tout sur un seul globe. Un petit serveur temps réel interroge ou écoute chaque source dans le respect de ses limites, garde l'état en mémoire et envoie des mises à jour compactes à chaque visiteur sur un seul WebSocket. Le navigateur dessine tout dans une scène WebGL, chaque couche en un seul appel, et les avions et navires avancent selon leur cap sur le GPU jusqu'à la mise à jour suivante. Désactivez une couche et ses données cessent d'arriver dans votre navigateur.
Choix clés
[03]Un seul WebSocket, typé dans les deux sens
Un protocole Zod partagé par le serveur et le navigateur : un instantané à la connexion, puis de petites mises à jour compressées, uniquement pour les couches activées.
30 000 objets, toujours fluide
Avions et navires sont dessinés en instances et déplacés le long de grands cercles par le GPU entre deux mises à jour : le globe reste fluide sans envoyer chaque position.
Dans le respect de chaque limite
OpenSky est interrogé toutes les 90 secondes pour tenir dans ses 4 000 crédits quotidiens, les données orbitales sont en cache six heures, et les derniers résultats survivent aux redémarrages : un redéploiement ne coûte rien.
Le résultat
- 30k+Avions et navires sur le globe en même temps
- 7Sources de données publiques en direct
- 1WebSocket pour tout

