25 October 2008
Moving Right Along
In other news, I have acquired all the components for my Halloween costume and just need to put the finishing touches on a few parts before I'm ready. One of those parts is a capacitor about 2/3's the size of a AA battery. It scares the crap out of me, so I'm not doing anything with that component of the costume until I can get down to the electronics lab on Tuesday. Hopefully I can get all the soldering I need to do done then and just finish with the assembly and spray painting at my leisure. Now that I have tantalized you thoroughly, I take great pleasure in saying that you have to wait until Halloween to see it, like everyone else. Nyah nyah. Don't worry. I'm taking pictures as I go and I'll have plenty from the parties.
Speaking of the electronics lab, there's something cool going on this semester (and hopefully continuing on afterwards). A pair of students who are excited about learning more electrical engineering and getting an intuitive feel for electronic systems set up an informal lab period for interested students to come and play with the electronics lab. We do a little bit of instruction and mostly tinkering on projects of our own. I'm hoping they can help me with the bits of my costume that I don't have the knowledge to do safely.
Speaking of student-driven interest groups, I've got updates on the Barnstormers! Claire and I (co-presidents of the Barnstormers Aeronautics Club here at Mudd, if you'll recall) have been working with Iris Critchell to get the soaring trip going. We flew to Hemet and Crystalaire, where there are glider schools in operation, to see what was available and decide where we wanted to go. Larry Howell, the man in charge of "Sail Plane Enterprises" at Hemet really impressed us and offered us a great deal on pricing. He can only take 12 students a day, and only on the weekends, which is lower than the "Great Western Soaring School" at Crystalaire, but we liked the feel of his operation much more than the Crystalaire one, so we called him up and scheduled two trips. At least two of Claire, Iris, and I will be on each trip, so I'll make sure we'll get plenty of pictures and we'll have some wonderful stories.
See you after Halloween,
~KMarsh
*A glaring exception was Quest for Glory: Shadows of Darkness. This game had a glitch that made it impossible to progress beyond a certain point no matter what. Instead of releasing a patch or an update, Sierra provided a save file with the character located past this point so that players could see the end of the game, albeit with a different character than the one they had built up along the way.
22 October 2008
Quest for Graduation: Dragon Fire
![]() | ![]() |
In fact, we can do better. By taking this result and feeding it to the program as one of the inputs, we can extend this panorama indefinitely.* I put a third image into it here:
Next week: Automosaicking.
~Kyle Marsh
*Pro tip: if you actually try to mosaic images all the way around a circle, you'll hit problems as you approach 180 degrees -- the program tries to map straight lines to straight lines, so it'll try to bring the vanishing point (infinity to each side) into the image. Your result will be an infinitely wide image. To actually make a full panorama you have to map the images onto a cylinder, and to do that you need to know the focal length of the camera.
14 October 2008
Quest for Graduation: Shadows of the Real World
This is great when you want to test supersonic aircraft or munitions, either of which may leave enormous craters in the ground (depending on whether they work or not, respectively). It is somewhat sub-optimal when it comes to having anything else within a reasonable commute of the place.Hopefully they will have a place for a poor computer scientist among all the engineers. Besides...how cool would it be to learn to fly from a fighter pilot?
In other news, I am really enjoying my Computer Vision class. Professor Dodds is a fun guy and he really makes learning these things fun. Two weeks ago we implemented an algorithm called "seam carving". This algorithm will remove connected seams of pixels from images to resize them to different aspect ratios without cropping or distortion. The idea is that you first find the edges of a picture (or some other measure of "energy"), then find the string across the picture with the least "edgyness" or "energy" and remove it. This maintains any interesting areas of the picture, where "interesting" is defined by your energy function; in this example, edges are "interesting".

