Graphics Town
A tropical coast that turns into a fantasy village and then a rain-soaked mountain range, rendered live in the browser. Every object in it is either assembled from primitives or generated procedurally, animated in JavaScript and GLSL, and the camera can ride the boat, the swimmer or the flock of geese. Open the demo; a laptop GPU is enough.
It began as the final project for CS559 Computer Graphics at UW–Madison in spring 2025, on the course's thin Three.js framework, and grew over the semester: the amusement rides came from an earlier workbook, the village buildings from the next, then the sea, the beach, the weather and the shaders for the final town. The skybox and the environment lighting came later, after the course had ended.
Apart from the campfire and the sky, nothing here is a downloaded asset. The textures are painted by hand, the trees, mushrooms, mountains and dunes are procedural, and the figures are hierarchies of primitives with their own joints.
By the numbers
GrObjectWhat's in it
The math in it
Nothing is keyframed. Every shape and every motion comes out of a formula that runs on load or every frame. The pieces doing the work, each linked to the line where it happens:
Controls
- Orbit: drag to rotate, scroll to zoom, right-drag to pan
- Fly: W A S D, R/F for height, drag to look
- Drive or Follow the boat, the swimmer or the geese
- LookAt jumps to any of the 328 objects
- Speed scales every animation; Run pauses it
- Solo isolates one object against a blank scene