So many projects! So little time!
The PC2 clone has been temporarily named PC3 (or PC Cubed, if you prefer), until a better name can be found for it. Also, I wrote up a little script that will do approximately what PC2 does, but optimized for a classroom environment.
Michael pulled together his resources and built a system as per the XKCD cloud watching experiment. This is the topic of today’s story, which is a true story, and covers some of the technical details.
I got my hands on a wiimote, so I’m working on building a game that uses head tracking. I think I’ll use OGRE, if I can get it to work, which is proving remarkably difficult.
The FRC Vision project is progressing. Last Saturday Michael and I sat down and ironed out a large number of bugs in it. This topic is also touched on in today’s story.
I’ve referred to today’s story a lot. Today’s story is actually a true story (names are changed, though). So far it tells of a girl who’s trying to escape her boring eighth period off, a man who just wants lunch, and a boy who’s searching for true love and happiness.
The cool thing is that each of the three days is written from the perspective of someone else. Bonus points if you can map the day’s perspective to a real person. You also have to map the perspective to a character for full bonus points.
Day 1 (Friday, perspective A)
“Do you have a purple shirt?”
“Yes.”
“Do you know where it is?”
“Yep.”
My mother wished me to have a good day. She was worried about the clash between my sky blue shirt and my purple dress. Normally I’d be worried too, but I didn’t particularly feel like wearing a purple shirt today - that’d be way too much purple.
I decided that maybe I should have gone through the effort to find my purple shirt when the first thing my friends said when I showed up was along the lines of “Wow, Sally, that’s quite a statement.” Michael, of course, didn’t appear to see anything wrong, but Michael also apparently had a lobotomy and had the fashion part of his brain removed. Technically, a lobotomy couldn’t do that, but I’m going to ignore that for now. I’m way too tired to be at school, much less think about anatomy.
“What’s new with you, Michael?” I changed the subject from my shirt to anything away from me. I’d made Michael sit down, so I could change the subject to him without him running away.
He flapped his hands in the way that he does when he’s happy (I’m telling you, this guy is sooo gay…) and replied simply “not much. How about you?” (he also refuses to talk about himself)
I replied “Did you guys manage to look at clouds?” A few days ago he and his friend Walter had come up with the idea to take two cameras, separate them, and then project the images onto each eyeball. Sort of like how 3D movie theaters work.
“There weren’t any clouds yesterday. Makes it really hard to look at clouds.”
“Hm.” I thought for a minute. We both had eighth period off, and today eighth period I had no homework, and I had left my laptop at my house in my haste to escape my mother’s worrying. “If you do look at clouds, come find me. I’m literally doing nothing eighth period, since I forgot my computer and I have no homework.”
He laughed “Oh, don’t worry. We’ll find something to do with you.” (he’s also a little bit creepy, but I think that just comes from that he’s super anti-social)
2:25. Class had been going for only 15 minutes, and already I was bored out of my mind sitting in the back of Mr. Brown’s class. Probably not the smartest place to spend an off period, but it’s near my last class, so I’ve started hanging out there. It’s better than the cafeteria at any rate. I guess Michael didn’t end up cloud watching or they’d have rescued me. Unless they abandoned me, which I suppose could have happened. Mr. Brown’s lecture wasn’t quite interesting enough to keep me from dying of boredom, so I went inside the main building (Mr. Brown’s classroom is in a portable) to see if I could find something else to do.
“Some guy came looking for you.” I had come back to Mr. Brown’s room after eating some popcorn with Rebekah. She keeps a popcorn popper in her locker (Rhyme!) just for such occasions. After about twenty minutes, though, she decided that she had to get some work done, so I went back to Mr. Brown’s room. One of the students piped up “I think it might have been Michael.”
Well, so he and Walter were looking at clouds. Or, at any rate, Michael came looking for me, couldn’t find me, and presumably went back to his lair. He spends a lot of time in what he calls the “NOC”, short for “Network Operation Center.” Whatever that means. He’s a crazy programmer, and I mean crazy in a good way. He’s been doing internships since he was twelve. Or something like that.
At this point, my foot was really starting to hurt. I’d fractured it a week ago kicking someone, and it hasn’t gotten better yet. Combine that with the fact that I’d limped probably about a mile so far today, and I had a very painful foot. I hobbled to the NOC and looked in. It was light on the far side, but dark on the half I was at. The room’s setup as a short cross-hallway, about five feet wide and forty feet long.
And full of computers.
Zoli was sitting at a desk in the dark portion, and Walter was standing in the light portion in front of a giant wall of… monitors? I decided not to ask. It struck me as odd that Walter was here, since Michael had said that he had the equipment to watch clouds.
I knocked on the open door, drawing their attention. “Have either of you seen Michael?”
Zoli looked up “He left about fifteen minutes ago.”
Walter added “Yeah, he said he was heading home.”
So he did abandon me. Darn.
I wandered outside, and wondered what to do next. It was about 3:15, so I had another twenty minutes to kill. I walked out to the parking lot and saw that Michael’s car was gone. He had left. The buses were handy, so I decided that I’d sit on the bus for the next twenty minutes. Better than sitting somewhere else for twenty minutes.
The parking lot was arranged into two halves, divided by a cheap stake fence. The half near the school was where the cars parked, and the half away from the school was the band lot. The band practiced there after school, but during school (and my off period) it was deserted save for the band tower and a light blue car.
Wait. Light blue car?
Why was there a light blue car? That’s Michael’s car.
Why didn’t Michael leave? And why is he parked by the band tower? He should know that parking isn’t allowed there.
I altered my course away from the bus and toward Michael. Might as well kill twenty minutes by finding out what he was doing. After all, he had come looking for me. As I got closer, I could see that Michael was standing next to his car, fiddling with his iPad. He’d gotten his iPad for free from his internship last summer. Did I mention he was a crazy programmer?
He turned around and held the iPad up to the band tower for a second. Then he turned around and continued his poking. Then I guess he saw me out of the corner of his eye, from thirty yards away, because I blinked and he was facing me. Maybe I should have worn something that didn’t stand out so much. He paused for a second, looked back at the iPad, and then closed it’s cover and started walking towards me.
“There’s no clouds!” He gestured upwards “Makes it really hard to watch clouds!”
I looked up “Yeah, I guess that’s true.”
“Yep. So, I decided to watch the band tower instead.”
“Pardon?”
“I decided to watch the band tower.”
“Ah. Oh, sorry I wasn’t in Mr. Brown’s room. I went inside and ended up eating popcorn with Rebekah, did you know she has a popcorn popper? Then I came back to Mr. Brown’s room…” I continued on, describing my path through eighth period.
We continued talking for a few more minutes. After a while he offered me a ride home. Free ride! Score!
Day 2 (Saturday, Perspective B)
I tapped my pencil on the desk. It made a slightly hollow sound, but not entirely hollow. I turned my pencil over, to try tapping the desk with the other end. The pointy end of the pencil made a slightly different sound. My stomach rumbled. “I’ll go poke my head into the shop” and grab a snack, I added to myself. Michael was making good progress on the code, and I didn’t want to make him slow down.
Even though he was my ride to lunch, and he was staying late by an hour so far.
When I came back to the room, Michael had a slight grin on his face, meaning he’d probably made some sort of breakthrough. “You’re right” he said “goodFeaturesToTrack does pick out some nice features.”
He showed me a picture of a rectangle, surrounded by small squares indicated the edge of the rectangle. We were to use these small squares to determine where rectangles appeared in the image, so that the robot could shoot Frisbees into rectangular targets. A few weeks ago he sat down and wrote an algorithm that determined everything about a rectangle in three-space from only and image of it in two-space. It used some sort of heuristic brute-force algorithm to approximate the distances of the corners of the rectangle along the rays that the points fall on when extended out from the camera.
At least, I think that’s how he described it.
“Alright. I think I’m ready to give up for a day. Let’s go eat something.” Michael abruptly stopped coding “I just wrote the algorithm to merge point clouds, but there’s one more tiny bit that I don’t feel like doing, so I’ll do it later.”
Finally, we went out to Fran’s. After that, we went down to my house to watch clouds. I had all of the equipment in my bag, so in theory we should be able to watch clouds for a few minutes. I wrote a small python script that continuously streamed video from two cameras and displayed them onto the screen. With an index card separating one’s eyes, one could watch clouds.
Forty minutes and four computers later, we determined that theory is theory and that must be a very nice place to live. One of my webcams blatantly refused to even identify itself to the computer, and the other one gave back a black image.
So much for the ten year old cameras. The important thing is that we tried, and maybe now that we’ve tried Michael will stop bugging me to pull out the equipment and watch clouds.
After a while he went home, though he maintained that no worrying parents had called. I spent the rest of the day messing around with my minecraft server, and managed to get it to run finally. Score!
Day 3 (Sunday, Perspective C)
“The name is Bond.” I jumped out of bed “James Bond.” Then I moonwalked out of my bedroom and tripped over Buttercream, the cat that I dislike. I shoved her out of my way. “Alright, Spirit. What should I do today?” Spirit is probably my favorite cat - she’s the most stable of all of them.
Yesterday Walter lent me the school’s wiimote, so I decided that I would make a Star Wars shoot-em-up game that used head tracking, and then merge that with my new 3D projection system. Fun stuff, really.
12:15. The movie started in about thirty minutes, so I asked my Mom “Is there a plan for lunch?”
“No. I just stuffed myself with Chinese food.”
“Hrm. Okay.” I was half expecting that we could go grab food on the way to the movie, but that was not to be so. Mom came out of her bedroom, saw me and asked “You ready to go?”
I nodded “Yeah…”
“Alright, let’s go. You’re driving?”
“Yeah…” I couldn’t quite understand why we were going so early. The theater was all of three minutes away, but the movie didn’t start for another thirty minutes. I was hungry from not having had lunch, but I didn’t really have enough time left to do anything about it. Maybe this was why I was losing weight. On New Year’s, I had resolved to find true love and happiness. Instead, I got the flu and lost fifteen pounds. Somewhere out there is somebody who wants to lose fifteen pounds, but somehow ended up with my resolution of true love and happiness. Somewhere out there is a New Year’s resolution clerk that seriously screwed up, and is going to hear from my lawyers soon.
But, I didn’t say anything, and we went to the theater.
2:45. The credits started rolling. I took off my glasses and palmed them over to my Mom, who stuffed them into her purse.
When we left the theater, nobody suspected a thing. Four circularly polarizing lenses, two to make glasses, two for each of the projectors. Mission accomplished.
Next step: Obtain a second projector, and project two images over each other with different polarizing filters on each projector. In theory, we should have a 3D theater.
Now to spend the rest of the day wasting time and/or doing something. Programming! Yay!
And a reward to those people who read to the end, here’s the result from Friday, after “Michael” processed some of the images of the band tower:
You may note that it’s now in the rotation for the header image.