Visual Studio

Immersive
Experiences

Real-time visuals built on GLSL shaders, Three.js, and generative algorithms. This is the technology behind our installations and holographic displays.

โš™ ControlsGLSL / WebGL

Teal Plasma

GPU-rendered plasma field built in GLSL. Every pixel computed on the graphics card โ€” move your cursor to warp the interference pattern.

Move cursor to warp the plasma field

Launch
โš™ ControlsThree.js

Particle Storm

18,000 particles suspended in three-dimensional space. Mouse movement controls camera rotation โ€” revealing depth and structure in the chaos.

Move cursor to orbit the particle cloud

Launch
p5.js

Neural Flow

Perlin noise flow field rendered with 900 autonomous agents. Each particle follows invisible force vectors โ€” the cursor bends the field.

Move cursor to bend the flow field

Launch
โš™ ControlsGLSL / Raymarching

Void Portal

Raymarched 3D geometry using Signed Distance Functions. Three nested tori and a sphere โ€” entirely computed per pixel in GLSL. Move cursor to orbit.

Move cursor to orbit the structure

Launch
p5.js

Void Tunnel

150 concentric shapes morphing between perfect squares and circles. Mouse X warps the dimensional twist, Mouse Y controls the pulse speed.

Mouse X = twist ยท Mouse Y = speed

Launch
โš™ ControlsGLSL / Raymarching

Accretion Nebula

Fractal raymarching through a procedural space nebula. 20-step raymarch with 7 layers of noise โ€” every pixel computed on the GPU in real time.

GPU fractal nebula โ€” just watch

Launch
Matter.js

Physics Chaos

Matter.js 2D rigid body physics โ€” circles, rectangles, polygons and trapezoids rain down in teal tones. Click and drag any shape to fling it around.

Click and drag any shape ยท They collide and stack

Launch
โš™ ControlsGLSL / WebGL

Domain Warp

Four layers of domain-warped fractal Brownian motion computed entirely on the GPU. Move your cursor to shift the flow โ€” no two frames are ever the same.

Move cursor to warp the fractal field

Launch
โ— CAMML5 / FaceMesh

Camera Vision

Live camera feed with ML5.js face mesh tracking โ€” 468 landmarks mapped in real time. Full wireframe face with squiggly eye/brow contours and floating particles.

Click "Enable Camera" โ€” face mesh activates automatically

Launch
โ— CAMp5.js / Camera

Squiggle Cam

Your camera feed transformed into organic teal line art. Pixel brightness bends each scan line โ€” the brighter the light, the more it bends.

Click "Start Camera" โ€” move in front of the lens

Launch
โ— CAMp5.js / Optical Flow

Optical Flow

Motion detection turned into particle art. Every movement spawns teal particles that trace the path of motion across the camera frame.

Wave your hands in front of the camera

Launch
โ— CAMMediaPipe / Canvas

Liquid Ball

Hold both hands up to summon a liquid teal sphere between them. The ball reacts to your hand distance โ€” squeeze to compress, spread to expand.

Enable camera ยท Hold both hands up ยท Squeeze to compress

Launch
โ— CAMp5.js / Camera

ASCII Pixel

Your live camera feed quantised into a teal pixel-block grid. Eight brightness levels map to eight tones โ€” from deep black to electric cyan.

Enable camera ยท Move closer or farther for more detail

Launch
โ— CAMp5.js / WEBGL

3D Point Cloud

Your live camera feed rendered as a 3D depth map in p5.js WEBGL. Each pixel becomes a floating voxel โ€” brightness drives depth. Orbit with your mouse.

Enable camera ยท Move mouse to orbit the 3D cloud

Launch
โ— CAMMediaPipe / FaceMesh

Face Riot

468 facial landmarks tracked live via MediaPipe FaceMesh. Cyan mesh overlays your face with cyberpunk glitch effects, chromatic aberration, scan lines, and floating error text.

Enable camera ยท Face the screen ยท Watch the glitch mesh activate

Launch