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.

Un globe photoréaliste de nuit montrant le terminateur jour/nuit et les lumières des villes, avec les villes à l’aube et au crépuscule listées à côté d’une ligne du temps.

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.

Imagerie NASA + l’applicationphotos jour et nuit de la Terrevotre navigateurtoute l’application tourne ici — aucun serveur derrièretéléchargé une fois · hors ligne ensuiteCurseur temporel±12 h · retour au DIRECTHorlogeune seule heure pourtoute l’applicationdécale l’heureMoteur solairetrouve l’endroit sur Terredirectement sous le soleilGlobele GPU ombre jour et nuitpour chaque pixel, chaque imagenet à tout zoomAube et crépuscule147 villes : qui est aulever ou coucher, à l’instantmême instant
Une seule horloge pilote tout : le même instant ombre le globe et choisit les villes à l’aube et au crépuscule, de sorte que les deux ne peuvent jamais se contredire. Après le premier chargement, rien ne traverse la frontière — la position du soleil est calculée, pas récupérée.

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

C’est ainsi que nous traitons même nos projets faits pour le plaisir

Le même soin est apporté aux systèmes clients — des projets à portée fixe ou des blocs prépayés d’heures d’ingénierie infonuagique, réseau et sécurité.