Hi, I'm Manish. I teach computers to see in 3D.
ML / computer vision engineer, currently doing my MS in CS at Santa Clara University. Before this: research at IISc, and building LLM data pipelines in industry.
I like reconstruction, NeRFs, fast CUDA, and my dog — who is currently learning to find a bone
things i've built
a few concepts i loved learning. i rebuilt them in voxels so you can learn them too: poke around.
A small voxel dog normally learns to find a bone here, live in your browser. It needs canvas and JavaScript to run.
live reinforcement learning
- the dog = the agent; the grid = its world
- bone +1, gaps −1, each step costs a little = rewards
- zoomies = exploring: random moves on purpose
- the little brain = a tiny neural network guessing how good each move is
- green tiles = where it thinks reward is · dashed line = its plan
- it all runs live in your browser; nothing is pre-trained
it starts knowing nothing: every move is a guess.
attempt 1 · home 0 · zoomies 90% · confusion .000
A small voxel snack machine normally gets rebuilt in 3D from a few cameras here, live in your browser. It needs canvas and JavaScript to run.
live structure from motion
- cameras: one view (photo) each
- coral dots: features worth tracking
- green lines: matches, same spot in two views
- triangulation: two rays cross at a 3D point
- reprojection error: how far points miss their dots
- refine: bundle adjustment nudges poses and points to shrink it
- voxels: points binned into a grid; compare: vs the true model
- real SfM matches by appearance (descriptors); here the matching is given, the geometry is real
drag the cameras. points seen twice become 3D.
real world ·
what it reconstructed · drag to spin
cameras 0 · frames 0 · matches 0 · 3D points 0 · reprojection error —
A voxel mini-golf course normally teaches gradient descent here, live in your browser. It needs canvas and JavaScript to run.
live gradient descent
- the hill = the loss; lower is better
- the ball = the model's parameters θ
- green arrow = −gradient: straight downhill
- each hop = one step: θ ← θ − learning rate × gradient
- momentum keeps part of the last step; adam rescales each direction
- corner map = the same hill from above, as contour lines
- score = steps taken; par = what a well-tuned swing needs
loss – → – · 0 steps · par –