Author Archives: Eric

Stuff from SIGGRAPH 2013

Your one-stop shop for SIGGRAPH 2013 links is brought to you by the inestimable Stephen Hill: go here now.

My small contribution to the cause is hosting the talk “Unity: The Chase – Pushing the Limits of Modern Mobile GPU“:

I had a good SIGGRAPH myself. Talked with lots of people, saw some worthwhile presentations. My favorite was Marco Salvi’s, about PixelSync. “Programmable raster ops” doesn’t sound like a big deal on the face of it, but Marco’s talk pointed out all sorts of interesting uses: RGBE encoding, voxelization, and a bunch of others. His slides should be up on the “Advances in RTR for Games” site soon. In the meantime, there are blog entries here, here, and here – all with demos and more.

Faster Forward and more

SIGGRAPH 2013: if you’re going, or even if you’re not, here are a few nice resources.

  • This PDF has the first page of all the papers at SIGGRAPH 2013. Faster Forward!
  • This page has information on all the events (other than parties), suitable for direct view or import into Google Calendar. If you grabbed these before today, grab again: the BOF calendar now has Wednesday’s events.
  • To save you a little searching, here’s the schedule at a glance, the advanced program, and the free scheduler app on the SIGGRAPH site.

Oh, and there’s probably a good party list somewhere, but in lieu of that, this link.

“Interactive 3D Rendering” is finally complete!

Short version: the Interactive 3D Graphics course is now entirely out, the last five units have been added: Lights, Cameras, Texturing, Shader Programming, Animation. Massive (22K people registered so far), worldwide (around 128 countries, > 70% students from outside U.S.). Uses three.js atop WebGL. Start at any time, work at your own pace, only basic programming skills needed. Free.

That’s the elevator talk, Twitterized (well, maybe 3 tweets worth). I won’t blab on and on about it, just a few things.

First, it’s so cool to be able to show a student a video, then give a quiz, then let them interact with a demo, then have them write some code for an exercise, all in the browser. Udacity rocketh, both the web programmers and video editors.

Second, I’m very happy about how a whole bunch of lessons turned out. The tough part in all this is trying to not lose your audience. I think I push a bit hard at times, but some of my explanations I like a lot. Mipmapping, antialiasing, gamma correction – a number of the later lectures in particular felt quite good to me, and I thought things hung together well. Shhh, don’t tell me otherwise. Really, it’s not pride so much; I’m just happy to have figured out good ways to explain some things simply.

Third, I wrote a book, basically: it’s about 850 full-sized pages and about 145,000 words. It’s free to download, along with the videos and code. I think of this course as the precursor to Real-Time Rendering, sort of like “Star Wars: Episode 1”, except it’s good. I should really say “we wrote a book”: Gundega Dekena, Patrick Cozzi, Mauricio Vives, and near the end Branislav Ulicny (AlteredQualia) offered a huge amount of help in reviewing, catching various mistakes and suggesting numerous improvements. Many others kindly helped with video clips, interviews, permission to show demos, on and on it goes. Thanks all of you!

Fourth, I love that the demos from the course are online for anyone to point at and click on. Some of these demos are not absolutely fascinating, but each (once you know what you’re looking at) is handy in its own way for explaining some graphics phenomenon. The code’s all downloadable, so others can use them as a basis to make better ones. I’ve wanted this sort of thing for 16 years – took awhile to arrive, but now it’s finally here.

Fifth, working with students from around the world is wonderful! I love helping people on the forums with just a bit of effort on my end. Also, I just noticed a study group starting up. I’ve also enjoyed seeing contest entries, e.g.,  here are the drinking bird entries, click a pic to see it in WebGL:

 

What’s making a MOOC itself like? See John Owens’ excellent article – my experience is pretty much the same.

A close-up in the recording studio, my little world for a few weeks:

Please stop revealing this “dirty little secret”

OK, this post is most definitely non-graphical, but I need to rant a bit.

While I wait for the last few elements of the MOOC I worked on to be released, I’ve been reading various opinions on MOOCs. Here’s the one theme that drives me crazy on a number of levels:

