December 15, 2005

"Brain" Book

I made this book for my Advanced Digital Photography class. It consisted of a series of photos individually suspended from cardboard frames. The photos were hung using thread, so that it was possible to look through the pages of the book.

The threads give the feel of neurons, and the entire book was supposed to be like looking into the mind's eye.

November 29, 2005

Cell Membrane Simulation


Mark Cavolowsky, Adam Bry and I were on a team that created a basic model of the cell membrane. The simulated cells grow and divide, suspended in a simulated fluid. Each cell consists of a loop of masses and springs. The masses interact with the fluid model, which is just a simple diffusion grid. The simulation allows the user to change the concentration of the fluid by clicking on an area with the mouse. The varying concentrations cause interesting effects. Cells can even shrink or burst if the concentration is too extreme, which is what happens with real cells.

With only a couple cells, the simulation is actually fast enough to be interactive. But if left running, the exponential growth of the cells puts tremendous strain on the CPU. It took 20 minutes to compute the final frame.

The simulation was done using the PyGame package for Python.

November 27, 2005

Boids: Bird Flocking Simulation

I implemented a 3D bird flocking simulation (also known as Boids)as part of an emergent behavior project for a class called Computational Modeling.

The program was written in Python using VPython.

October 16, 2005

Numerical Methods


For my Differential Equations class, I researched and implemented various numerical methods for solving ODEs. I learned about estimating error, stiffness, the Runge-Kutta method, and adaptive step solvers.

October 1, 2005

The Secret Lives of Baking Cups


This picture one of a set of images from a project for my Advanced Digital Photography class. I was given a set of baking tins and asked to "think using a different perspective." I decided to pretend that the cups were alive, and I photographed them in different scenes demonstrating their behavior and increasing intelligence. Click the photo to view the whole set.

September 29, 2005

Unique


I took this photo for my Advanced Digital Photography class.

May 1, 2005

USB 3D Arm Input Device


Olin has a class called Principles of Engineering where students work in teams the entire semester creating their own "mechatronic" project. When I took the class the focus was on making a USB device. Mark Cavolowsky, Zac Borden and I created a 3D input device. They did the main mechanical design, while I did the PIC assembly programming and the host computer software for interpreting data from the arm.

We intended it to be a drawing device, but the potentiometer resolution wasn't that good. Occasionally I still use it to interact with 3D objects.

The project website can be found here.

April 21, 2005

Wave Simulation


Mark Cavolowsky, Jeff Dezso and I programmed this wave simulator as a final project for a class called Engineering of Distributed Systems. Since light is wave, we decided to program various different light experiments, including a parabolic mirror, a prism, and the double slit experiment above.

This video shows the double slit, prism, and "sonic" boom experiments.

The simulation was done using MATLAB.

March 27, 2005

More Bouncing Balls: 3D Collision Detection

Spring semester of my freshman year I did a 1 credit Passionate Pursuit where I researched collision detection algorithms. In the process I also learned about OpenGL, rendering, triangle meshes, quaternions, gimbal lock, and surface normals.

The final deliverable was a simulation of a ball bouncing in 3D on a mathematically defined terrain. My friend Doug helped write the simulation in C++ with OpenGL, but I eventually moved to Python because development was much faster.

December 18, 2004

Inverted Pendulum


This is a project from a math and physics course my first semester in college. We were asked to model a second-order system. My group chose to model an inverted pendulum on a cart. After deriving and validating the equations of motion, we decided to implement a control system to keep the pendulum balanced.


After the class was over, I spent a weekend building a real version out of Legos to test our control system. It turned out that the 'best' parameters were not as good as the model predicted, but it did predict failure regions accurately.

This video shows working system. The pendulum itself has very little friction, both in the joint, and on the track. I used a potentiometer to sense angle, and I calculated angular velocity by having the pendulum back-drive a motor.

The control system was created in Simulink. The control circuit involved op-amps in negative feedback. The computer controlled the circuit using the very annoying Simulink Real-Time target and a flaky PCMCIA data acquisition card from Measurement Computing.

December 13, 2004

Window Walker

The final project for the Design Nature class was a walker that had to climb up a window using bellows, suctions cups, and one motor. I worked with Mark Cavolowsky, Jeff Dezso and Hossam Banaja to create one of only 3 walkers in our grade that succesfully climbed vertically.

For some reason, Mark and I decided not to use any gears in our design (we were the only team to do this). Instead, I came up with a crazy crankshaft/linkage contraption to transform the motor's rotation into the linear motion required to drive the system. What made it more complicated is that the motion of the bellows needed to be 90 degrees out of phase with the expanding/contracting motion of the device.

Video of the walker working for the first time. You can see Mark and Jeff's reflections in this window.

October 11, 2004

Hopper Project


Freshman year, for a class called Design Nature, we were tasked with making a plastic device that could jump. It had to use around 3 joules of energy or less and had to wait a second or two after being loaded before jumping. My design used suction cups for the delay and rubber tubing for the energy storage. It was designed to have minimal assembly: the pieces were cut on a laser cutter, and then snapped together.

It was the first hopper to hit the ceiling, forcing the professor to install a plastic sheet to protect the tiles.

February 20, 2004

The Rejected Photo

Senior year of high school I was selected for the February "Student of the Month" award. I needed to submit a photo for the award page. I was working on my Photoshop skills, so I thought it would be cool to hand in the following photo:

The photo was rejected, and the award people just sent someone to take a picture of me instead.

A week or so later, I got accepted to Olin's "Candidates' Weekend." They asked me to email a photo to be used in a prospective student slide show. I sent in this photo... and it got rejected again!

July 15, 2003

Lego Sumo Robot

I was one of 100 high school juniors accepted to the New Jersey Governor School of Technology. During part of the month-long program at Rutgers, we made robots from the Lego Mindstorms kit. The final robot project was a sumo wrestling match. Two robots would face off and attempt to push each other out of the ring. The robots could use light sensors to detect the edge of the ring, and had to start at size smaller than 10x10x10cm.

My team's robot (on the right) was the biggest of the 20 in the contest. It used two large, high friction wheels driven by worm gears to prevent back-driving. In the front it had vertically mount treads designed to lift an opponent off the ground, stealing its traction. It also had a telescoping arm that shifted the center of mass of the robot back over the wheels.

The robot was unstoppable when faced head-on, but was vulnerable when turning. In the final match, even though we knocked our opponent off in the first round, they beat us in the next 2 rounds by pushing from the side. We came in second.

November 26, 2002

Tanks 2

After making a turn based tank game that had fake physics, I decided to make a cooler version. My parents were taking me with them to Massachusetts for Thanksgiving, so I brought my math book and my laptop for the 5 hour car ride. I taught myself derivatives and developed a simulation of balls bouncing on graph of a randomly generated trig function. The balls bounced based on the slope of the terrain (hence the derivatives).

By the end of the weekend I had the whole game made. It was written in QBasic using drawing commands like CIRCLE, LINE, and PSET. Looking back at the confusing spaghetti code, I'm amazed it ever worked.