Skip to main content
  1. Selected work/

Thalassa θάλασσα

Thalassa (θάλασσα, “sea” in Greek) is a computer graphics project made in Three.js. The goal was to see how much detail and motion could be shown in a 3D underwater scene on a normal computer.


Overview
#

Thalassa is set in an underwater ruin. At the center there is an old temple, with coral, rocks, schools of fish, and a shark moving around it. The scene was designed to feel active instead of still, so most parts of it include motion, small effects, or things that react to the player. It is not just a model to look at, but a small underwater world to explore.

The scene mixes hand-made models with generated elements. Around the ruins there are more than 850 corals in three different styles, including one coral type built with an L-system and animated to sway with the water. Fish move in groups, the submarine has its own lights, and the water surface is animated to help the whole scene feel more real.

Visual atmosphere
#

A big part of the project was making the water feel believable. Small particles drift through the scene like “marine snow,” bubbles rise from the submarine and the tube corals, and fog makes faraway parts of the scene fade out softly. Moving light patterns on the ground and ruins help give the underwater setting more depth.

Interaction and simulation
#

The project is not only about how the scene looks, but also how it moves and reacts. Fish groups avoid dangers like the submarine and the shark, and collisions are handled in a way that lets movement slide along objects instead of stopping suddenly. Clicking on the ground creates a small sand puff, and clicking on corals, fish, or rocks changes their size so it is easier to see the level-of-detail system working.

The demo also gives you different ways to explore the scene. You can use the default camera, switch to a submarine periscope view with its own interface, try a first-person submarine mode with video, or move freely in fly mode with a blurred view. There is also a submarine shield that changes how collisions work.


This project was a way to test how far a browser-based 3D scene could go while still running well on regular hardware. It brought together graphics, generated content, animation, interaction, and performance work in one real-time scene.

You can explore the code and more details in the repository below.