One of the dirty secrets about MOOCs — massive open online courses — is that they are not very effective, at least if you measure effectiveness in terms of completion rates.

That’s from a NY Times article, which is otherwise fairly positive. I’ve seen this opinion expressed a number of times elsewhere, and it’s meant as a serious critique or a dismissive gesture. From what I’ve read, it’s true that the completion rate is around 5% to 15%. However, it’s an apples to orangutans comparison to equate this with completion rates at colleges. Here are just a few obvious explanations.

The barrier to entry is low: “So, people who pay, or whose parents pay, $500 to $5000 per course are more likely to complete that course than those who pay $0? Shocking!” Say I have two computer programs I could use for a task. One costs $0, one costs $5000. I’ll certainly look at the $0 option first. If I paid $0, no big deal if I stop using the program. $5000, and I definitely am committed to use the program in a serious way, I want to get my money’s worth so I’ll make sure I need it and use it. But, really, this kind of misses the point. No one’s really weighing today’s MOOCs vs. traditional college curricula, for one obvious reason:

You’re getting just knowledge, not course credit or a QPA, nor even any parties: There’s a huge group of people ages 18-22 that go to college. They’re all there to get a degree, along with an education. Take away the degree aspect and most parents are not interested in plunking down the cash. Even alternatives such as Hampshire College produce an elaborate transcript for their students and some “proof of learning”. Take away the “meeting other students” aspect and that removes a significant aspect of the college experience for students: no dorms, no sports, no clubs, no parties, on and on. Comparing MOOCs with colleges is just silly. The main question that should be asked is “how do various MOOC techniques fit in with college education?” Flipped classrooms is the obvious one, and so how else can college education be improved? We don’t make every faculty member write their own textbook for each course they teach. What improvements can be gained by sharing more elaborate forms of media and interactivity for education? Articles such as this help.

Students who finish want to be there: That’s the dirty little secret of MOOCs. People are taking them because they want to, not because they have to. The main motivator is, “I want or need to know about this subject.” Since sign-up is free, there’s then all the things that will whittle down that number: “I was just curious what the course looked like” (there’s a huge percentage, maybe 40%, that never take a single class), “I thought it’d be fun, and it was at first, but then it got hard”, “I already knew most of the material”, “I learned the bits I wanted to know and never bothered to complete the course”, “the lecturer was boring/the course disorganized/the materials poorly presented/etc.”

I could go on, but I think you get the idea. The completion rate is a distraction and misses much of interest. It makes for an attention-grabbing fact but not much else. If you think about it, it would be downright bizarre if a free course open to all had a 90% completion rate. That would be the most amazing course ever, that it would be so compelling to almost everyone that signed up for it.

A MOOC can be thought about in another way. What if you told a professor, “every student taking your class is there because they want to be there, they want to know what you have to teach them”? That would be a dream come true. My humble course has 22K signups currently (many “name-brand” MIT, Stanford, and Harvard-backed online courses have over 100K students). Say just 1100 (5%) complete the course, and just 220 (1%) really loved the subject. 220 inspired students? I’ll take it! Heck, I’ll take 22. That may well be more truly inspired students than many teachers get a chance at in their careers. That’s a major reason many professors are excited by MOOCs and push to get their courses online through their universities. Getting messages from students such as, “in my country I think we don’t have schools making this kind of Course” is certainly fulfilling for me.

“Processing” course from Andrew Glassner

Processing” is a Java-based language that has many built-in 2D drawing functions. It gives you all sorts of artistic control of what’s put on the screen. Andrew Glassner is now teaching an online course all about it:

Course page

Even if you don’t sign up for the course, you owe it to yourself to visit just for the eye candy, both the works at the top and the video itself. “Processing” could be the worst name for a language ever (try Googling it, for example), but it also produces some of the most lovely results with just a few lines of code. I played with it – fun! It’s also a great first programming language for non-programmers.

This course costs actual money, and I’m betting it’s worth it. Andrew is one of the best computer graphics lecturers out there. He’s also a bit of a perfectionist when it comes to the quality of his presentations. He wrote a book about Processing, so knows his subject extremely well and knows how to teach it. Finally, as part of the class, he’ll (and this blows my mind) create a video each week for each student of expert, personalized feedback on their work. What?!

