Spring 2014 | COMS W4731: Computer Vision | COMS W4172: 3D User Interfaces & Augmented Reality | GRAP E3115: Advanced 3D Modeling & Animation |
Fall 2013 | COMS W4111: Introduction to Databases COMS W4701: Artificial Intelligence |
COMS W4167: Physically Based Computer Animation COMS W4733: Computational Aspects of Robotics |
COMS W4444: Programming & Problem Solving |
Spring 2013 | COMS W4115: Programming Languages & Translators | COMS W4160: Computer Graphics | SIEO W4150: Introduction to Probability and Statistics |
Fall 2012 | COMS W4170: User Interface Design | COMS W3251: Computational Linear Algebra | COMS W3261: Computer Science Theory |
Spring 2012 | COMS W3137: Data Structures & Algorithms | COMS W3157: Advanced Programming | COMS W3210: Scientific Computation |
Fall 2011 | COMS W1007: Object-Oriented Design in Java | COMS W3203: Discrete Mathematics | COMS W3827: Fundamentals of Computer Systems |
Spring 2011 | COMS W1004: Intro to Computer Science & Programming in Java | ENGI E1102: Engineering Design Fundamentals | MATH V1201: Calculus III |
Fall 2010 | GRAP E1115: Engineering Graphics | MATH V1102: Calculus II |
NOTE: I'm always in the process of sifting through my project work, so this section is constantly under construction!
Music programming language & Java MIDI API
Created by myself, Matt Kim, Kevin Walters, and Cindy Long under the supervision of Professor Alfred Aho, SouL is a language designed to make it easy to work with MIDI data to create music and other sounds. I've also created a supplemental Java API called jsoul that matches much of the functionality of our language.
GitHub: SouL , jsoul // Overview Slides (PDF) // Full Report (PDF) // Download jsoul Package (.jar) // Full jsoul Javadoc
A physics-based arcade shooting game
This game is a fast-paced 2D arcade shooter with realistic gravity forces and collision detection/response. Playable on Windows, Mac, and Linux, and allows players to create custom levels! Created with Java and Slick2D, an OpenGL/OpenAL library for Java game development.
View Demo Video // GalacticBounce on GitHub // Download: Windows, Mac, Linux
Projects for honing problem-solving skills
Projects for COMS W4444: Programming & Problem Solving. A unique course for a small group of 30 students, created and instructed by Professor Ken Ross. There are no homeworks or exams. Instead, students are arranged into groups of 3-4 and tasked with an open-ended project based on solving a realistic problem. The semester consists of 4 projects total, with groups shuffling members for each. The goal of the course is to develop problem solving skills in a time-sensitive group setting by applying any and all techniques learned during CS training.
P1: Report, GitHub // P2: Report, GitHub // P3: Report, GitHub // P4: Report, GitHub
An augmented reality tower defense game
Created by myself, Krista Kohler, Laurent Mazouer, and Nikita Nadkarni, TowAR Strike is a fresh take on classic tower defense, where the player tries to stop infinite waves of enemies from reaching a goal by building towers to shoot at them. The player earns cash for each enemy destroyed and uses that cash to build more towers or upgrade existing ones. TowAR Strike throws in augmented reality with a cool 3D perspective, and lets the player take part in the action by allowing them to take direct control of special turrets placed around the environment.
View on GitHub (with download links!) // Play in Web Browser! (coming soon) // View Demo Video
A friendly alternative to Yelp.com's bookmarking system
Created by myself, Shannon Lee, Siddhi Mittal, and Stephen Somuah, yelp!help is designed to be an easier way to create, search, and filter bookmarks from Yelp. It implements several convenient features that Yelp's bookmarking system lacks, such as parallel filters, additional sort options, and batch select/delete.
Try it out! // View Demo Video
A pathfinding system for the iRobot Create
This program takes as input sets of coordinates to define the map, obstacles and start/goal points for the robot, and computes and visually displays the shortest path to the goal. Utilizes various algorithms in tandem, such as a Graham scan for growing obstacles, visibility graph construction, and Dijkstra's algorithm/A* search. Path is written out as a sequence of commands to be fed to the robot.
RoboPathFinder on GitHub (with screenshots)
Fully explorable random solar system generator
Created in C++ using OpenGL and glut, this simple application generates a random solar system with a sun, 8 planets, and an asteroid belt. Each planet and asteroid is generated at a random distance and has its own size, texture, rotation speed and revolution speed. The system is explorable via first-person shooter style controls, and has keyboard shortcuts for changing speed, toggling orbit paths, and generating a new system.
TeapotSun on GitHub
A simple but useful Pokemon web app
Created by myself and Yufeng Guo, this project makes use of a relational database to create a wiki-style app that provides useful information about the first generation of Pokemon. Users can also create accounts and track their own personal Pokemon team and gym badges! Created using Java/JSP and SQL on Oracle servers.
4111-pokemon on GitHub
Simple games with human and AI players
Artificial Intelligence projects: Games include: (1) Gomoku, a strategy board game similar to Tic-Tac-Toe except can be played on any size grid for any amount in a row. Has several modes, including human vs human and human vs AI. The AI player uses an alpha-beta adversarial search algorithm to determine moves. (2) Sokoban, a popular tile based puzzle game that involves pushing boxes into goals. Contains an interactive mode that allows humans to play, as well as an AI mode in which a solver uses various search algorithms (BFS, DFS, UCS, A*) to determine the shortest winning move sequence.
AIGames on GitHub
Panel-based game show for video game trivia
An adaptation of the panel-based game show done by The Runaway Guys at PAX East 2013, Thrown Controllers is a game where two teams compete in a series of video game trivia challenges and single/multiplayer gaming challenges to get the highest score. It is panel based, in a similar style to Jeopardy. This desktop app was created with Java and Swing as an activity for students at iD Tech Camps during my time as an instructor. Best used in conjunction with a large screen or a projector!
ThrownControllers on GitHub