Build a vector search engine
Build a vector index with exact search, filters, and a simplified HNSW graph.
TypeScript · Python · Go
Vectors, intersections and materials. Write a PPM and watch a scene appear pixel by pixel.
Build it in your language
The tester treats your program as a black box: any language works. These are just the most convenient ones for this project.
This is the most visual challenge in the catalog: every stage ends in an image you can open and look at. The payoff is immediate and addictive.
Starting from vectors you write yourself, you'll cast rays through a virtual camera, compute intersections with spheres and planes, and add materials, shadows and reflections until you get a scene that looks like it came out of a serious renderer. Because it did.
9 stages across 4 phases. Every stage comes with its guide and its tests: you move on when they pass.
Your own vectors, the PPM format, and a gradient as a first output.
Camera, rays, sphere intersection and normals.
Diffuse, metals, glass with refraction, and shadows.
Antialiasing, depth of field, and optimising the inner loop.