Labs
Where the rule stops being obedient.
11 experiments, studies and lab projects: shaders, physics, typography, a pixel village in VS Code. Built to understand something, kept because they still do. The finished work is on sammii.dev.
Experiments
One idea each, built to see it move.

Balloon Bonanza
React, TypeScript, Matter.js, Vite
A physics playground of 100 balloons that float, bounce, and can be grabbed and flung across the screen. Matter.js has no buoyancy, so the float is faked from tuned gravity, density, and air friction; each balloon is a two-body compound with a wobbling knot. Holds 60fps across 200+ bodies and 300+ constraints.






Tailwind Colour Creator
React, TypeScript, Vite, Tailwind CSS
Colour palette generator that produces Tailwind-accurate 11-step scales from any base colour. Derives lightness, saturation, and hue curves from official Tailwind palettes, with click-to-copy swatches and CSS variable or config output.
Superseded by Gamut.
Studies
Longer looks at a single question.
Lab projects
Bigger builds that never needed to be products.

Beyond Light VR
Three.js, WebXR, GLSL, Vite
WebXR reconstruction of my MA dissertation installation. A journey through the visible light spectrum from infrared to ultraviolet: quotes screen-printed on acetate walls remain invisible until the final UV phase, where they blaze to life with a custom GLSL UV-reactive shader before the room dissolves into white.

Celestial map
D3.js, HTML5 Canvas, Vite
Interactive star globe rendered on Canvas using D3 orthographic projection. Realistic star colours from B-V colour index, magnitude-scaled sizes with glow effects, constellation lines and labels, Milky Way band, drag-to-rotate with idle spin, and a time slider that shifts the sky in right ascension.

Isle
TypeScript, Canvas API, VS Code Extension API, Astronomy Engine
VS Code extension that visualises active Claude Code agent sessions as pixel-art characters in an Animal Crossing-style village. Agents sit at desks in an office, wander outdoors, and display real-time status. Dynamic time-of-day, seasonal changes, a pond, trees, and flowers.
