Rick Swift & Apple & Embedded I make things. Sometimes, I’ll talk about it here.

My Gorram Frakking Blog

Assignment: Trace Rays

The current CS184 assignment is to write a ray tracing program. In typical fashion, I can't help but want to do all sorts of unnecessary stuff, like provide an ANTLR grammar for the scene description language, and a full-blown Mac application for rendering and displaying the images.
We're supposed to render axis-aligned ellipsoids and polygons only. We need to support simple Phong shading, shadows, reflections, point and directional lights, and some sort of ray test acceleration. We also have to save images in some standard format. Along with the code, we're to provide five or more example images. I'll try to remember to post them here when I'm done, so you, too, can enjoy the glory.
I made the mistake of looking at some POVRay example images. My renderer will never be this cool, so I'm mostly just depressed about the assignment now.

The Most Amazing Laugh

Rachel McAdams in The Notebook. Wow.

Watching TV in your car

So, I'm coming home from work yesterday, and I come up on this pickup truck with an extended cab and huge tires. I can see through the smoked back window that they've got two screens showing video, one in front of the passenger and one in the center for the rear seats.
We get to a red light, and I get close enough to where I can see what's playing. I snapped a picture, if you want to see. In case you can't tell, it's a girl on her knees in front of a guy.
They had the volume up loud enough that you could hear the cheesy music in my car.

Improved Motor Platform

Wow, it’s been a long time! But in an ongoing effort to avoid studying and homework, I'm mucking about with the Ichibot and associated pages.
Even though I haven't gotten very far with Ichibot, I’ve decided to build a new, better mechanical platform for it. I’ve designed the chassis, and am currently looking for way to get it machined. I’ve also purchased the necessary hardware, pictured below (click the images for a larger version, or the links for a huge version).

Bearings, shafts, collars, pulleys, belts, motors Hardware partially assembled
Full-sized image of separate parts Full-sized image of partially assembled parts

Full-sized image of separate parts Full-sized image of partially assembled parts
The new Pittman motors (part GM8724S021-R1) are much better than the old JameCo motors. They are 12 VDC motors with 60.5 : 1 reduction gearheads and 500 CPR encoders. They were $195 each, and I’m a little concerned that I ordered too much gear reduction. Some people on the robotics lists have all suggested I’ll be happy to have the torque, and that the output shaft speed is sufficient. We’ll see.
The new chassis will look something like this. I need to redo the CAD. I’ll post complete drawings and make the files available.

CAD view of new chassis
Underside of new chassis

EE120 "Is not a Math Class"

Yeah, right.
I like my professor, I really do. He's personable and funny, and a good lecturer. EE120 is "Signals and Systems" at UC Berkeley. He has told us time and time again that we're in engineering, and we don't like to do math, and that this is not a math class.

Maybe it's just me, but I don't see anything but math on that board, do you? Click the image for a view of the entire blackboard(s).
Now, to be fair, this lecture was pretty cool. He demonstrated how the sinc function can be used to perfectly reconstruct any band-limited continuous-time signal from a sampled version of that signal (assuming it was sampled above the Nyquist frequency, of course). Very, very cool.
The pretty graph in the middle shows how the individual sinc functions line up with each other and sum to the original signal. It's evident from the graph that at least the sample points are correct (the analytical expression for that is on the board to the right).
Still, not a math class?