Brad A. Grantham
I work at ARM in the Media Products Division.
I worked on the
handheld computer with other members of the Alice Group.
This battery-powered device uses a dual-core ARM CPU and an FPGA to run old SGI graphics demos interactively
including tilt and touchscreen.
I worked on the
CP/M retrocomputer computer with other members of the Alice Group.
An ARM Cortex M4 serves I/O requests, a Propeller serves VGA, and
a Z80 runs CP/M 2.2.
Calculate Battery State of Charge (mobile friendly)
Here's the GitHub repo for a simple interactive GLFW sample that draws a polyhedron with trackball manipulation.
- A long time ago, a bunch of friends and I ported BSD UNIX to the Mac II.
We called it "MacBSD". Our code formed
the basis for the mac68k port of NetBSD.
In my spare time many years ago (1999?), I built a tristripping API called
which is being used by Lawrence Livermore in a visualization
system and by Digital Anvil in game authoring tools, among
other projects. Before that, I wrote a less flexible
tristripping API called Meshifier, used by Ubisoft to
create models for their game Ultimate Golf; ACTC fixes
several problems in Meshifier and provides a better API.
and I worked for many years on a Z80 homebrew computer that we
called the Alice II. We created some
documenting our adventures.
Some Personal Writing
- My experience transitioning to Boost::shared_ptr
(Feb 3rd, 2010)
(Feb 6th, 2009)
Performance and Participation
(Apr 7th, 2008)
Voice-over-IP to Amateur Radio Bridging
(Mar 4th, 2008)
- Geodesic Domes
(October 1, 2006)
- My pictures from Burning Man 2005
My first Burning Man (see also burningman.com)
(September 18th, 2004)
My experience with Lexapro, a prescription antidepressant.
(August 15th, 2004)
Back of the Envelope Calculation
(October 25th, 2000)
Out and About
At Burning Man 2006 through 2013, I camped with the Karma Chickens.
I played drums in 2012 for Suicide Poodles, a classic rock cover band.
In 2005, with my friends and colleagues David Shreiner and Alan Commike, I filed
describing a multithreaded, multipipe media player. The
implementation was capable of playing a uncompressed "quad
HD" movie (3840 by 2160 pixels) directly from a RAID array of
fiber channel SCSI disks. (The target was the Sony SXRD 4K digital projector, which had four inputs, one for each quadrant.) It was a pretty large
chunk of code using OpenGL, OpenML, pthreads, and C++. I was kind
of proud of the code; it was my first large-scale threaded
application. It ran under IRIX 6 and the SGI version of Linux
that ran on Itanium. It was, however, not user-friendly and required
a pair of full-height racks of equipment. If I
remember correctly, Sony declined to work with us after we provided a
single demonstration of the technology streaming a short film.
A few years later, Sony demonstrated the same
projector with a "media block" which was essentially a PC streaming
JPEG2000 compressed images to the projector.
Around 1997, I was peripherally involved in
describing a scene graph called Cosmo3D. I think I was just
basically the last person remaining at SGI who had worked on the
thing at the time. Cosmo3D had features from IRIS Performer
promoting performance and features from Open Inventor promoting
ease-of-use and editing. (Says it was filed in 2001? What was the
delay? I had quit SGI by 1999.) Cosmo3D was quite slick but
never saw any real adoption by the industry or even promotion by
SGI. (Not to be confused with Cosmo Worlds, a VRML viewer.)
I appeared briefly in the movie
playing Richard Stallman's "Open Software Song" with "The Gnu Stallmans".
Because of that, I have an entry
on IMDB, the Internet Movie Database
Back in college, my friend Lawrence and I competed with each
other to write the shortest program that would ray-trace
shaded spheres and provide an ASCII art image of the result.
a web page
describing our competition. The programs are very ugly and illustrate
some things you may not know can be done in the C programming language.
I organized and moderated a panel called
"When Will Ray-Tracing Replace Rasterization?" at
I joined Dave Shreiner
in courses at SIGGRAPH 2002, 2003, and 2004 on "Performance
Neal Tringham fixed my old
stripping code and used it to create an online optimization
tool. Models in Ultimate Golf by Ubi Soft were processed with
that tool. (I recommend using my
package, mentioned above.)
I presented part of and wrote part of the course notes for the
SIGGRAPH '97, '98, '99, and '00 full day course called Advanced
Graphics Programming Techniques with OpenGL, and also the SIGGRAPH
'99 Lighting and Shading Techniques for Interactive Applications
|You can send mail to email@example.com.|
This page was last changed on
Tue Jan 7 10:03:18 PST 2014