Hi! I’m building GitHub Planet, an open-source project that turns GitHub contribution and language data into a 3D planet.
The part I wanted to explore was making each language feel like a different material without creating separate renderers for the home page and share card. A feature registry maps the main language to a material and optional scene objects, update, and disposal hooks; both views use the same runtime. For TypeScript, the surface uses layered shell patterns driven by a time uniform. A shared language-composition layer ranks languages by byte count and draws colored trails whose width reflects their share.
Try the no-login TypeScript preview: GitHub Planet Card
Relevant code:
- Feature registry: githubplanet/front/js/planet-features/registry.js at main · nitr0yukkuri/githubplanet · GitHub
- Language trails: githubplanet/front/js/language-composition-trails.js at main · nitr0yukkuri/githubplanet · GitHub
- TypeScript material: githubplanet/front/js/typescript-planet-shell.js at main · nitr0yukkuri/githubplanet · GitHub
I’d appreciate feedback on whether the language-to-material mapping reads clearly, and how you would keep these effects smooth on mobile GPUs.