Sketch
Recognition and
Vision:
CircuitBoard
[
mov] [
pdf]

|
CircuitBoard
is a program that recognizes hand-drawn logic circuits and simulates
them. My contribution to the project was the training, detection and
recognition of logic gates. I use spatial
constraints to find a closed silhouette, and to classify it I use
the shape context of the silhouette and compare them to the shape
context of training
samples. This method is invariant of rotation, scale and distortion.
Accepted for a
long talk at the Sketch Recognition Workshop of the IUI conference in
Florida 2009.
|
Tic Tac Toe
[
mov]

|
Tic
Tac Toe is a game that recognizes hand-drawn Tic Tac Toe boards and
plays against the user. The computer recognizes once the user has drawn
an "X" into one of the squares and plays back with an "O" of a
corresponding size. The user can interact with many boards at the same
time. The recognition is implemented with spatial constraits and is
invariant of rotation, scale and distortion.
|
Object
recognition [html] (coming soon!)

|
For
this project we implemented a program that recognizes three types of
shapes. We use Canny edge detection and Hough transformation to find
the distinct lines. We then loop though the lines to find a closed
silhouette and finally compare angles and lengths to the known shapes
to determine which object it is.
|
Graphics:
Rigging
[
mov]

|
The
program takes as input a skeleton file, a motion capture file and a
model file. The rigging consists of two steps: fitting the skeleton to
the model and assigning vertices to the bones. For the first step I
have implemented a picking interface that lets the user drag joints of
the skeleton to desired locations. Once the skeleton has been properly
placed the user can press a button and the program will automatically
assign vertices to the bones, based on proximity. The motion capture
data can then be applied to the model. |
Water
Simulation [
mov]

|
This program simulates water. For the water motion I use a 60 x
60 grid and a numerical solution of the the wave equation, and for the
shading I use the Fresnel equation in the fragment shader.
The program has a picking interface such that if a user clicks a vertex
of the grid it will pull down that vertex and cause a wave. The rain is
implemented by randomly pulling down a vertex.
|
Reel
[
mov]

|
This is a
collection of smaller graphics projects that I have implemented.
Techniques I used include:
- projective shadows and textures
- forward kinematics
- physical and sequential animation
- lighting, shading and texturing
- environment mapping
|
Multimodal
Interaction:
Portable
Image Manipulating
Program [
pdf]

|
This
is an image editor with a multimodal interface, programmed on Maemo,
the platform for Nokia N900. The application has the common
functionalities of popular image editors (brushes, shapes, flood fill,
color picking, special effects, load, save, etc.), and it offers the ability to take a
picture and instantly start editing it. The user can interact with the program using the touch
screen and keyboard, by shaking or tilting the phone, and with voice
commands.
|
AI
and Data Mining:
Promotion
Planning [
pdf]

|
For this project
we implemented a program that, based on a large set of supermarket
data, recommends products to promote and customers to target, to
maximize the retailer's profit. We use the FP Tree mining method
to infer association rules for transactions. Based on these rules we
build an objective function that we maximize with respect to product to
find the optimal set of products to promote. Given those products we
use the same function to find the optimal set of customers.
|
MovieGen
[
pdf]

|
MovieGen is a
movie recommendation system. It takes in the user's personal
information and uses SVM to predict their preferred movie features.
Based on the SVM prediction it selects movies from the dataset,
clusters them using the k-means algorithm, and generates questions to
ask the user. The user's answers are then used to refine the movieset
and finally the system recommends the most applicable movies for the
user.
|
Scalable
Web Applications:
YouTV [html]
(coming soon!)

|
YouTV
is a website where users can create their own TV channels. They can
upload YouTube videos to the channel and the channel will stream those
videos in a sequence, based on their rating. Users can share their
channels with other users. There are also public channels of common
material such as bloopers, dance, etc. Users can chat with other users
that are watching the same channel.
|