Pour le plaisir
Planet
Une fenêtre vivante sur la Terre : le vrai terminateur jour/nuit, les lumières des villes qui s’allument du côté nuit, et les villes qui regardent le soleil se lever et se coucher en ce moment précis. Quand Osaka perd la lumière, San Francisco vient tout juste de l’attraper.

- 147villes classées face au soleil en direct
- 6°bande d’horizon qui compte comme aube ou crépuscule
- ±12 hdéfilement de la ligne du temps, puis retour au direct
- 0requêtes réseau après le premier chargement
L’idée
Née sur la route, d’une question de voyageur : ici le soleil se couche — où se lève-t-il ?
Planet est né en voyage. À force de vérifier les heures de lever et de coucher du soleil dans un fuseau horaire de plus, la question s’est retournée vers l’extérieur : peu importe ici — où sur Terre le soleil se lève-t-il en ce moment même ? Rien n’y répondait d’un coup d’œil, alors nous avons bâti ce coup d’œil.
Un globe photoréaliste rend le terminateur — la ligne mobile entre le jour et la nuit — exactement là où il se trouve en ce moment, avec l’imagerie nocturne de la NASA qui rougeoie du côté sombre. À côté, les villes qui rejoignent le soleil : qui reçoit la première lueur, qui la regarde s’en aller. Faites glisser la ligne du temps et le terminateur balaie jusqu’à douze heures de part et d’autre ; relâchez-la et la planète revient d’un coup au direct.
Comment ça fonctionne
Il n’y a pas de serveur dorsal. La position du soleil est calculée, pas récupérée.
De n’importe quel instant, on peut déduire l’endroit sur Terre où le soleil est au zénith — les astronomes l’appellent le point subsolaire — au moyen d’une formule d’astronomie compacte (une éphéméride solaire plus l’angle de rotation de la Terre). Aucune consultation, aucun service : ce sont des mathématiques pures. Une seule horloge possède la notion de « maintenant » de l’application ; le curseur temporel ne touche à rien d’autre, il ne fait que décaler cette horloge.
Ce seul instant alimente deux consommateurs. Sur le globe, la carte graphique compare chaque pixel à la direction du soleil, de sorte que la ligne jour/nuit reste d’une netteté parfaite à tout niveau de zoom et s’anime gratuitement — il n’y a pas d’images jour-nuit précalculées à fondre l’une dans l’autre. En parallèle, ce même instant est confronté à une liste intégrée de 147 villes : toute ville où le soleil se situe à moins de six degrés de l’horizon est à l’aube ou au crépuscule, classée par population — et quand la ligne traverse la haute mer, la ville la plus proche est affichée avec les minutes qui la séparent de l’événement.
Décisions à souligner
- Un nuanceur, pas des textures. L’ombrage jour/nuit est calculé par pixel à partir du vecteur solaire plutôt qu’en fondant des images précalculées — le terminateur reste net à tout niveau de zoom, et l’animer ne coûte rien.
- Validé, pas estimé à l’œil. Les calculs solaires font l’objet de tests unitaires qui les comparent à une implémentation de référence indépendante (suncalc3, une dépendance de développement seulement) — l’approximation est vérifiée, pas présumée.
- Hors ligne par conception. L’application s’installe comme une PWA avec les textures et la coquille préchargées ; après la première visite, elle fonctionne réseau coupé.
- Rien à exploiter. React et three.js sont livrés comme des ressources statiques depuis un Cloudflare Worker — aucun code serveur, aucune API à surveiller, rien qui oblige à se lever la nuit.
Réalisé avec
- Three.js
- React
- TypeScript
- PWA