About

Accounts

Around 10 years ago I was working on a number of personal software projects with a mostly common C++ code-base that had a lot of boilerplate OpenGL and vector classes I'd built up from reading the NeHe tutorials. Some of that work was properly documented and put into source control and madee public, the rest were periodically made into version numbered tarballs. When I finished or lost interest in developing some graphics technique or physics simulation or anything else I would rename the directory to reflect the new project and start on new functionality: some of old was still useful, some of it had to get ifdeffed out, and some just sat unused. Some of those were documented but not open-sourced, and a few of those tarballs were archived in my online home directory. Eventually a lot of the code was superseded by vastly superior open source libraries so it didn't make sense to continue using it, but I would sometimes make backups of the old stuff on DVD and copy them to multiple hard drives as I bought them but with less and less care as time went by.

Fast forward to the present, and reading a section of Planet Google about StreetView, and I started thinking about a particular project where I was driving around Seattle with a DV camera mounted in on the passenger side and a GPS on my roof being logged on a laptop. I'm pretty sure I was inspired by reading about the Aspen Movie Map from the +Howard Rheingold book Virtual Reality.

Some OpenGL software loaded the images extracted from the video and then displayed them on top of a 3D GPS trajectory. It worked fine, but I only did it once and took no screenshots or videos and told no more than one or two people about it. Maybe I thought it was a such a good idea it had to be kept secret until the opportunity to capitalize arose, obviously the opportunity is now long past. But it it still was fun to have done and having it run again would be cool... but I couldn't find it on any of my still running desktop computers or laptops. Eventually I found a 250GB Maxtor drive in a shoebox and plugged it in with a usb-to-sata adapter, and there it was: 700 megabytes of video and images all nicely organized along with scripts and source code. And it compiled: after resolving the SDL dependencies the only thing I had to do was move the ordering -lGL etc. linker options to be after the listing of object files: $(CXX) -o $(PROGRAM) $(OBJECTS) $(LIBS) instead of $(CXX) -o $(PROGRAM) $(LIBS) $(OBJECTS). And it ran fine with ./gpsimage --gps ../capture_10_22_2004.txt --bmp biglist.txt, and with some minor modification to the keyboard controls and the resolution I was able to take screenshots and a video:

Ballard surface streets

Ballard surface streets

Exiting the tunnel to get on the viaduct

Driving south on the 99 viaduct looking west

Implementation

It might be nice to actually check in some of the code to github or something, but for now I'll document the important parts here.

I used dvgrab to extract video from the camera, and converted that to decimated timestamped bmp images. The text gps log which looks like this:

Future

A few other old projects could be revived, though some have more obscure dependencies (paragui and maybe another opengl gui). It's not a high priority but it would be nice to create better records now than wait even longer for more bitrot to set in, and I have a restored interest in low-ish level OpenGL so it would be nice to get refreshed on the stuff I've already done.