Book review: The Martian

Published in early 2014, it is a book written by a programmer, Andy Weir, and it is his first book. As any first book, and as any book written by someone whose day job is not being a writer, it’s not perfect. The style is so so, and sometimes even poor. But it is good enough. It is written with an engineer’s attention to technical detail though, and that makes reading a very fun experience for technical people, even if at moments it gets long and hard to follow.

The story is fairly well exposed by the trailer of the upcoming Matt Damon starring blockbuster movie: in a near future, a Mars exploration mission is aborted and the crew leaves the base, leaving one dead crew member behind. Except he’s not dead, and as he wakes up, he realizes he’s alone, without means of communication, forsaken on a lifeless planet, with a month worth of food, and about four years until a potential rescue mission reaches him.

From there, the author tells the story of how his character tries to survive with what he has at hand, while maliciously throwing at him all sorts of traps, accidents and set backs: “haha, today while working you create a short circuit and kill an essential piece of circuit”. It is all story told with care for realism that turns some parts into challenging puzzles (wait, you just killed him there! How can he make it out of that? Oh, nice, that’s clever! – or on the contrary – Ha! I know, he can use this and that, haha, I’m so smart) and includes some parts that rank pretty well on the adventure scale, like when he decides he’s gonna fetch an exploration rover 800km away to use its communication system.

Most of the book is narrated as logbook entries on the Mars side, and from a spectator’s point of view on the NASA side. It makes the reader aware of both sides while appreciating how each side tries to understand and anticipate what the other is doing. So this narration works very well for suspense.

I have never seen a work of fiction so perfectly capture the out-of-nowhere shock of discovering that you've just bricked something important because you didn't pay enough attention to a loose wire.

xkcd alt text: “I have never seen a work of fiction so perfectly capture the out-of-nowhere shock of discovering that you’ve just bricked something important because you didn’t pay enough attention to a loose wire.”
Funny coincidence: at the time of writing I didn’t realize I chose the exact same example as the xkcd alt text.

But on the down side, as I was saying, there are weaknesses in style. Essentially, I’d say there are mainly two of them. One is the fact that most of the story is told by shiplog entries, and those entries contain details to serve exposition that would never be logged in real life, like an astronaut explaining how the base works. The other one is the tone of the book, upbeat, casual and funny, conveyed by the tone of the character’s log entries and meant to show his personality in the face of adversity and dire situations. This would be all good if it didn’t prevent log entries from being on par with the strictness and ethics one would expect from an engineer sent to Mars. But of course, that would also make the book reading a much more dry experience, so the author’s choice is understandable.

As a conclusion, I recommend this book, I had a lot of fun reading it and learned a couple of things about practical space exploration along the way which is pretty cool for a novel.

In this 45mn talk, the author Andy Weir presents the book, reads the first chapter, then present a tool he wrote to compute the trajectory of the ship:

Various links on ray tracing

Here are some links related to ray tracing, and more specifically, path tracing.

Some ray tracing related projects or blogs:

Some major publications:

  • The rendering equation, SIGGRAPH 1986, James T. Kajiya. From the paper:

    We present an integral equation which generalizes a variety of known rendering algorithms.
    We mention that the idea behind the rendering equation is hardly new.
    However, the form in which we present this equation is well suited for computer graphics, and we believe that this form has not appeared before.

  • Bi-directional path tracing, Compugraphics 1993, Eric P. Lafortune and Yves D. Willems. From the paper:

    The basic idea is that particles are shot at the same time from a selected light source and from the viewing point, in much the same way. All hit points on respective particle paths are then connected using shadow rays and the appropriate contributions are added to the flux of pixel  in question.

  • Optimally Combining Sampling Techniques for Monte Carlo Rendering, SIGGRAPH 1995, Eric Veach and Leonidas J. Guibas. From the abstract:

    We present a powerful alternative for constructing robust Monte Carlo estimators, by combining samples from several distributions in a way that is provably good.

  • Metropolis Light Transport, SIGGRAPH 1997, Eric Veach and Leonidas J. Guibas. From the abstract:

    To render an image, we generate a sequence of light transport paths by randomly mutating a single current path (e.g. adding a new vertex to the path).

  • Robust Monte Carlo methods for light transport simulation, 1998, Erich Veach PhD thesis (432 pages pdf): it presents bidirectional path tracing, and introduces Metropolis Light Transport and Multiple Importance Sampling. From the abstract:

    Our statistical contributions include a new technique called multiple importance sampling, which can greatly increase the robustness of Monte Carlo integration. It uses more than one sampling technique to evaluate an integral, and then combines these samples in a way that is provably close to optimal. This leads to estimators that have low variance for a broad class of integrands. We also describe a new variance reduction technique called efficiency-optimized Russian roulette.


    The second algorithm we describe is Metropolis light transport, inspired by the Metropolis sampling method from computational physics. Paths are generated by following a random walk through path space, such that the probability density of visiting each path is proportional to the contribution it makes to the ideal image.


On a slightly different topic, fxguide had a great series of articles on the state of rendering in the film industry, which I previously mentioned.

Reading list on Z-buffer precision

Nathan Reed recently published a blog article plotting his numerical findings of Z-buffer precision under different uses. On the way he references a couple of previous articles, that also reference other resources; I think it’s a good opportunity to list some of them. They all tell a part of the story and I recommend reading all of them to get the complete picture.

