Lab
Things you can try
Every project with something to try on this site. Larger projects show a small version here and link to their own page.
- 01Stereo vision labPlace 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.Open→
- 023D reconstruction from imagesFrom a handful of photos to a point cloud and a navigable 3D scene, with the camera poses shown. The same geometry as the stereo lab, extended to many views.Open→
- 03Sound source localizationFind where a sound comes from using the delay between microphones, the audio cousin of stereo vision. A simulated room in the browser, with a model that learns to estimate direction.Open→
- 04knockKnock on your desk or laptop to trigger any command. It listens through the built-in microphone, works out where and how you knocked (single, double, triple), and analyses the audio locally without recording it.Open→
- 05BlobbleA cross-platform desktop companion made from your name. It lives in the tray or the bar, reacts to what you do and keeps you on a Pomodoro. The Windows app is done, Linux is in progress.Open→
- 06PathfindingFive grid search algorithms side by side on walls you draw. The search is drawn as it runs, and you can compare how many cells each one had to look at.Open→
- 07Tic-tac-toeA tic-tac-toe opponent that cannot be beaten, built on minimax with alpha-beta pruning.Open→
- 08HEXThe connection game with no draws, against an AI whose search you can watch. First written in C as a command line game, rebuilt for this page in TypeScript.Open→
- 09OthelloOutflank and flip your opponent’s discs, against an AI you can switch between minimax, alpha-beta, Monte Carlo tree search and simpler players. Written first in Python, rebuilt for this page in TypeScript.Open→
- 10Connect FourDrop discs and line up four, against an AI you can switch between minimax, alpha-beta, Monte Carlo tree search and simpler players. Written first in Python, rebuilt for this page in TypeScript.Open→
- 11Point field generatorType a math expression and see it plotted as a field of points in 3D. The animation on the home page is the first example: a surface that morphs between equations.Open→
- 12cseenA small TypeScript library, cseen, that draws 3D figures as SVG from coordinates. Every illustration on this site, including the animated ones, comes from it. It is published on npm as cseen.Open→
- 13Logo manualsLogos I designed, presented like brand guidelines: the construction drawn with basic shapes and circles, clearspace, minimum sizes, color versions and misuse.Open→