No Longer Being A Bum
- Build a laser projector to augment a cloudy night sky. The plan here was to laser project stars, satellites, and other heavenly bodies onto the clouds in Pittsburgh, since nobody would be able to see them otherwise. I don’t think the weather will work for that in the Bay Area, but I could still project onto a ceiling or something.
- Implement a pretty basic portion of Johnny C. Lee’s thesis.
- Add Windows support to the camera module in Pygame. Linux support for webcams is finally being released with Pygame 1.9 fairly soon. Werner Laurensse is working on an OS X implementation for 1.9.1. It would be a bit strange to leave out perhaps the largest portion of Pygame’s audience.
There’s a Mouse in my House (but I’m Smitten with a Kitten?)
I found a baby mouse in my hallway today. I’m not sure how it made it that far from its mother; it was moving pretty slowly. I saw the trail it made through the drywall dust in the partially finished bedroom in our house, so I placed it back in the hole it came out of. I can only hope its mother finds it. As much as I would have loved to take care of it, I live with a wonderful little kitten named Gizmo. He didn’t pounce on the mouse when he saw it, but I don’t see them becoming fast friends…
Things I’m Doing (or Queueing at least)
I am chronically unable to finish projects because I tend to pick up a new one more often than I complete an old one. Here is a list of things I’m currently working on, in no particular order.
- Turning Bridge into a real activity. This means using the datastore, dropping Elements in favor of directly interfacing PyBox2D, and making multiple levels of play.
- Writing a working Panorama activity. Ben Schwartz wrote some excellent autostitching using Numpy; it just needs some camera code to make capturing frames easier and to disable auto white balance and so on. I stuck Ben’s activity in a git repo, and I plan on making my changes soon.
- Commiting the rest of my GSoC project to Pygame SVN. I committed everything but the actual camera module so far. At the very least, I need to set up a build environment in Windows and make sure that the camera fails gracefully, since it only supports v4l2 at the moment. Before Pygame 1.9 is released though, I plan on writing VFW and maybe Quicktime support.
- Writing an Augmented Reality Game (ARG?). Augmented Reality is pretty much the holy grail of computing for me. I played around with ARToolkit a bit, but I really want to get into it when I have more time.
Of course, in addition to that, there is attempting to find a job, taking care of my kitten, finishing moving into my house, and loads of schoolwork. The schoolwork is mostly interesting though. It currently consists of writing object classification and image seam carving in Matlab, coming up with screenplay ideas, and playing with a Gumstix board. I’m also going to be starting some computer vision research with Professor Martial Hebert of the Vision and Mobile Robotics Laboratory at the Robotics Institute. More on that when it happens…
The Summer of Nirav
I was heading towards a Summer of George, with full autonomy and empty schedules, but like all Summers of George, this one ended before it started. Due probably to a lack of self esteem on my part, I abruptly ended up with two opportunities of a lifetime at the end of the semester. I don’t need to wait until the end of summer to retrospectively observe that I made a rookie mistake here by not choosing between them.
This summer, I’m writing a computer vision library for pygame via One Laptop Per Child via Google Summer of Code. The admittedly terse and vague project description is at Google Code. This is the culmination of the comparatively primitive vision experiments I’ve been documenting on this website (or is it the culmination like the tip of an iceburg?). Anyway, the plan is to start with adding v4l2 support to pygame, pulling frames from the camera buffer as surfarrays. Next up is adding any vision functions to pygame.transform that could be useful for gaming purposes: connected components, thresholding, centroids, optical flow, convolution, etc (I’m taking requests, if there is something else you want). Finally, I’ll make a simple example program that uses as many of the functions as possible. Apparently a lot of people are interested in using webcams in pygame, so this should be a good project. I’m also going to learn probably more than I ever wanted to about v4l2 drivers, python, and matrix operations.
This summer, I’m also doing tech consulting with the Ministry of Health in Palau via Tech Consulting in the Global Community, a program of TechBridgeWorld. I don’t yet know the full details of what my colleague and I will be doing, but we will be helping several people in Palau use technology to solve their problems in a way that is sustainable in the long term (awkwardly bludgeoning buzzwords). This consulting happens to take place in one of the most beautiful countries in the world. This consulting also happens to take place in a country with less bandwidth than the average dorm room.
Until then, I’m decompressing as much as possible for the time wedged between school and life.