The Ray Tracer Challenge (PragProg)

Brace yourself for a fun challenge: build a photorealistic 3D renderer from scratch! In just a couple of weeks, build a ray tracer that renders beautiful scenes with shadows, reflections, refraction effects, and subjects composed of various graphics primitives: spheres, cubes, cylinders, triangles, and more. With each chapter, implement another piece of the puzzle and move the renderer forward. Use whichever language and environment you prefer, and do it entirely test-first, so you know it’s correct.

Jamis Buck @jamis

edited by Brian P. Hogan @bphogan

Brace yourself for a fun challenge: build a photorealistic 3D renderer from scratch! In just a couple of weeks, build a ray tracer that renders beautiful scenes with shadows, reflections, refraction effects, and subjects composed of various graphics primitives: spheres, cubes, cylinders, triangles, and more. With each chapter, implement another piece of the puzzle and move the renderer forward. Use whichever language and environment you prefer, and do it entirely test-first, so you know it’s correct.

There’s no research necessary; all the necessary formulas and algorithms are presented and illustrated. Dive into intriguing topics from vectors and matrices; to the algorithms that simulate the intersection of light rays with spheres, planes, cubes, cylinders, and triangles. Lighting and shading effects, such as shadows and reflections, make your scenes come to life, and constructive solid geometry enables you to combine your graphics primitives in simple ways to produce complex shapes.

Play and experiment as you discover the fun of writing a ray tracer. Accept the challenge today!


“Jamis Buck tames a difficult topic using an entertaining, practical approach that even the mathematically averse will enjoy. The test-driven approach challenges and rewards the reader with experiences and artifacts that remind even the grizzled software curmudgeon of the joyful moments in software development that inspired us to pursue engineering in the first place.”

–Jason Pike, Director, Software Engineering, Atlas RFID Solutions


  • Full details: Search
  • View this book’s portal and details on how to post errata and suggestions here.

Don’t forget you can get 35% off with your Devtalk discount! Just use the coupon code “devtalk.com" at checkout :+1:

3 Likes