This picture is of a Pentium Pro I opened up (fairly destructively) to get a look at what was inside. The die on the left is the L-2 cache and the die on the right is the processor itself (Pentium Pro was based off the Pentium II's microarchitecture, which is what the Core2 chips are based on, as well). The image in the upper right is the energy function; white pixels are strong edges, black pixels have no edge strength. The lower left picture is the result of adding up energy across the image to find the lowest energy "seam" and the picture in the lower right shows the carve result (same scale as the original image in the upper left). This method doesn't always work well, but when it does it can produce some spectacular results. There is an extension (that we did not implement) to use seam carving to resize videos as well.
This week we're working on auto-mosaicking to create panoramic images from a set of pictures.
Also: I'm looking forward to Halloween like crazy; it's by far my favorite holiday and there are always such great costumes here at Mudd.
~KMars
27 September 2008
Quest for Graduation: Wages of War
20 September 2008
Quest For Graduation: Trial by Fire
Once again, I find myself in the digital electronics lab at 2am (or, as I prefer, 0200) -- edit: by the time I finished writing this it was 0340. I'll swear I told myself I'd never do this again, but here I am making the same mistakes I made this time last year. My girlfriend (an engineer) is taking E85: Digital Design and Computer Architecture (required for engineers, not CS, but I took it last year for fun) and I offered to help her when she needed things explained. One of my primary functions should be helping her avoid all the little pitfalls in the terrible-does-not-deserve-to-exist-and-should-die-in-a-fire software that class uses called Xilinx ISE. How this software came to be industry standard I do not know, but it is and it is buggier than any game Sierra ever made back in the 90's. And that's hard to do (mind you, I do love my vintage Sierra games).
Despite my supposed wisdom from having experienced all this before I ran us into a 2 hour detour when I forgot that xilinx (look! I'm not even dignifying you with the capital letter deserved by proper nouns, you awful program!) is sensitive to which file you have selected when you tell it to run the simulator. Thus I ended up having her simulate the schematic file rather than the testbench file. The result: the simulator happily simulated the circuit with no input. It didn't have any test program to run through the circuit to check it, so it just said "Okay, your inputs are floating, so I can't really say what the outputs should be, but I've got it sitting here simulated." This led us on a merry 2 hour chase reorganizing how we did the input wiring in the schematic before I noticed that the wrong file was selected in the other window because xilinx is made of FAIL.
On top of the whole xilinx sucking thing, realize that there's a much better way to do this: HDLs. HDL is an acronym for Hardware Description Language. There are two popular (read: industry standard) HDLs: VHDL and Verilog. VHDL is an acronym for VHSIC HDL and VHSIC is an acronym for Very High Speed Intigrated Circuits program. It was developed by the Department of Defense. Hence the 2-level deep acronym. VHDL is more common in academia, and Verilog is more common in industry. Professor Harris, one time digital engineer for Intel, decided we should use Verilog. I digress. The point is, the cute little gui that gives everyone so many headaches in xilinx is really just a wrapper around verilog. When you click the buttons to make it simulate it writes (rather nasty) Verilog behind the scenes. If you wrote the Verilog yourself to begin with, as we do in later labs, you'd avoid all the headaches of xilinx and it'd be much faster to boot.
\end{rant}
By now I've probably scared you all off and bored the rest to tears. I had a nice paragraph here about what I think is cool about Verilog (it looks like a programming language, but each "function" is actually a hardware module so you can't treat it exactly like programming) but then blogger went and ate it, so I'll leave it with that bit inside the parenthesis. If anyone's particularly interested feel free to leave a comment for me and I'll describe it in more detail. To finish off I'll leave you with an interesting proposal: Professor Dodds teaches a class called "Programming Practicum" in which students must solve problems similar to those found on the ACM programming challenges. He gives bonus points for being the first to solve a problem in a particular obscure language. This has led people to solve some of his problems in languages like x86 assembly, Prolog, PostScript, and Tex, of all things. I think someone should solve one in Verilog, that is, someone should implement the solution in hardware and run a simulation to get the answer.
As a parting word, I'll give 10 points to the first person to correctly identify the inspiration to the recent post's titles.
~KMarsh
17 September 2008
Quest for Graduation: So You Want To Be A Mudder
We're back and school has begun. Actually, it began 3 weeks ago. The semester started off rushed for me, but it's settled down for now and I finally have time to blog again. As you may have noticed, I'm learning Russian. It's far too much work to be worth it (6 hours of class/week + 2 hours of homework/night = totally not worth it), but it's my favorite class so far. Be that as it is, however, I'm enjoying all my classes considerably more than usual -- there are often one or two that I just need to take, but this year all my classes are of my own choosing (except clinic, sort of) and I'm enjoying them all.
I'm enjoying living in Case, too. The rooms are huge, although mine is still filled with boxes that I haven't unpacked yet or are waiting to return to storage, and this time around I actually know the people I'm living with and they all range from "I don't know you very well yet" to "damn cool". We've got my Wii in the corner of the L and Litz got a PS3 over the summer so we're going to buy Rock Band 2 when they come out with the new peripherals for it. I also managed to acquire an armchair and 3-seat couch from my grandparents when they bought new furnature. It is some of the most excruciatingly comfortable furnature I've ever experienced, so I'm happy.
Computer Vision is such a cool class. I'm not really sure how much Professor Dodds actually knows about robotics and computer vision because he's always telling us stories about things he tried that didn't work, but I get the feeling that he knows his stuff. It doesn't actually matter, though, because he is extremely good at teaching it and at inspiring excitement and enthusiasm in his students, and that's really the whole point. Our first project was to write a program in C++ or Matlab that locates a can of spam in an image. We took a bunch of pictures of each other holding spam in class on the first day and used those to test our programs. We met with mixed success, but had a fun time seeing what we could do with the code libraries available.
In non-academic news I am now co-president of the Barnstormers (as mentioned before, apparently...). The Barnstormers are HMC's club for all things aeronautical, and Claire and I were given leadership of the club when Matt McKnett graduated. We've already done some cool stuff, like skipping class to hang out with Stan Love -- an HMC alumnus who happens to be an astronaut, but we have even more cool stuff coming up.
First is the annual aero alumni fly-in. At the end of September each year many of the school's alumni who have airplanes will fly in to Brackett Field, take current students up on joyrides with them in everything from carbon-fiber homebuilts to a Citation 2 jet. After the flying we all retire to the Aviation Room at Hoch-Shannahan dining hall (paid for by the aero alumni, hence the "Aviation Room") to have dinner and catch up.
Second is an event we've been planning since last year (also mentioned before). When Claire and I took over the Barnstormers, Matt and Iris proposed that we try to take any interested students on a gliding trip. We started looking at possible glider schools and sent an e-mail to the student body asking for interested parties. Within hours I'd received over 50 responses. Now, after sending an e-mail to the new freshman class, I have over 80 people who have expressed interest. The club got $2400 in funding from the school for the trip, and if even half of those people are still interested when the time comes we'll probably have to make them pay more than I wanted. Also, Claire, Iris and I flew out to visit one of the potential glider schools and the guy there mentioned that he could probably fit about 12 students in one day, so we'll have to split this up into multiple days. More on this as it unfolds.
That's about all I can think of right now, but keep an eye out for more regular posting -- I'll probably start updating on Friday or Saturday and I'll see about getting an RSS feed going. As a parting word, kudos to all those who caught the reference in this post's title.
~KMarsh
26 July 2008
Mad Science
- IR Goggles: Engineers learn that there is no such thing as perfection. Specifically, for my application, there is no such thing as a perfect band-pass filter. The human eye can be thought of as a system that produces a significant response to electromagnetic radiation with wavelengths between 4 and 7 hundred nanometers, peaking at about 550nm (green light). This band of the EM-spectrum is usually called "visible light" because, well, we can see it. The response is a curve, though. It's impossible to get a sharp cutoff in any system, and that includes our eyes. Thus, with a powerful enough source and some way to block all the "visible" light it becomes possible to see light classified as infrared (around 720nm). Your eye produces a very weak response to near-IR light, but it's still there and by blocking out all the visible light, we can actually see IR light. I don't have quite the right lighting gels, however. A friend had extra gels that she gave me and she had the correct "Primary Red" but not "Congo Blue". I tried it with the "Royal Lavender" that she had, but that doesn't actually block much more red than the "Primary Red". Thus I have very dark red sunglasses until I get my hands on some actual "Congo Blue" gels or equivalent.
- Tesla Turbine: Nicola Tesla was a mad genius. Probably my favorite historical figure, Tesla was a brilliant man who really had some great ideas. Many know him as the invertor of the Tesla Coil and pioneer of AC electricity, but he also built other things. The Tesla Turbine is a design for a bladeless turbine that uses a nifty property of flowing fluids known as the Boundary Layer Effect. In short, when a fluid is flowing across a surface, the molecules against the surface don't actually move. The next layer of molecules moves slowely and each further molecule moves faster until you reach the full speed of the fluid. Tesla, although fluid dynamics was not a field that we knew much about at the time, observed this and used it to make a pump to move mercury. He thought it was friction at first, but soon realized it was something else. He later ran it in reverse, pushing fluid through it in order to make it spin. The idea here, is that you take a bunch of disks and stack them up with very little space in between. You then put the stack in a cylinder and squirt a fluid on a tangent to the edges of the disks. The fluid "sticks" to the disks because of the boundary layer effect, transferring some of its energy to the disks. As it loses energy, it travels more slowly, so the radius of the circle it takes around the disks shrinks. It eventually spirals all the way to the middle where it reaches an exhaust drain. I made mine from CD's glued together with neodymium magnets and a small CD spindle. These turbines produce high rotational velocities, but rather low torque. I suspect that is the reason you never see them in modern applications even though they are more efficient than conventional turbines -- you normally want high torque.


