Experimentarium
An Evolving WebGL Experiment
A living R&D sandbox where I prototype ideas for rendering, camera systems, UI flows, and interaction— and turn those experiments into small, playable games, built with Next.js + R3F, a custom ECS, and an Edge leaderboard.
What I’m exploring
- Interaction & feel: camera presets, input latency, and micro-animations.
- Rendering: stylized lighting, post-FX toggles, and performance trade-offs.
- Systems: an event-driven ECS with a shared clock and clean Start/End lifecycles.
- UX: lightweight in-scene UI for tuning sky, terrain, water, and effects.
Controls
Click/tap to interact. Press U to toggle the sandbox UI; Esc to pause.
How I approach experiments
Each idea is a small, isolated mode with its own camera preset and clean setup/teardown. Global services (clock, events, effects) stay consistent so I can compare results quickly.
What is “ECS” and why use it?
ECS stands for Entity–Component–System. Think of it as three simple parts working together:
- Entities — lightweight IDs for “things” in the world (balloons, particles, players).
- Components — data attached to entities (like Position, Velocity, Color).
- Systems — functions that run every tick on entities that have the required components (e.g., a Movement system updates all entities with Position+Velocity).
This makes code modular, data-driven, and easy to optimize—perfect for quickly turning experiments into small games without spaghetti.