main
Each stop's group faced world +Z regardless of the road's local tangent, so IDENTITÉS and GREETINGS showed mirrored text and the GREETINGS plane read as crossing the road. Compute yaw once per stop via atan2 from the anchor to pointAt(stop.t) so the panel's +Z always points at the road it belongs to. Lamp yaw is world-space absolute, so subtract the group's new rotation to keep its facing unchanged.
clement.saillant.cc — LE BUS
Demoscene-style personal identity hub: a bus driving across a giant PCB. Spec: docs/superpowers/specs/2026-07-09-clement-saillant-cc-design.md
npm run dev— dev servernpm test— unit tests (vitest)npm run e2e— smoke tests (playwright)npm run build— static build in dist/
Description
Languages
TypeScript
91.9%
CSS
5%
HTML
2.3%
Dockerfile
0.8%