Category Archives: My Stories

A story from SIGGRAPH past…

I’ve been meaning to write down this story for a while, because it represents a time when I was booed away from a microphone by a crowd of two thousand people, and I always think that stories like this are fun.

Back in 1996, I attended SIGGRAPH in New Orleans. I remember flying out early and arriving somewhere around 7:00AM and being unable to check into my hotel room, so I went down to the French Quarter and had beignets and coffee. It was a wonderful city for one of my favorite activities: eating. Pixar alumnus and foodie Steve Upstill had given out a list of restaurants in New Orleans for me to try, and I don’t think I had a bad meal the entire week. From gumbo to po’boy sandwiches, it was all amazing and delicious.

But back to the conference..

There was a panel that I attended called “Graphics PCs will Put Workstation Graphics in the Smithstonian”. The panelists were:

  • Sam Uselton, from MRJ, Inc. served as organizer.
  • Michael Cox, from S3
  • Jay Tayborg, from Microsoft
  • Michael Deering, from Sun Microsystems
  • Kurt Akeley, from SGI

It was an interesting discussion, with the first two taking the the side of PCs, and the second two, standing up for the workstations. I had been working in scientific visualization at Princeton, and had then been at Pixar for about five years. My own opinions were that economies of scale would eventually destroy the workstation market. I had worked with high end SGI products, as well as workstations such as Stellar/Ardent/Stardent but had also been tracking the developments in the game world, and to me the writing on the wall was clear.

I remember approaching the microphone and asking a question like “Given what we’ve seen with Moore’s law and the increase in capabilities in microcomputers, and the increasing availability of operating systems like Linux and BSD-based systems,isn’t it reasonable to conclude that the same kind of thing will happen in the graphics market?”

I recall that Akeley and Deering tried to answer with something along the lines of “only workstations have the fast buses/high performance memory subsystems/careful and accurate rasterization that is necessary to do real graphics. I didn’t find that answer particularly helpful and tried to ask a followup and…

Was enthusiastically booed away from the microphone. It was really impressive, to have a couple of thousand people heckle you at once.

But in the end… I think that history points out that I was more or less correct. By no means did I contribute to this trend, but I did recognize it at the time, in a way that the majority of professionals at SIGGRAPH largely did not.

1995 was the apex for SGI, with a market cap of over 7 billion dollars. Ten years later, it was delisted from the NYSE because its stock price had fallen to below one dollar, with a market cap of just $120 million dollars. It was effectively bankrupt in 2006.

Sun would take a different path, riding the dot.com bubble up with its server hardware into the year 2000, and then riding it down to destruction. It never really became a big player in graphics.

Meanwhile, nVidia was formed in 1993 by Huang, Malachowsky and Priem (from AMD, Sun Micro and Sun Micro, respectively). In 1999 they released their Geforce board, which brought hardware with a full transform and light pipeline to the consumer market. They would absorb many other players, and became the destination for a lot of talent who had previously been at SGI. It currently has a market cap of about $18.6 billion dollars.

Mind you, nVidia didn’t pursue a strategy driven entirely by consumer products, and Sun and SGI failed not just because of their graphics strategy. But I do think that I what I said was mostly right, and it didn’t take forever for my prediction to come true.

Another press account of the session.

The summary page from the 1996 SIGGRAPH proceedings

Tiny Implementation of Conway’s Life…

I had a few minutes, so I thought I’d try making a graphics demo that runs on the tiny little 0.96″ OLED display I mentioned last week. One of the first programs I ever wrote was an implementation of Conway’s Game of Life, having learned about it from Martin Gardner’s Mathematical Games column in Scientific American. I remember that on my old Atari 400, it took a couple of seconds at least per generation, at a resolution of just 40×20 or so. Because of the limited memory (and small size of the display) I decided a 96×64 resolution. There is just enough memory to handle two full sized bit buffers. With a bit more work, I could make it work at the full resolution of the OLED display, but you need to do some of the updates in place, which makes it a bit harder.

[sourcecode lang=”cpp”]
//
// a tiny implementation of Conway’s Life
// written by Mark VandeWettering (brainwagon@gmail.com)
// https://brainwagon.org
//

#include "U8glib.h"

#define XSIZE (128-32)
#define XSIZE_UINT8 (XSIZE/8)
#define YSIZE (64)

uint8_t current[YSIZE][XSIZE_UINT8] ;
uint8_t next[YSIZE][XSIZE_UINT8] ;

#define MODX(x) (((x)+XSIZE)%XSIZE)
#define MODY(y) (((y)+YSIZE)%YSIZE)

#define ISSET(a, x, y) \
(a[MODY(y)][MODX(x)/8] & (0x1<<(MODX(x)&7)))

#define SET(a, x, y) \
a[MODY(y)][MODX(x)/8] |= (0x1<<(MODX(x)&7))

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);

void
init()
{
int i, j ;
for (j=0; j<YSIZE; j++)
for (i=0; i<XSIZE_UINT8; i++)
current[j][i] = random(256) ;
}

void
setup()
{
randomSeed(analogRead(0));
init() ;
}

void
draw()
{
u8g.setDefaultBackgroundColor() ;
u8g.drawBox(0, 0, 128, 64) ;
u8g.setDefaultForegroundColor() ;
u8g.drawXBM(16, 0, XSIZE, YSIZE, (const uint8_t *) next) ;
}

