John Spitzer, the Graphics Guy

CS alumnus John SpitzerRice University CS alumnus John Spitzer (B.A. ’88, M.C.S. ’90) has always held a fascination for graphics. He said, “I started my education in 3D graphics with Computational Geometry taught by Joe Warren, one of the leaders in the field. Learning about b-splines, Bezier curves and the Bernstein basis really whet my appetite for 3D graphics rendering.”

From the earliest days of video games, Spitzer had been an ardent fan. “Much of the money I made mowing lawns around my parents’ house in suburban Houston was spent in the arcade playing games like Asteroids, Defender and Tempest. So it was only natural that I wanted to get into game development as a profession.

“But in the 80s, the game industry was still quite nascent – especially in the US – with a lot of development being done out of people’s garages. Furthermore, it was all 2D – which can be fun to play, but not so exciting to program. That all changed when id Software came out with Wolfenstein 3D. The lead programmer on that game, John Carmack, can largely be credited with bringing PC gaming into the third dimension.“

But Wolfenstein 3D did not shake the gaming world until four years after Spitzer graduated from Rice, so he focused on computer graphics at IBM, developing drivers and performance benchmarks for OpenGL. OpenGL is an application programming interface (API) for rendering 3D objects, and fully leverages hardware graphics acceleration when doing so.

Spitzer spent 11 years honing his skills in OpenGL and 3D hardware acceleration at IBM, Silicon Graphics Inc. and 3D start-up Raycer Graphics. In 1999, Spitzer decided to make the leap to industry underdog NVIDIA which at the time had only 300 employees. “At its very essence, my job was – and still is – to help game developers make the most out of GeForce, NVIDIA’s line of gaming GPUs (Graphics Processing Units),” he said.

Spitzer would travel the world conducting hands-on training events where game developers could learn how to best make use of the latest GPU architecture and its new features.

He said, “First we’d demonstrate how to create fire, or water, or blood and guts. Then we’d hold contests to see how fast or creatively the developers could solve a particular problem using the new technology. It was fun and educational for our game development partners, but it also gave us insights as to how the programmers measured up against each other. That helped guide us in determining who we wanted to work with – and just as important, who we didn’t!”

In 2003, Spitzer had the chance to set up a training event in Moscow, and the depth of 3D programming talent astounded him. He was so impressed that he moved there of his own volition and spent the following six months trying to convince NVIDIA’s executives to set up shop in Moscow.

Spitzer said, “I’d met this bunch of really talented engineers doing great 3D tech. They were so incredibly passionate about 3D rendering – many of the programmers hadn’t been paid by their employers in months but continued simply because they loved the work. The intellectual capital there was staggering and I couldn’t imagine walking away from that once-in-a-lifetime opportunity.”

His campaign to open an office in Moscow paid off and Spitzer was finally approved to create a design center there. Over the following eight years, the NVIDIA Moscow office grew steadily, outgrowing one office after the next. “With over 200 engineers now, the office has become one of the crown jewels of our organization,” he beamed.

Spitzer returned to the U.S. to focus on launching the company’s gaming platform – GeForce Experience. Not only did he direct engineering on the project, but he also pioneered its “Optimal Playable Settings” algorithms for which he was awarded a half dozen patents. Optimal Playable Settings ensure that a game’s in-game parameters (e.g. texture quality, shadow quality, etc.) are set appropriately for a gamer’s PC configuration (e.g. GPU, CPU, monitor) to yield the optimal balance between performance and image quality.

The latest NVIDIA GPUs have thousands of processing cores on each chip, which make quick work out of 3D graphics rendering, including calculations that simulate lighting, shadows and reflections. But it turns out that these cores can do much more than just games – they can also greatly accelerate general parallel algorithms.

Spitzer said, “Our CEO, Jen-Hsun (Jensen) Huang, had a vision to be so much more than a graphics chip company. The GPU is what’s behind the latest advances in AI (Artificial Intelligence). Chances are that whatever speech recognition or language translation service you use, a large part of it was trained on GPUs due to their efficiency in performing parallel computations.”

Spitzer readily admits he was initially skeptical about the company’s altered course, due to the cost associated with adapting NVIDIA GPUs for general purpose computing. He said, “Adding general programmability to our GPUs made them significantly more complex, which extended their development schedules, and ultimately pushed out their release by weeks, sometimes months. But it turned out that Jensen was right – and our GPUs now have value far beyond entertainment. In fact, researchers around the world are using them to make the world a better place – to identify hidden pockets of natural gas, to predict hurricanes, to even find a cure for cancer.”

Now Vice President for NVIDIA’s Worldwide Developer Technology team focusing on PC Gaming, Spitzer says a good day is when he learns something new.

“I’m an intensely curious person and I love learning new stuff. Since I’m working with some of the world’s smartest people, I fortunately have the opportunity to learn new things all the time,” he said.

Though it’s outside his professional focus at the moment, Spitzer enjoys thinking about self-driving cars. “How do we take visuals provided by cameras combined with depth provided by LIDAR, analyze the input data to identify nearby obstacles, pedestrians and vehicles, and then correctly place them all into a 3D map of the road and surrounding environment?

“And assuming you can do all that, what needs to be done with the steering wheel, accelerator and brake in order to safely move your passengers to their destination? Can this be solved with a neural network? Or multiple neural nets? What kind? And how do you get the data to train it? There’s so much to learn!”

In fact, Spitzer considers learning to be a life-long challenge. He said he discusses it with job applicants he meets and recommends it to current and prospective CS students.

“You’ve got to be constantly learning. You owe it to yourself and your family to maintain a relevant skillset. Increasing your knowledge keeps you marketable, but it also keeps you humble. The more you learn, the more you realize you don’t know much at all.

“Our CEO is a voracious reader and good listener, and I try to be as well. I’m lucky enough to work with brilliant colleagues and business partners and I love learning from them all.”