In 1985 I brought home a new shiny Commodore Amiga 1000, about one week after
they were released. Coming with a whopping 512K of memory, programmable
colormaps, a Motorola 68K CPU, and a modern multitasking operating system, it had
“awesome” writ all over it. Metaphorically speaking, of course. I thought it might
make a good platform for an astronomy program, as I could now control the colors of
those star-things instead of having to settle for a lame fixed color palette forced upon
me from the likes of Hercules or the C64. So I coded up a 24-line basic routine to
draw a random star field, turned out the lights, and thought, “Wow! I bet I could write
a cool astronomy program for that thing!” Twenty-six years later I am still working on
it and hope to get it right one of these days. Back then my dream device was
something I could slip into my pocket, pull out when needed, and aim it at the sky to
tell me what stars or constellations I was looking at.
It’s called a smartphone.
I thought of it first.
As good as these things are for playing music, making calls, or slinging birdies at
piggies, it really shines when you get to the 3D stuff. After all, 3D is all around us—
unless you are a pirate and have taken to wearing an eye patch, in which case you’ll
have very limited depth perception. Arrrggghhh.
Plus 3D apps are fun to show off to people. They’ll “get it.” In fact, they’ll get it much
more than, say, that mulch buyer’s guide app all the kids are talking about. (Unless
they show off their mulch in 3D, but that would be a waste of a perfectly good
So, 3D apps are fun to see, fun to interact with, and fun to program. Which brings me
to this book. I am by no means a guru in this field. The real gurus are the ones who
can knock out a couple of NVIDIA drivers before breakfast, 4-dimensional hypercube
simulators by lunch, and port Halo to a TokyoFlash watch before the evening’s Firefly
marathon on SyFy. I can’t do that. But I am a decent writer, have enough of a working
knowledge of the subject to make me harmless, and know how to spell “3D.” So here