Kaelith.
A whole solar system in the browser, with landings on eight worlds and not a single audio file.

The problem
The project is a solar system that runs entirely in the browser, with no backend and no audio files. The ship has to leave space and land on a planet’s surface, and each of the 8 worlds has its own terrain, sky, plants and animals.
What I built
I built the scene with Three.js, TypeScript and GLSL. Space has 13 orbiting planets, 3 moons, rings, a belt of 2,500 asteroids, comets and a black hole. Flying the ship, you can land on 8 worlds, each with its own terrain, sky, plants and animals, and the animals flee, hunt and attack. Landing runs through a shader transition, and every sound is synthesized in the browser. The code is open on GitHub.
Technical decisions
01Reentry written as a shader
Landing on any of the 8 worlds runs through a transition written as a shader, combining four effects: zoom, heat, a flash and radial blur.
02Sound without audio files
All sound is generated in the browser, on the fly. There is no audio file to download, and the project still has no backend.
03Wildlife as data
Every creature is an entry in a list with a role (grazing, flocking, swimming, hunting on the ground or from the air), a habitat and its prey. The code turns each entry into a herd, a flock or a predator. Adding an animal means adding a line.
Where it lives in the code: src/roster.ts
Numbers
13
orbiting planets
8
worlds to land on
2,500
asteroids in the belt
Stack
- Three.js
- TypeScript
- GLSL
- Vite
Screens





APM SaaS