Ocean Solaris

An interactive meditation on consciousness and the unknowable

Role
Designer & Developer
Platform
Web (Desktop & Mobile)
Tech Stack
Three.js, WebGL, GLSL

Overview

Ocean Solaris is a WebGL simulation of the sentient, planet-sized ocean from Stanisław Lem's philosophical science fiction novel. In the story, despite decades of research, scientists cannot communicate with or understand this vast alien intelligence that spontaneously generates elaborate formations and materializes visitors from researchers' deepest memories.

This project brings that mysterious entity to life through dynamic morphing, emergent structures, and hypnotic visual patterns. The ocean continuously evolves, responds to observation, and actively counteracts gravitational chaos from its dual-sun system—capturing the unknowable nature of truly alien consciousness.

The Challenge

How do you simulate something fundamentally unknowable? The goal was to create a living system that feels genuinely alien—not just beautiful or complex, but operating on logic that resists human comprehension. The ocean needed to be simultaneously reactive and autonomous, appearing to notice observation while maintaining its own inscrutable agenda.

The technical challenge was building a performant WebGL simulation that could run smoothly across devices—from high-end desktop GPUs to mobile browsers—while maintaining the sense of scale and mystery essential to Lem's vision.

Core Features

Living Ocean Surface

The ocean uses custom vertex shaders with multi-layered wave displacement at multiple frequencies (3.0, 5.0, 7.0 Hz), combined with Fractal Brownian Motion. The surface never repeats the same pattern twice.

Emergent Formations

Five types of structures emerge spontaneously: Symmetriads with perfect radial geometry, towering Asymmetriads, undulating Mimoids, skeletal Vertebrids, and sprawling Extensors. Each has a complete lifecycle—emergence, maturation, dissolution—spawned through weighted probability systems that reflect the novel's descriptions.

Observation Response

Raycasting detects where the camera intersects the surface. The ocean responds with localized rippling patterns and increased bioluminescence that fade over time. Sometimes it reaches toward the observation point. Sometimes it recoils. The behavior changes unpredictably every 15-30 seconds.

Gravitational Engineering

Shimmer patterns across the surface show the ocean redistributing its mass to stabilize an orbit around two suns. The patterns pulse when both suns align, creating visible interference. This represents the ocean counteracting 95% of what should be gravitational chaos.

Plasma Eruptions & Atmosphere

Energy fountains erupt across the surface, rendered with hash-based noise and turbulent flow. The atmosphere includes exponential fog that responds to sun position, shader-based mist with Simplex noise distortion, and a three-layer starfield with stellar classification. Bioluminescence pulses beneath the surface.

Three.js r128 WebGL / GLSL Custom Shaders Fractal Brownian Motion Procedural Noise Raycasting

Technical Deep Dive

Shader-Based Ocean Rendering

The ocean surface uses multi-frequency sinusoidal displacement (3.0, 5.0, 7.0 Hz) combined with Fractal Brownian Motion to create organic motion. Viscosity varies across the surface using procedural noise, affecting transparency, reflectivity, and wave behavior. Fragment shaders implement subsurface scattering with depth-based light penetration and exponential attenuation, while Fresnel effects create the characteristic edge glow that intensifies in more liquid regions.

Observation Response System

Raycasting detects where the camera intersects the ocean surface. Shader uniforms create localized "awareness" that spreads from observation points through rippling patterns and increased luminosity. The effect fades organically over time, simulating the ocean's fleeting attention before returning to its own inscrutable processes. This creates the unsettling sense that something vast is briefly aware of your presence.

Emergent Formation Lifecycle

Formations spawn using weighted probability systems—some types are rarer than others, just as described in Lem's novel. Each structure matures through distinct visual phases and eventually dissolves back into the ocean. Shader-based translucency with flowing internal patterns generated from 3D noise functions makes each formation unique. They "breathe" through subtle scaling and opacity variations, suggesting internal processes we can only glimpse.

Performance Optimization

A three-tier LOD system (128, 64, 32 segments) automatically adjusts geometry detail based on camera distance. Instanced geometries for plasma fountains and formations enable efficient rendering of multiple objects. Critical shader calculations are cached in varyings to minimize fragment shader load. The result: smooth 60fps performance even on mobile devices.

Interacting with the Ocean

The ocean responds to your presence in mysterious ways. Hover your cursor over the surface to draw its attention—the longer you observe one spot, the more intensely it responds. But the ocean has moods that change every 15-30 seconds: sometimes curious, reaching toward your cursor; sometimes aloof, barely acknowledging you; occasionally recoiling, as if disturbed by observation.

Move slowly to see the ocean "track" your movements with a delay, as if processing your presence through alien senses. This unpredictability reflects Lem's core concept: you're studying it, but it's also studying you.

Design Philosophy

Unlike most interactive experiences, Ocean Solaris resists easy comprehension. There are no objectives, no progression systems, no explicit tutorials. Users must discover the interaction patterns through experimentation—mirroring humanity's futile attempts to communicate with Lem's alien ocean.

The ocean operates on its own timeline. Formations emerge and dissolve without player input. The gravitational engineering continues regardless of observation. This autonomy is crucial—the ocean isn't performing for you, it simply exists, and you're privileged to witness its incomprehensible work.

The Three-Body Problem

One of the most challenging aspects was simulating the dual-sun system. In Lem's novel, the planet orbits two suns—a configuration that should be gravitationally chaotic. The three-body problem, proven unsolvable by Poincaré in the 1880s, shows that infinitesimally small changes in starting positions produce wildly different outcomes.

But Lem imagined the Ocean actively stabilizing its orbit through continuous mass redistribution—treating it not as a mathematical puzzle, but as a real-time control problem. The Ocean doesn't solve the equations; it rewrites them constantly.

I implemented the gravitational chaos, then showed the Ocean counteracting 95% of it in real-time. The remaining 5% appears as surface shimmer—proof of invisible work being done. The engineering zones pulse when both suns align, creating interference patterns that suggest an alien intelligence performing planetary-scale calculations.

Read the full technical breakdown of how I implemented this →

Outcomes & Reflection

Users report spending extended sessions simply observing the ocean's behavior, noting how it feels both alien and oddly meditative. The simulation has been featured in creative coding showcases and experimental art collections.

This project reinforces that the most compelling digital experiences often embrace mystery rather than clarity. Not everything needs to be understood, explained, or mastered. Sometimes the goal is simply to create a space where wonder can exist—where we can confront our own inability to comprehend the truly alien.

Experience Ocean Solaris