A code blog


Back to index

Lineage in the field

I recently had a bit of an epiphany. Well, actually a couple epiphanies.

The first was about the world of computer graphics. The second was about myself.

Getting off my ass

A number of years ago I happened across a talk by Alan Kay. If you've ever talked to me about software engineering or computer science, I've likely mentioned Alan a number of times. Alan really challenged me to think about the field, my approach to engineering, and the way I was approaching problems. I had become complacent in my job at the time, and it was Alan that motivated me to go and learn new things.

After a while I happened upon another speaker named Bret Victor, who I later came to learn was a student/colleague of Alan's. Bret Victor challenged me in a lot of the same ways, and got me excited about user interactions and how people actually engage with computers.

At this point I knew that I wanted to work towards some deep principles of my own, but it was initially difficult to figure out exactly where to put all of that energy. I tried dabbling in programming language design and a few other things, but I was never feeling that passion that I knew was out there somewhere.

Eventually I found computer graphics.

Mentorship and History

Over the last few years I've been mentoring a couple of friends, trying to help them get into programming, computer science, and software engineering. When you're teaching someone brand new to something about a very wide subject matter, it forces you to think about the big picture. What things are actually important to teach this person? How can I help them accomplish their goals efficiently? How can I take any wisdom I have earned over a decade of grinding and distill it into a short conversation?

At some point I sat down to consider all the things I thought were important to talk about with my mentees, and I came up with a short list. At the top of that list was history. The history of the field, the history of various tools, the general history of computers/math/computation, etc. Over time I've become more and more convinced that being a great engineer also requires being an amateur historian. I gave my mentees small tasks to try and give them a nudge in terms of curiosity, asking them questions like "Who created javascript?"

A couple of weeks ago I was watching a video from Cem Yuksel, a professor at the University of Utah. Cem was talking about the Utah Teapot, a very well known teapot model that pops up everywhere if you mess around in graphics for any length of time. I got curious and decided to look into it a bit more. When I did I came across a video honoring Ivan Sutherland for his work on VR. I noticed that Alan Kay was a speaker and so I jumped in. And boy, what a world I discovered in that video.

Ivan Sutherland

Ivan Sutherland is a name I had heard like a million times from Alan Kay himself. He almost always mentions him in his talks, along with Ivan's PhD project from the 1960's, Sketchpad. This is a case of me not being smart enough to follow my own advice, because while I had done some very surface level research on Ivan's work, I never really looked too closely at him or his career.

What's the short version of this? Well, it turns out Alan Kay actually went to the university of Utah. He was a PhD student under Ivan Sutherland and David C. Evans. Together Sutherland and Evans created an environment that fostered a massive amount of growth in the computer graphics world. Some of the students/faculty from that era want on to found Adobe, Pixar, Silicon Graphics, etc. A number of extremely important advances were made in terms of shading as well, including the Blinn-Phong model that pops up almost as often as the damn teapot.


I suddenly realized that everything I've been doing for the last half of a decade really comes back to this era in the 1970s with Ivan and his students. Alan Kay and Bret Victor, probably the two people who have had the biggest influence on me, are really part of a lineage that goes right back to Ivan at the university of Utah. Even the courses I'm working through from Cem Yuksel can be related back to this same period. Every time I've read through the requirements on Pixars careers page, or read through an explanation of Gouraud shading. That stream of motivation I've received from these great engineers has led me down this path of learning computer graphics.

This really excites me because I feel like I've been attacking the same problem from a bunch of different angles for years without even realizing how everything is connected. Now I see exactly how important the history is. If only I had the foresight to really dig into the history of computer graphics rather than trying to learn one small thing at a time. Now I have a specific space in history than I can mine for ideas, motivations, successes, failures.

This also brings with it a new level of confidence in my ability to get where I'd like to be in terms of graphics and rendering. Partially because it demystifies a bunch of things about the evolution of the field. More importantly it makes me excited to dig into all the research papers that have come out since the 1970's and try to follow the history of graphics as I work my way into the present and modern rendering techniques. It makes me feel more connected to the academic lineage of Ivan and his "descendants", a group that I now guess includes...me.

Ask me questions on twitter or email me at ty@tytr.dev