COS 451 Final Project Cutting polygons into pieces and arranging them into other polygons |
For my final project in COS 451: Computational Geometry, I created a program in C++/OpenGL that, given two simple (non self-intersecting with no holes) polygons with the same area, can cut the first one into a finite number of pieces and arrange those pieces to form the second one. Due to the chaos of graduation, I was unable to create a detailed report or to put the code in a form that is presentable here, so this is just acting as a placeholder for now (the picture to the left is a little tease of my program in action). But I consider this to be one of the most interesting and challenging projects I've ever done at Princeton, and I plan to turn this into a detailed tutorial with an interactive Java applet on my upcoming Duke web site for graduate school! |
||
COS 526 Final Project A complete acoustic modeling system supporting specular reflection, diffraction, and transmission By Chris Tralie and Ken Jenkins |
The purpose of this project was to implement a fully-featured and physically accurate (to the extent possible) acoustic simultation for determining the impulse response in arbitrary virtual environments. This is a significant improvement over my previous attempt to do this in COS 325. It can model all specular reflections with 100% accuracy up to a certain order using image sources. We also implemented an approximation of diffraction and transmission, and we even implemented frequency-dependent reflection and transmission coefficients. |
||
A simple project comparing two techniques to automatically find moving objects in surveillance videos |
The purpose of this project was to implement and compare two techniques for automatic foreground detection in videos, primarily in surveillance videos where the camera position doesn't vary much. One of the techniques I implemented was based on a mixture of Gaussians, while the other was based on information in the frequency domain |
||
A survey of modern techniques in computer graphics |
This is my project page for COS 526, Advanced Computer Graphics | ||
Work towards a robot to help patients with limited motor control retrieve RFID tagged objects in a home Duke University Summer 2010 |
8/25/2010 | A continuation of my work from last summer. I evaluated a particle filter approach for localizing RFID tags on a small, affordable robot platform in household environments. I developed software under the new ROS robotic operating system.
|
|
Our junior electrical engineering design class Chris Tralie and Carlton Chow |
5/13/2010 | As partners, we were charged with taking the radio control out of a remote control car and replacing it with our own automated control systems throughout the semester. Some of the control systems we built for the car included cruise control (using PID control), steering control (using pulse width modulation), and line following (using a C2 video camera and the composite video standard).
|
|
Junior Independent Work Spring 2010 Faculty Adviser: Thomas Funkhouser |
2/26/2010 - 5/11/2010 |
The purpose of this project is to explore classification of 3D objects extracted from a scan of a city into different categories. This has many applications, such as in photo tourism where objects in a city could be labeled for the user. My main work this semester expands classification techniques of these segmented point clouds by adding a novel 3D shape descriptor. The descriptor is based on aligning these point clouds to known models of city objects in a database |
|
Trying to make 3D photography easy and affordable for everyone By Chris Tralie and Chris Koscielny |
For my final project for COS 429: Computer Vision, I collaborated with Chris Koscielny to create a 3D model reconstruction pipeline using camera calibration and voxel coloring techniques. The program does not quite work yet all the way through, but we did a lot of research and it's very close: |
||
A class that surveyed modern computer vision techniques |
This is my project page for COS 429, Computer Vision,
where I will upload all of my writeups, images, etc.. |
||
Exploring state of the art robotic map-building and navigation algorithms on an affordable robot platform Duke REU Project Summer 2009 Faculty Adviser Matt Reynolds |
7/29/2009 |
The purpose of this project was to explore occupancy grid construction and RFID heatmap generation of an unknown environment on a small, affordable robot with a laser scanner and RFID reader. The robot platform consisted of an \93iRobot Create\94 robot with an attached netbook and Hokuyo Urglaser range scanner, along with a ThingMagic Mercury\AE 5e RFID reader and a webcam. PlayerStage, an open source robotics development environment, was used to communicate with the robot hardware and to run simulations ... [full abstract] |
|
A 3D space flight simulator game By Chris Tralie and Johnnie Rose, Jr. |
5/15/2009 | For my final project for COS 426, I collaborated with Johnnie to create a 3D space flight simulator (controllable by joystick with roll/pitch/yaw) from scratch with a cockpit, radar, basic collisions (with realistic momentum response), laser weapons, explosions, automatically generated asteroid fields, and aggressive enemy AI that can avoid obstacles and swarm together to destroy your ship.
|
|
A 3D sound simulator built from scratch | 5/15/2009 | For my final project for Perry Cook's COS 325 class, I extended the concept of ray-tracing to sound and created an acoustic ray tracer to determine the impulse response of rooms I model with a computer. The program traces around sound paths from a boombox to each of the user's "ears" (positions modeled in the computer), figuring out the loss that occurs traveling along these paths and bouncing off walls, etc. The consequence is a 3D sound model where the user perceives the location of the boombox, as well as reverberations that occur in the rooms. |
|
A comprehensive, breadth-first introductory class in computer graphics |
This is my project page for COS 426, Computer Graphics,
where I will upload all of my writeups and some images/movies. |
||
A class that explored the boundary between Digital Signal Processing and art |
Select assignments and projects for COS 325 | ||
A friendly alarm clock that talks and listens in the morning By Chris Tralie and Chris Koscielny |
I co-authored a program for Linux with Chris Koscielny for our "Human Computer Interface" class that,
upon waking the user, reads the time, the weather, the news, and then plays an arithmetic game
with the user (using voice recognition) to determine whether he/she is awake. This program made use
of the Sphinx 2 and
Festival libraries for speech
recognition and speech synthesis, respectively. |
||
Creating a new interface for musical expression out of a swiffer, some sensors, and a microcontroller By Chris Tralie and Chris Koscielny |
The final lab for Human Computer Interface class was to use a BASIC Stamp
to make an etch-a-sketch and a NIME (New Interface for Musical Expression). We used knob potentiometers as input
for the etch-a-sketch, and we added sensors to a swiffer (accelerometer, button, and a pressure pad) for our
musical instrument. |
||
My own "from-scratch" implementation of a JPEG viewer |
As my final project for ELE 201, I created a program from scratch in C to read in raw binary data from a JPEG file and to render an image to the screen in Windows. This was a very long process, because I had to learn the
nitty gritty details about the JPEG header and exactly how the transform coding/run-length coding,
quantization tables, etc. worked. I summarized my research/findings in a paper. |
||
A program that listens and writes the musical notes it hears (Logbook) |
Back in high school, I created a program for my junior year science fair project that listens through a microphone to a violin playing and attempts to draw sheet music to the screen based on what the user played. The user can vary the tempo, the time signature, the key signature, and various other parameters that impact how the raw sound buffers are processed. The program was copyrighted as I was applying to college. This experience was my "trial by fire" introduction to DSP (which I'm now studying). I hadn't even learned intro calculus when I started to research this project, but I managed to understand the Discrete Fourier Transform well enough conceptually to feel comfortable implementing it, with the help of this excellent resource (it took several months to complete, though). I've learned a lot since then, but I like to link to this program for sentimental value. |