It’s sort of a funny thing to have MOOCs get most of the attention lately. Online courses that cost money have been around for some time. Paying money makes a certain sense from a commitment standpoint, both on the part of the student and the teacher. If you seriously want to learn Processing (and along with it, the principles of 2D modeling, rendering, and animation) and value your time, this looks like a great place to go.

Processing screenshot, from Wikipedia:

490 links for 70 days

I like to give 7 links for a day, but I’ve been busy the past half year or so with the interactive 3D graphics MOOC. In two days the second half of the course will roll out, and I’ll blab about that later (in, like, two days). In the meantime, here are 490 links for the half year I’ve been missing. Basically, it’s the Instructor Notes for a bunch of the lessons in the course, additional material and links relevant to the subjects. I admit it, there are a lot of weaksauce links in there, basics for beginners and pointers to Wikipedia this and that. But there are also some great things in there.

Hey, let’s turn this into 7 great links (use Chrome or Firefox to view them, or enable WebGL in Safari):

I know there are a bunch more links in the Instructor Notes that are worthwhile (things like the GLSL shader validator plug-in for Sublime Text 2), but these particular ones stuck with me.

I did get to visit the shrine one morning while in Mountain View recording:

“Game Development Tools 2” CFP

Marwan Ansari has put out a call for participation for “Game Development Tools 2”. Proposals are due July 1, for publication around SIGGRAPH 2014. Among other things, Marwan’s the author of some wonderful (old but still useful) comprehensive articles on GPU image processing, freely downloadable in the “ShaderX^2 Tips and Tricks book”.

You can use Amazon’s Look Inside feature to see some of the first book in the “Game Development Tools” series, and the demos for the first book are also available.

SIGGRAPH 2013 Papers and Hotels

If you want to see the list of SIGGRAPH 2013 papers, see Kesen’s site (well, just a start – more coming as they leak out).

If you want to reserve a hotel spot, go here now. It’s free, no deposit or loss if you cancel in time, so I recommend doing so if there’s the slightest chance you’ll go.

(Oh, and if you’re more a GDC fan, happening this week, try watching Twitter, though people haven’t been tagging religiously.)

Dinner Bell, Dinner Bell, Ring!

OK, the obscure title can mean any of the following:

After a few months of writing lessons, I’m entirely in the mode of “how can I make a question or exercise out of this lesson?”

As of yesterday I think of the course as “outta beta”. There are some minor glitches we’ll fix in the weeks ahead, but now all the major stuff is in place. The thing that’s entirely great is that everything about the course is downloadable (thank you, Udacity). All the videos, for example, which is a big help to people with slow or censored YouTube connections. Here’s the rundown:

  • Videos are available in unit-sized chunks.
  • Code is all githubbed here, and there’s a zip download. Unzip and run the index and they’re all there (except solutions).
  • All my lesson scripts are here, and there’s other good stuff on the wiki page there. Tallied up, the first half of the course, in five PDFs, comes out to 367 letter-sized pages (admittedly a lot of figures, but that’s A Good Thing). Jeez, I’m writing a book. With code. And videos.
  • I put the demos (and exercises, but not solutions) up here. Click and you’re running a demo. This is just the github distribution uploaded to our site. I’ll make a guide to all the demos once the course is done; some of these are pretty handy for explaining things, once you know what you’re looking at.
  • All lesson instructor comments are here. Some lessons have additional information and links to resources. Rather than have to search through all the lessons for that link you saw somewhere, they’re all here.

Entirely unrelated, but here’s the cool three.js link for the day.

I heart procedural modeling, I don’t heart Apple’s driver bug that makes it so WebGL can’t use antialiasing.

MOOC Expelliarmus

I spent a few minutes last week skimming through my unread stack of “Communications of the ACM” (CACM) – they were piling up. I enjoy the lighter articles for the most part, especially those on copyright and patent issues. The more serious articles would probably do me good to read, but no time, no time.