Unreal Engine experimental scene videos

Since the beginning of 2014, there has been a lot of videos demonstrating the realism that can now be achieved with Unreal Engine 4.

Often, these videos showcase a static scene or even concentrate on a single detail: lighting in an architectural structure, the look of rain hitting the ground, or some wet pebble on the beach.

Physically based rendering, global illumination and screen space reflections seem to manage to trick the brain an get it confused between what is real and what isn’t. Even when some artifacts get salient, like reflections popping in and out or changing with camera orientation, we are quick to forget them and find the image very believable.

Here are some of these videos, by Alexander Dracott, Koola, and Benoît Dereau.

Unreal 4 Lighting Study: Forest Day from Alexander Dracott on Vimeo.

Readings on the roles of senior programmer and lead programmer

Here are some of the best articles I have read on the topic. They surely will help you understand what people expect from you and what you should expect from yourself as you become a lead:

Fresnel and the Poisson spot

The casting of the following story is remarkable. The year is 1818. On one side, Augustin Fresnel (1788 – 1827) has just handed to the French Academy of Sciences (Académie des Sciences) an essay defending a theory completely opposed to the widely accepted one; on the other side, François Arago (1786 – 1853), Jean-Baptiste Biot (1774 – 1862), Louis Joseph Gay-Lussac (1778 – 1850), Pierre-Simon Laplace (1749 – 1827) and Siméon Denis Poisson (1781 – 1840) are the panel in charge of assessing it. These are all major theorem names. Men who built Science, the giants whose shoulders we stand upon. But the context is peculiar: the scientists are here to fight, as the battle is raging between partisans of the particle theory and partisans of the wave theory.

Augustin Fresnel

It all starts three years earlier, in July of 1815, when Fresnel (then 27) meets the person who would later become his mentor, Arago. The political background is rough: the Hundred Days have ended just a month before with the defeat of Napoleon at the battle of Waterloo, and Fresnel, a royalist, is under police scrutiny and has been dismissed from his title as a state engineer. The scientific background is the status quo: Isaac Newton’s corpuscular theory of light is prevailing and unshakeable.

Pushed forward by Arago who sees great potential in him, Fresnel performs rudimentary experiments with light diffraction at his mother’s home, in a town north of Caen. There, with gear made by a local worker and consisting of wires and drops of honey serving as lenses, he observes and measures hyperbolic fringed patterns that cannot be explained by the particle theory (which should lead to linear patterns). He thus builds upon the wave theory by Hyugens and on October 26th, sends to the French Academy of Sciences a first paper reporting his observations. He will later send more of these papers, prompting strong reactions from the community, especially Laplace.

The competition organized by the Academy and aimed at rewarding the best work on a given topic is seen as the perfect opportunity to put an end to the battle. Proposed on the 17th of March 1817, and ending on the 1st of August of the next year, it focuses on diffraction phenomenons, and while rigorous, it seems to have been written by a supporter of the corpuscular theory. Opponents to the wave theory are hoping to see someone present a work that will put a stop to it.

Arago, originally convinced by the particle theory, sees Fresnel as the one who can best defend the wave theory. He helps him any way he can, and in particular helps him move to Paris to enter the competition. Even André-Marie Ampère (1775 – 1836), although a openly partisan of Newton’s theory (possibly for political reason related to the Academy), gives him full support. Both push him to publish his new results. The three will become close friends in the process.

Finally this essay handed at the last minute (29th of July 1818) is the only one selected out of two submitted. Natura simplex et fecunda is much more thorough than the previous works, and it is nowadays described as a masterpiece. Going beyond the work of Thomas Young (1773 – 1829), the author proposes a model that predicts with precision the position and size of the fringes, and presents the experiment now known as Fresnel double mirror.

Among the jury, Biot, Laplace and Poisson are the most resolutely opposed to wave theory. Poisson in particular, fascinated by Fresnel’s theory, studies it in detail, looking for weaknesses. From it he derives a counter intuitive result beyond Fresnel’s own predictions: by placing a disc at a certain distance between a source of light and a screen, a bright spot should appear in the center of the disc’s shadow. To Poisson, this apparently absurd consequence is a proof that invalidates Fresnel’s work.

But Arago decides to proceed and perform the experiment. To everyone’s surprise, the spot predicted by Poisson is indeed observed. The anecdote, recorded by Arago, would be the strawberry on the shortcake to Fresnel’s success that day. Ironically, although it still didn’t convince Poisson, the experiment is since then often referred to as the Poisson spot.


Some references:

Augustin Fresnel’s essay used to be available on the website of the Académie des Sciences, but the link seems to be broken recently.

“Mémoire sur la diffraction de la lumière” on the website of the French Academy of Science (fr, PDF)

André Marie Ampère et Augustin Fresnel (fr)

Final word:

Before opening this space specifically dedicated to light and rendering, I was posting from time to (increasingly distant) time on another blog in French. One post that attracted attention was the story of Augustin Fresnel defending his thesis in front of the Académie des Sciences. Given the impact his ground breaking work has on rendering, I thought it made sense to translate it and post it here.

I have tried my best to bring the pieces together from different sources, but some of them were disagreeing on some details, and unfortunately I haven’t noted all the references so it is possible some part isn’t 100% faithful to the events. Please leave a comment if you have some material on the topic.