Fun lab
Built for the joy of it.
Weekend experiments that turned into playable things. Everything here runs directly in your browser - each one is a single, self-contained HTML file. Best played on a desktop with a keyboard.
▸ PlayCAVITY CLUB
A candy shop that sells sugar like sneaker drops
A fictional candy brand landing page done as bubblegum neo-brutalism: weekly limited 'drops' with a live countdown, sold-out hype cards, dentist complaints as testimonials, a parody Nutrition Facts label, a sprinkle cursor trail, and a DO-NOT-LICK button that triggers full sugar-rush mode. Pure design experiment - nothing is for sale.
- Next.js
- CSS animation
- Design
Scroll, hover, lick nothing · desktop + mobile
▸ PlayFLUX
One-tap gravity-flip arcade
Flip gravity with a single tap and thread an ever-faster corridor of spikes and drifting blocks. Global top-10 leaderboard on Supabase, arcade name entry, synthesized sound, and a difficulty curve tuned for one-more-try. A native Next.js route - the whole game runs in a canvas inside a React client component.
- Canvas 2D
- React
- TypeScript
- Supabase
SPACE / tap to flip gravity · desktop + mobile
▸ PlayNEONDRIFT
Cyberpunk hover-car flight simulator
Fly a hover-car through an infinite, procedurally generated neon city. Streamed chunks keep the world endless, bloom makes it glow, and a ring-chase loop with combos and boost energy makes it a game. Every sound is synthesized live with Web Audio - no assets, one HTML file.
- Three.js
- WebGL
- Web Audio
- Procedural generation
WASD fly · SPACE/CTRL altitude · SHIFT boost · desktop + keyboard
▸ PlayVOXELCRAFT
Minecraft-style voxel sandbox
An infinite voxel world with seeded terrain, lakes, beaches and trees. Break and place nine block types, sprint, swim and fly through a full day/night cycle - and your edits persist in the browser between visits. Chunked culled-face meshing keeps it at 60 FPS.
- Three.js
- Voxel meshing
- Pointer Lock
- localStorage
Click to play · WASD + mouse · F to fly · desktop + keyboard