One bit that caught my eye: “Will MOOCs Destroy Academia?” A MOOC is a massive open online course, e.g., I’m working on one (I think there were about 15,000 sign-ups for it as of last month). I’d summarize the article as: “college courses where the professor lectures to all are ineffectual and costs are soaring [his words, not mine], but MOOCs are popular only because they’re free, and a Cambridge don says universities are critical to civilization”. His concluding sentence was particularly surprising to me: “If I had my wish, I would wave a wand and make MOOCs disappear, but I am afraid that we have let the genie [out] of the bottle.” The word “out” is in the on-line HTML and PDF versions, but not in the original print magazine. I guess the internet is good for something, though clearly not education, by the author’s estimation.

The author, by the way, is the Editor-in-Chief of CACM; I sometimes disagree with his views, but usually appreciate that some thought has been put into his opinion pieces. This time the research appears to have been the book “What Are Universities For?” and the Bible. I was cheered to see some reasonable replies.

For a CACM article with much more chew and nuance, see “Reflections on Stanford’s MOOCs“. This article is worth your time if you’re interested in a survey of various combinations of education and the internet for teaching computer science.

Me, I’m happy to see it’s possible to teach (in any form) using three.js on top of WebGL – click a link and you’re taken to a demo, or code you can edit and run in the browser. Try it now, if you want: for three.js demos, go to the three.js page and click on any appealing thumbnail (caveats being “use Chrome” or “enable on Safari” – see this worthwhile page if you have problems). For code in the browser, try here or any of these. For WebGL demos, some of which are wonderful, see webgl.com. And there are great things out there beyond these, I’ll cover more here once I have the time. A few days back Steve Worley pointed out this amazing thing, a classic tile terrain renderer, all in a web page.

This all couldn’t have been done at all two years ago – WebGL was officially released on March 3, 2011. This is great news for anyone teaching graphics, either online or in the classroom (or both).

Becoming a computer graphics programmer is something I consider as much an apprenticeship as a set of college courses. That’s how I felt as I began to be one at Cornell back in 1983-85. The Masters program in the Program of Computer Graphics was officially one 18 credit course each semester (and summer), along with “take a minor”. It was essentially “live and breathe graphics” for two-plus years. Teenagers in the demoscene have similar experiences, I expect.

I ran across a great quote from Confucius, which I’ll probably use at the end of the MOOC, “Every truth has four corners: as a teacher I give you one corner, and it is for you to find the other three.” This fits my view of computer graphics: you can be given a foundation in the subject, but it’s mostly up to you to learn by doing and pursuing knowledge (Confucius probably meant something entirely different). The fact that you can now do this on your own with a PC and enough self-motivation and online support I find wonderful (take the creator of three.js, for example).

Going to a college or university and learning from a good teacher and working with other students is fantastic stuff; I consider myself fortunate to have been able to do so. There are great professors and programs out there. Even humble basic courses (such as mine) are a boon, as they can expose and motivate some students to get involved and find their passion. However, the field of computer graphics (unlike, say, genetics, where you can’t currently buy a DNA sequencer for $25, but can buy a GPU for that) is quite accessible even if you can’t commit to being a full-time student.

So, back to doing my little bit to help destroy universities because, you know, that’s just the kind of guy I am. Honestly, I think MOOCs have their place, and my own vision of the future is one where professors can grab chapters, videos, githubbed code and so on to supplement their courses, and they can make their own creations available to others. They can say “take this MOOC over the summer and come back in the fall ready to go,” so that everyone has a baseline understanding.

Committing nowadays to a single textbook, for example, seems archaic. Few people have the time to write a whole book, so there are only so many to choose from and each has chapters a teacher will not use, either for time or for dislike of the author’s approach. However, plenty of people can write a short article explaining mipmaps or scaling matrices or other topics, and a few of them will be superb. Sites with educational content such as RedBlobGamesAlgoViz.org, and Online Python Tutor are signs of how things can be (BTW, I learned of those URLs from the useful CACM article). Mixing and matching among these resources allows engaging and powerful new tools for teachers and students.

Behold your doom, universities