Hi everyone!
We built GitHub Planet, a web application that transforms GitHub activity into a unique, growing 3D planet.
A user’s main programming language determines the planet’s color and visual style, while GitHub contributions affect its size, rotation speed, surrounding stars, achievements, and titles.
Different programming languages have their own visual identities. For example:
- CSS: a directional color flow across the surface
- C++: an animated plasma and lightning effect
- Go: atmospheric wind layers
- TypeScript: multiple defensive shell layers
- JavaScript: a reactive golden surface
- Rust: desert terrain and animated dust
TypeScript — Defensive Typed Shell

CSS — Directional Color Flow

Rust — Desert Dust World

The frontend is built with vanilla JavaScript and Three.js.
For the language-specific visuals, we use:
- Custom GLSL vertex and fragment shaders
MeshStandardMaterial.onBeforeCompile()for shader extensionsShaderMaterialfor atmospheres, shells, stars, and glow effects- Multiple transparent sphere layers with additive blending
BufferGeometryandTHREE.Pointsfor surrounding starsrequestAnimationFrameand time uniforms for continuous animation- Socket.IO for real-time shooting stars triggered by GitHub push webhooks
The animated showcase cards are automatically recorded from the live Three.js scene using Playwright and converted into GIFs with FFmpeg.
Live demo:
Source code:
I would especially appreciate feedback on:
- The visual distinction between programming-language planets
- Shader and material structure
- Rendering performance on mobile devices
- How to make the planets feel even more alive
Thank you for checking it out!