← All work
04Community · 2026

Kaelith.

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

13 orbiting planetsShader-driven reentryFully synthesized sound
GitHub ↗
The ship approaching Kaelith, with a moon in the foreground and the flight HUD on top

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

  1. 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.

  2. 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.

  3. 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

The ship in open space facing a planet, on the click-to-fly screen
A planet and its moon seen from the ship
Flying low over a world with a lake, trees and a volcano on the horizon
Flying over a desert world under an orange haze
Flying over the sea of an island world, with a smoking volcano
Next case

APM SaaS