Ian Buck

I have completed my Ph.D. at Stanford and currently work at NVIDIA
LinedIn Profile: http://www.linkedin.com/pub/ian-buck/15/13/192
Contact Info:
2701 San Tomas Expressway
Santa Clara, CA 95050


BrookGPU is a compiler and runtime implementation of the Brook stream programming language which provides an easy, C-like programming environment for today's GPU. As the programmability and performance of modern GPUs continues to increase, many researchers are looking to graphics hardware to solve problems previously performed on general purpose CPUs. In many cases, performing general purpose computation on graphics hardware can provide a significant advantage over implementations on traditional CPUs.


WireGL_logo WireGL is a distributed network graphics driver for driving OpenGL applications seamlessly across a PC rendering cluster. It allows for unmodified graphics applications to render to large tiled display or for a parallel graphics application to merge independent graphics streams into a single output. Some of its other features include: State and Geometry bucketing which is the ability to send only primatives and state commands to servers which will render them; Software context switching which allows for multiple graphics contexts to share a single hardware context with the switching done in software; Scalability up to 32 rendering nodes. This work is being done with Pat Hanrahan, Greg Humphreys, and Matthew Eldridge.

Animated Teleconferencing

Teleconferencing Demo My undergraduate thesis at Princeton University explored the fesability of doing real-time teleconferencing with animated characters instead of live video. Transmitting live video over the web presents a host of problems given the limited bandwidth of the internet. This project demonstrated that you can use a small assortment of hand drawn images and which can be morphed to match the user's expression in real-time. This required implemented a high speed facial tracker, the development of a image morphing algorithm, and a facial classifier to determine user expression. All of these tasked were performed in 1/30 of a second. This work was done at Princeton University with Alison Klein, Adam Finkelstein, David Salesin, Richard Szeliski, and Chuck Jacobs.

Hardware Nintendo

Nintendo Tennis My interests in hardware design, especially in graphics, led me to do a semester of independent work on graphics consoles. Hardware Nintendo was a project which I designed and implemented a hardware design of a 1985 Nintendo game console which included the MOS 6502 processor and Picture Processing Unit. The image shown above of Nintendo Tennis was created by letting the hardware simulation software run overnight executing over one million instructions to generate the splash screen. The project included all the steps of hardware design from register-transfer to actual VHDL coding.


Stream Computing on Graphics Hardware

Ian Buck

Ph.D. Thesis

Stanford University

Brook for GPUs: Stream Computing on Graphics Hardware

Ian Buck, Tim Foley, Daniel Horn, Jeremy Sugerman, Kayvon Fatahalian, Mike Houston, and Pat Hanrahan

Proceedings of SIGGRAPH 2004

Los Angeles, California. August 8-12, 2004.

A Toolkit for Computation on GPUs

Ian Buck, Tim Purcell

Chapter 37, GPUGems: Programming Techniques, Tips and Tricks for Real-Time Graphics

Published March 2004

Merrimac: Supercomputing with Streams

William J. Dally, Patrick Hanrahan, Mattan Erez, Timothy J. Knight, François Labonté, Jung-Ho Ahn, Nuwan Jayasena, Ujval J. Kapasi, Abhishek Das, Jayanth Gummaraju, and Ian Buck

SuperComputing 2003

Phoenix, Arizona, November 2003

Ray Tracing on Programmable Graphics Hardware

Tim Purcell, Ian Buck, Bill Mark, Pat Hanrahan

Proceedings of SIGGRAPH 2002

San Antonio, Texas. July 22-26, 2002.

WireGL: A Scalable Graphics System for Clusters

Greg Humphreys, Matthew Eldridge, Ian Buck, Gordon Stoll, Matthew Everett, and Pat Hanrahan

Proceedings of the SIGGRAPH 2001

Los Angeles, California. August 12-17, 2001.

Tracking Graphics State For Networked Rendering

Ian Buck, Greg Humphreys, and Pat Hanrahan

Proceedings of the 2000 Eurographics/SIGGRAPH Workshop on Graphics Hardware Conference

Interlocken, Switzerland. August 21-22, 2000.

Distributed Rendering for Scalable Displays

Greg Humphreys, Ian Buck, Mathew Eldridge, and Pat Hanrahan

SuperComputing 2000

Dallas, Texas. November 4-10, 2000.

Performance-Driven Hand-Drawn Animation

Ian Buck, Adam Finkelstein, Charles Jacob, Allison Klein, David H. Salesin, Joshua Seim, Richard Szeliski, Kentaro Toyama

The First International Symposium on Non Photorealistic Animation and Rendering

Annecy, France. June 5-7, 2000.

Animated Teleconferencing: Video Driven Facial Animation

Princeton University, Department of Computer Science, B.S.E. Undergraduate Thesis.

Accepted June, 1999.

Selected Talks

Brook for GPUs

SIGGRAPH 2004 Paper Talk

August 12, 2004

Data Parallel Computing on Graphics Hardware

Graphics Hardware 2003 Panel: GPUs as Stream Processors

July 27, 2003

Programmable Graphics Hardware

Invited Talk, Lawrence Livermore Labs

August 30, 2002

Tracking Graphics State for Network Rendering

Graphics Hardware 2001: Paper presentation

August 22, 2000