Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Jim Blinn and Ed Catmull – graphics class at Berkeley (1981) (youtube.com)
102 points by carapace on March 15, 2023 | hide | past | favorite | 19 comments


The best educational experience I've had in life was this summer course I took at Columbia as a high-schooler about "graphics programming."

In the morning, we would study a little bit of the physics and math behind image rendering. I didn't have a lot of the content in school, and this is where I learned all the high-school math around matrices and vectors. The instructor truly did an unbelievable job motivating us with this "real" problem we had about understanding the natural world, and then going through exploring how we could marshal the math to make it work.

Then, in the afternoon, we'd turn our attention to the computers, where we would then implement in C the math that we had done in the morning. We all literally started from a "blank sheet of paper," and over the course of a month build our own very simple rendering engine, including all of the helper math functions that it relied on, to a point where it could consume files with vertex information and render a 3D image on the screen. It was... absolutely exhilerating.

I vividly recall our discussion about aliasing, and just how awesome it felt being an "investigator" and thinking deeply about this phenomenon I had noticed while using paint, and now uncovering what to me where insanely clever strategies on how to mitigate it.

I've become an educator, and to this day I hold that as the gold standard for what an incredible educational experience can be. I've tried many times, but if I'm being honest I don't think I've come close to delivering to my kids what that course did for me those years ago. I'm embarrassed to say I don't remember the instructor's name, because I wish I could publicly give him a ton of credit for it.


Jim Blinn and Ed Catmull will both be speaking next week (March 24th) at the 50 year celebration of the University of Utah Computer Science Department.

https://www.price.utah.edu/ieee-milestone-events#graphics


I remembered a very funny incident sometime ago when I saw Jim Blinn's name in the title.

I had traveled to the US to enable a SoC GPU for a client in California. In my home country, India, good computer science books were a luxury then. So when in the US, I took an opportunity to buy some computer graphics books. Jim Blinn's excellent books were on my list. One of the books was the "Dirty Pixels". During lunch time, I visited a local Barnes and Noble shop to see if I could get the books. I went to the help-desk at the book shop. At the counter there was a young girl, and I enquired about the book "Dirty Pixels". The girl without saying a word immediately went away. I thought she might have gone to check if they have the book in stock. But she returned back with a male colleague. And the guy looked at me in a suspicious way and asked, "Yes, how can we help?". I said, I am looking for a book titled "Dirty Pixels". He gave me a look, and turned to the computer on the desk, typed something and asked, "What is the author's name?". I said, Jim Blinn. He typed something on the computer, and said "There is no such author!" Again giving me a suspicious look. Now realising what might be happening, I said the book is of computer graphics; and the author's name is Jim Blinn with double 'n'. The guy typed in something on the computer again, then smiled and said, "Oh! Computer Graphics! We don't have that book in store." :)


I took an intro to computer graphics class in college in the mid-80s. Was so bummed to find out that it mostly about matrix multiplication (according to my hazy, non math-guy memories). I mean yes I wanted to write software to do graphics, but I wanted to do graphics, not just math. OpenGL was still in the future; maybe PHIGS was around, but I'd never heard of it then. The situation is just so much better these days.


I'd argue that understanding the math, ideally having written it yourself at least once, gives you a massive advantage when using an API later. If you don't understand the math, you might find yourself wondering why certain things don't work as you expect, or copy-pasting code you don't understand from Stack Overflow (or doing enough research to understand the math anyway).

I think a very illustrative case for OpenGL is what's up with all the glPushMatrix(), glPopMatrix(), GL_MODELVIEW and GL_PROJECTION stuff. Do you glTranslatef() or glRotatef() first -- and why does that depend on whether you're moving the camera or an object?

I found all this very confusing, and I'd just try permutations of the calls until things worked, which is a suboptimal way to write software. At some point I decided to really understand what was going on, to the extent that I ended up teaching it (best way to verify if you really understand something!) and even writing about it [0] (even better way?)

TLDR: Even as the user as an opaque API, understanding what's happening under the hood makes you a better user of said opaque API.

[0] https://gabrielgambetta.com/computer-graphics-from-scratch/1...


Or why the operations are order dependant >D


> I wanted to do graphics, not just math.

Much of CG is basically an exercise in linear algebra.


Almost anything technical or even moderately mathematical is an exercise in linear algebra (effectively by design).


My journey in CG began in the 80's at MIT on a Symbolics Lisp Machine. Some fond memories I've recorded here:

https://medium.com/@kaveh808/from-arcmac-to-the-media-lab-22...


Damn, it's basically maths class. I took a graphics class in film school and if it was this there's no way I could have done it. I guess these classes are fundamentally what the software we use today is doing under the hood?


Different subject entirely - computer science graphics class is the class for the people writing the 3d modelling/rendering software, not the people using it. And yeah - the modern versions of this class would teach fairly similar things.


There’s a big difference between a graphics class for engineers and a graphics class for the users of that software. Modern graphics programming is also just basically math, as evident from any good textbook on the subject.


I took a couple computer graphics classes in 2015 as part of my Computer Science degree. I only clicked through a few videos here and the content is very similar.


There was no software to use back then and therefore no way to escape the math.

I'd argue that if you still don't at least understand a bit of the math today, it's still very limiting in spite of the progress the tools have made.


> Damn, it's basically maths class

As an EE, this was our complaint for pretty much every non-lab course :-)


Man that's a lot of facial hair one place.


Jim Blinn is a great guy.


Thank you!


Cheers! Richard Chuang recorded and posted them on YouTube. I saw this on Blinn's homepage (https://www.jimblinn.com/) and I thought folks on HN would enjoy it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: