About Oceatics

What Oceatics is

Oceatics is a free virtual saltwater reef aquarium that runs in a web browser. It is a live simulation rather than a video: 128 fish across seven species swim, school, startle and feed according to behavior rules that run 30 times a second, over a reef of procedurally generated rock, coral and sand.

Nothing in the app is a downloaded asset. There are no 3D model files, no textures and no audio samples. Fish bodies are lofted from splines at load time, skins are painted into canvases in the browser, the rock and sand are noise fields, and the entire soundscape is synthesized with the Web Audio API. That is why the main application bundle is only about 400 KB compressed and the whole thing works with the network switched off.

Who makes it

Oceatics is written and maintained by Jason August under the name Advancing Development, an independent one-person software practice focused on small, self-contained web applications. The simulation, the procedural geometry, the shaders, the interaction design and the audio engine are all his work.

There is no company behind this beyond that, no investors and no advertising partners. The only money involved is optional: if the tank earns a place on your screen you can tip the aquarist at ko-fi.com/advancing.

Why it is built this way

The design constraint from the start was that the aquarium should be a physical object in a room, not an underwater camera. So the viewer stands outside a glass box on a cabinet stand, the camera orbits only the three viewing sides, and the details that sell an aquarium get the attention: bubbles that rise inside the lift tubes where an undergravel filter actually puts them, sand banked up against the panes, algae film on the back glass that snails have to physically remove.

Several of those details exist because the first attempt looked wrong. Bubbles free in the water column read as fake. Continuous noise layers in the soundscape stopped sounding like water and started sounding like a loop after a few minutes. Algae that was deleted once it was mostly eaten produced patches vanishing under a snail's nose, so the rule became that a patch survives until its cells are genuinely gone. The startle response originally pushed only fish near the tapped pane, which let a deeper fish sit calmly while its neighbor bolted, so it was rebuilt to push along the whole sight line of the tap.

The tank in numbers

Measured properties of the Oceatics simulation
Fish128 individuals across 7 species
Largest school90 blue-green chromis, steered by a spatial-hash flocking model
Fish detailroughly 7,600 to 11,000 triangles per fish, generated at load
Anemone110 individually swaying tentacles
Behavior ratefixed 30 ticks per second, independent of frame rate
Frame rate target60 fps, with automatic quality reduction below 45 fps
Pump sound50 Hz hum with a 7 Hz diaphragm vibration
Idle fade4 seconds to full display mode
Download sizeabout 400 KB compressed for the main bundle, then fully offline
Automated tests28 browser-free tests over the simulation layer

Those tests are the reason the tank can be left running unattended. They assert, among other things, that a wandering fish stays inside the tank and outside the rocks across 10,000 consecutive steps, that clownfish stay tethered to their anemone, that bottom feeders chase grounded food while mid-water fish ignore it, and that the sand height field is smooth enough for a snail to crawl over without popping.

What it does not simulate

Being honest about the edges: Oceatics is a stylized mixed reef, not a husbandry simulator. It does not model water chemistry, temperature, nitrogen cycling, disease, breeding, growth, or aggression between tank mates. Fish do not die and cannot be added or removed. The species facts on the info cards are true, and the stocking list is a plausible community, but nothing here should be used to plan a real tank. For that, talk to a local reef club or a marine livestock retailer.

Technology and credits

Questions, bug reports and species requests are welcome through the contact page. Data handling is covered in the privacy policy.