“This book is a godsend.”
— Danielle Keffer
Brace yourself for a fun challenge: build a photorealistic 3D renderer from scratch!
It’s easier than you think. In just a couple of weeks, build a ray tracer that renders beautiful scenes with shadows, reflections, brilliant 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 that much further forward. Do all of this in whichever language and environment you prefer, and do it entirely test-first, so you know it’s correct.
Recharge yourself with this project’s immense potential for personal exploration, experimentation, and discovery.
The sky is the limit, with infinite directions to explore on your own!
Once you’ve begun working through the book, you can come back here to find bonus material—additional features, optimizations, and tips— all presented in the same test-driven format as the book.
The following bonus material is currently available:
“Following in the footsteps of his book,
Mazes for Programmers,
Buck once again takes a challenging concept, presents it in an
easy-to-understand format, and reminds us that programming can be
both fun and rewarding.”
— Dr. Sebastian Raaphorst, Gemini Observatory
“This book is devious. Little by little, a test here and a test there,
you'll create an incredibly sophisticated ray tracing library. Because
each change is so small, your ray tracer will sneak up on you. That's
the devious part: By the end you'll have built an amazingly complex
piece of software, but it will never feel difficult!”
— Cory Forsyth, Founding Partner, 201 Created, Inc
“In The Ray Tracer Challenge 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
curmudgen of the joyful moments in software development that inspired
us to pursue engineering in the first place.”
— Justin Ball, CTO, Atomic Jolt
“Creating a ray tracer is a rite of passage that I recommend all
developers endeavor to complete. Jamis does a great job presenting
complex topics simply and allowing the reader to focus on the most
interesting parts of the project. Working through this book is
almost guaranteed to bring your programming skills up a notch.”
— Jason Pike, Director, Software Engineering, Atlas RFID Solutions
“The Ray Tracer Challenge is a delightful introduction to 3d lighting
and rendering through ray tracing. Yes, there is math, but Jamis
provides great examples and the exercises illustrate concepts in a
way that is way more fun than any math class I took in college!”
— Matthew Margolis, Director, Software Engineering
“Taking the Ray Tracer Challenge was so much fun. Starting with some
short tests, you'll create beautifully rendered images with just a
little bit of math and code.”
— Justin Weiss, Senior Software Engineer, Aha!
“With this book, I can use what I learned at the university 13 years
ago, and it is now fun! The Ray Tracer Challenge gave me back my joy
for pet-projects. I recommend it to everyone!”
— Gábor László Hajba, Senior IT Consultant
“One of the tricks to avoiding programmer burnout is to find a passion
project. In this book, you'll find exactly that: an awesome personal
project that you can tackle regardless of your language background.
Jamis' The Ray Tracer Challenge shows us that the best passion
projects are shared.”
— Kevin Gisi, Senior UX Engineer