hi, I'm Zubin I build learning apps and 3D games for the web and native apps(iOS and Android)
React, TypeScript, Three.js, game-dev, and AI-native engineering, plus notes on what I learn along the way.
Apps
See all →Projects
See all →- Typo's Voyage
Typo rows a boat through tropical water and types words to clear mines and other obstacles on a voyage to get faster. I led the 3D team at edclub that built it. Built with Three.js.
- Keyboard Express!
You type the words on the track before the train hits them and try to bring every wagon of cargo to the finish. Built with React Three Fiber and Three.js.
- connect-it
You place timers, QR codes, logic gates, displays, and music nodes on a canvas and draw wires between them. Values update on the edges as you edit. An extensive node library helps you find nodes and learn about each, and a starter template library comes with it. Inspired by Austin Griffith's eth.build, which I still think is amazing. Built with React Flow.
- roll-it
WASD rolls a ball over floating tile islands while you collect gems. Rapier runs the physics. A sketch shader inks the world. When the ball rolls behind a wall or a tree, that scenery turns see-through. Built with React Three Fiber and Three.js.
Open Source
See all →Recent posts
See all →Hundreds of Draw Calls Down to a Handful with BatchedMesh
7 min read
How Typo's Voyage draws every tile and every 3D letter through four three.js BatchedMeshes, poses a whole treadmill on the GPU with one vec4 a frame, and what breaks when you move instances in the vertex shader.
Stamp DEV on the Debug Icon
4 min read
My Debug builds are their own app: a .dev bundle ID, a Dev name, and the real icon with a DEV ribbon a small script draws across the corner. They install beside the App Store version and never touch its data.
Your Shader Stutter Happens at First Draw
8 min read
A three.js hitch the first time an effect appears is usually a WebGL program link. It blocks at the first draw, not at compile, and a warm-up only fixes it if it links the same program variant your frames use.
Roll It Has No Outline Pass
9 min read
The ink lines in Roll It aren't a post-process. Each material finds its own edges: the median of three distances on a box, crease barycentrics on a mesh, and a view-angle band on the ball.
Soundscapes for Web Games: A Pluggable Howler Implementation, Part 2
12 min read
The soundscape engine is one class under a hundred lines. A six-function adapter is the seam.