void
loop()
{
int i, j ;

memset((void *) next, 0, sizeof(next)) ;
for (j=0; j<YSIZE; j++) {
for (i=0; i<XSIZE; i++) {
int sum = 0 ;
if (ISSET(current, i-1, j-1)) sum ++ ;
if (ISSET(current, i , j-1)) sum ++ ;
if (ISSET(current, i+1, j-1)) sum ++ ;
if (ISSET(current, i-1, j )) sum ++ ;
if (ISSET(current, i+1, j )) sum ++ ;
if (ISSET(current, i-1, j+1)) sum ++ ;
if (ISSET(current, i , j+1)) sum ++ ;
if (ISSET(current, i+1, j+1)) sum ++ ;

if (ISSET(current, i, j)) {
if (sum == 2 || sum == 3)
SET(next, i, j) ;
} else {
if (sum == 3)
SET(next, i, j) ;
}
}
}

memcpy((void *) current, (void *) next, sizeof(current)) ;

u8g.firstPage() ;
do {
draw() ;
} while (u8g.nextPage()) ;
}
[/sourcecode]

It works! It initializes the display to random values, and then runs Life. If the display gets boring, just hit the result button….


Fare thee well, Endeavour…

Here in the Bay Area, the Space Shuttle Endeavour did a victory lap, passing over Sacramento, the Golden Gate and many other Bay Area locations. Pixar Animation Studios is in Emeryville, quite close to the Bay Bridge, so I thought we had a pretty good chance of getting a good view. Sadly, all my good camera gear was stolen in our recent burglary, so all I had was my trusty iPad. I positioned myself along with lots of others out in the soccer field, and we caught this (not particularly amazing, but still impressive) view of Endeavour and it’s chase plane heading out toward the Golden Gate.

Fellow Pixarian Chris Walker was apparently at the Alameda Air Station with a better camera, and got much better results.

Endeavour was constructed as the replacement for the Challenger, and flew 25 missions into space, amassing 299 days of flight time in orbit. While digging around, I found this rare glimpse of it docked with the International Space Station, photographed from a departing Soyuz capsule.

Endeavour will find it’s final rest at the California Science Center in Exposition Park in Los Angeles. I’ll have to go have a closer look when it’s installed. Very cool.

How to lose $2400 in 24 seconds… with a story of my own

We have a bunch of photography enthusiasts where I work, and on Friday it is common for people to exchange their photographs and photography-related stories on a local email alias. Today, someone posted a link to this rather tragic video, which reminded me of a story. Go ahead, watch the video.

how to lose $2400 in 24 seconds from Kurtis Hough on Vimeo.

Okay, now the story. It starts somewhat sadly. My mother Beverly suffered a pretty serious stroke in her early fifties. In those early days, she had a lot of problems: with her vision, with her balance, and with periodic seizures. Not a very fun time for her, or for the people who cared for her, and about her. A couple of years later, I started dating my wife Carmen. It was near the holidays (if memory serves) and I decided to take Adam (our son) and her to go visit Mom near the holidays. At that time, she was walking, and we decided on a drive to the Oregon Coast to stretch our legs and enjoy ourselves. With all her hospitalization, she hadn’t been to the beach (which she loved) in several years, and the prospect made her happy.

Here is the thing about the Oregon Coast, particularly in the winter. You have to be a bit careful, because the waves can seem very peaceful and well behaved, but can suddenly go rogue and you’ll find one running a good twenty yards or more further up the beach than you expect. Thus, my Mom always warned me to not turn my back on the ocean: be aware of your surroundings.

Of course, when your mother who has had a stroke is on the beach, your attention isn’t on the waves, it’s on her. And of course that allows the ocean to sneak up behind you.

We were walking along in the moist area of sand where the lapping waves will occasionally cool your feet, and chatting and talking. Adam was running around (I think he was about 11) and having a great time, when I realized something was about to go wrong. A much larger swell was forming and was already too near to avoid. When it contacted us, it was above my waist, a good 4 feet tall. I managed to remain upright, but Mom was knocked off her feet and was floating with the wave (at first somewhat inland, but as the wave quickly reversed itself and began pouring back out to see, she floated toward Japan).

Adam was a hero. He had regained his feat and had reached my Mom pretty much as quickly as I did. We got her back on her feat, and made sure she wasn’t hurt.

She wasn’t. She was laughing. Harder than I had heard her laugh in a great while.

When she recounted this adventure later, she said that until then, she had thought that maybe she wouldn’t have any adventures anymore: that the stroke had taken those away from her. After nearly doing a solo crossing of the Pacific, she decided that if she was healthy enough for that to happen, perhaps there were still some adventures (and joys) to be had.

She didn’t do a lot more ocean voyaging, but she told stories. She painted. She quilted. She made her children laugh. She made her grand children laugh. She even got to see great-grandchildren. She talked to me a lot about cooking. Over the last couple years, her condition got a lot worse. She passed away in July. I miss her.

Losing $2400 in camera equipment seems bad, but I nearly lost my mother. But that’s the strange thing: by almost losing her, I got her back, at least for a decade. I’m glad she found the courage to struggle on, both for her sake and for ours.

For that reason, big waves just don’t seem that tragic to me. 🙂