“People will hire you because you are a problem solver.” – Seth Holladay

I wouldn’t consider myself a naïve person, however I found my preconceptions about math in animation to be completely wrong. My thoughts were like this: I know basic algebra, basic calculus, and I’m starting to learn linear algebra, but I won’t use math very often because the software will do it all for me. Recently I had the opportunity to interview a prior Pixar employee Seth Holladay about his use of math in Animation. What I learned surprised me.

Seth graduated from BYU with a computer science degree but was always more inclined towards art. He struggled through computer science and even said he had a difficult time completing the beginner’s class, CS 142, where you are first introduced to basic coding. He was accepted as an intern at Pixar as a render TD (more on why later) and then hired on in visual effects later after graduation.

During our interview, one of the biggest things Seth stressed was that he didn’t use math because he wanted to. It wasn’t because he was geeky or because he loved it, it was just he had to. A problem would arise, and he was willing to learn how to fix it. “I was just willing to do what it takes,” he said. One example of doing what it takes was at BYU when he was trying to animate a chinchilla in one of the films called, “Pet Shop.”

Seth: “I was a texture artist. I painted textures and I wrote shaders. I started doing animation when Maya first came out. RenderMan was very powerful but compared to today it was very primitive. We lined up cards on surfaces and then put textures on the cards. To get the cards attached to the skin we aligned the cards to the normals. There was an alignment where the cards were sticking straight out along the normal and we wanted it to follow the tangent of the UV’s. So we wrote a script to twist and align them. We had to write some three dimensional rotations.”

Me: “So you were using matrix algebra inside the script?”

Seth: “Scripting languages normally have functions to help you do the rotations. So it’s more of an understanding of what inputs you’ll need for the matrix and when there are commands that mention matrix you know what it means so you don’t run away.”

Another problem the BYU Animation team ran into was that of errors in the renders (the final images that are pieced together to make the film). Often there would be black spots or sharp edges that didn’t look right. Seth said that he would have to open up the render files (full of matrix math) and look for the NaNs (not a number). NaNs were often the result of something going wrong with the matrix math.

Seth: “Sometime we would dig through the render file and there are lots of matrices in there and you can have a general idea of, Oh, this matrix is moving the light, this matrix is moving the other thing.”

Me: “Do we do that anymore?”

Seth: “Only if you need to, but I’ve definitely helped people within this last year dig through the IDF files (the render files). It’s really good to know what a matrix is. That way, when the vocabulary starts flying, when you need to know which command does what, and how to predict the behavior, an underlying understanding of what matrices are and what they do is very important.”

Seth went on to tell of his application to Pixar and that he would be embarrassed to show his demo reel today. However, Pixar said they had seen nothing like it before, and accepted him as an applicant. He reflected by saying it was his willingness to solve problems that got him in. There weren’t other students who were opening render files and fixing specific render bugs with linear algebra. Because they were trying things no one else was, they were running into problems no one else was either. This impressed the Pixar recruiters.

Seth: “At Pixar as a render TD I would render out the final frames. The lighters would get the lights working but they wouldn’t get all the bugs out. So we had to get all the bugs out, get rid of all the black spots showing up, understand why it was taking 20 hours to render, and understand why the models were breaking. I did a lot of compositing work, so you definitely needed an eye, but there was a lot of ‘let’s figure out why this isn’t working and why the render is taking too long.’”

Me: “I’m assuming you kind of learned how to do that at BYU, but when you got there did you have to learn a ton? I mean, how did you learn how to do that?”

Seth: Desperation. But, it was mainly because on the senior project (at BYU) we were willing to do what we needed to do to make it amazing. That mean’s you are going to be debugging. That is why Pixar hired me as an intern. I think I rendered out 100 shots on Cars.”

After his internship and graduation he worked on visual effects in the movie “Up.” During a chase scene a character named Russell is desperately hanging onto a hose from a floating house while being chased by hundreds of dogs. At one point while he is being dragged he slides over a cliffs edge and sprays debris and rocks into the abyss as he tumbles. It was Seth’s job to include the rocks and debris. He mentioned the use of linear algebra to do this but I was surprised. “Wait,” I said, “didn’t you just use Houdini?” He replied that Houdini was very new at the time and its rigid body simulations were very slow. It was more efficient to use linear algebra to define an axis for each rock and then give it a rotation around that axis with a matrix. It took him about a week to write out the script, but then he had a script for any rock or debris that he wanted to include in the film.

Seth worked at Pixar for four years and has now returned to BYU to teach. His current project is to study sand and how it moves to get a better simulation that can capture the solid/fluid nature of sand. He mentioned that he uses the first half of the linear algebra curriculum all the time, but that he doesn’t use the second half very often. However, with the current research he is doing he said that he wishes he had studied the second portion of the curriculum better because he would be more capable of understanding fluid simulations.

I also asked Seth if a standard linear algebra class would be sufficient to solve the problems he had encountered in render wrangling. The following part of the interview got off topic from the question, but I found it useful in knowing type of linear algebra that would be useful for solving potential problems.

Seth: A lot of it is dealing with normals. It is taking vectors and translating them to different vectors. A normal means the direction of the surface. Every vertex has a normal defined.

Me: I thought it was only the faces that had normals?

Seth: Faces naturally have a normal; you just take the cross product of the two sides. A cross product is matrix multiplication. So just by that fact that you do cross products, you are using matrix multiplication. However, you shade based off of vertices normals. It is just the average of all the normals of all the faces surrounding it. Now that you have all the vertices normals, you bilinearly interpolate between the normals to get the reflection normal at each point. You don’t want just the face normal, because the light will bounce off in the same way across the whole thing whereas if you interpolate a normal across the surface based off of the surrounding vertices then you get a nice gradient. Also the transformation of a normal is not the same as the transformation of a vector because the first is dependent on it being attached to a face in space. Vectors don’t have a position, just a direction and length, whereas normals are restrained to a place (a direction from a point in R3). You can’t just do the regular rotation matrix. Your knowledge of linear algebra will help guide the choices you make as you build stuff.”

Me: Did you use any calculus?

Seth: Inadvertently I would use it. I mean physics is all calculus. Change of speed and direction over time. Especially when I’m trying to write new tools.

Although the interview continued, it was less about math and more about what I can do to prepare myself for the industry. This was my favorite quote from Seth. “People will hire you because you are a problem solver.” I like that perspective. It makes problems exciting. I don’t love math (in my math classes), but when I encounter a problem it is with a whole new perspective.