↑↓ move · ↵ open · esc close

Stereo vision lab

Place two virtual cameras in a 3D scene, change baseline and focal length, and watch disparity and depth change. Then recover depth from the two images with classical matching and a small neural network.

StatusIn progress
Built withThree.jsONNXPython
A small version

A small version of the project. The full one is linked below.

How it works
  • 01Two virtual cameras sit side by side, a baseline B apart, looking the same way. Each renders what it sees, so every object lands at a slightly different horizontal position in the two images. That shift is the disparity d, and depth follows from Z = f · B / d.
  • 02The disparity map is found the way a classic stereo system finds it: for every pixel of the left image, slide a small window along the same row of the right image and keep the shift where the two windows look most alike (sum of absolute differences). No model is involved yet.
  • 03The true depth is also rendered, so the right-hand picture shows exactly where matching is wrong. Remove the texture or add noise and flat regions fail; widen the baseline and near objects leave the search range. A learned network, trained on scenes from this renderer, is the next step.
What it will include
  • 013D scene with two adjustable cameras, frustums, epipolar lines and live depth formula.
  • 02Depth error against distance for the chosen setup.
  • 03Block matching running on the GPU, compared with a learned disparity network.
  • 04The network trained on scenes rendered by the same engine, with true depth as ground truth.
More in this category
AI and machine learning

3D reconstruction from images

From a handful of photos to a point cloud and a navigable 3D scene […]

COLMAPGaussian splatting+1
AI and machine learning

Sound source localization

Find where a sound comes from using the delay between microphones […]

Web AudioTDOA+1
AI and machine learning

HARNAIS SSI

A cybersecurity harness for AI coding agents such as Claude Code […]

CybersecurityAI agents