Jonathan Decker on the Web

Design before procedure

This page displays information about some of the projects I've done, along with media and web executables where available.
 
 
System of Bound Particles for Interactive Flow Visualization
For my master's thesis work at UMBC, I have developed a particle system that runs almost exclusively on graphics hardware in order to create an interactive visualization of time-varying vector field data, such as wind speed data of hurricanes. Small sets of the particles are bound together with spring constraints, creating deformable elements that tumble as they move, demonstrating vorticity within a given field. My application runs in XNA game studio, and is able to simulate a large number of custom, elastic elements at real-time rates. It has not been run on the Xbox 360, since it requires access to large repositories of data. Used with the Hurricane Bonnie dataset provided by Dr. Scott Braun of NASA and 2D CFD fields provided by Dr. Nene of Georgia Tech. 2D nature convection example shown in videos uses the field demo1.dat, available at the CFD Modeling webpage.


           

Top-down shooter
Group project for Graphics for Games. We developed a top-down shooter with time-based challenges where enemies grapple onto the player's ship in order to hinder their progress. I personally implemented the fratical terrain, which is generated in tiles slightly larger than the screen in a seperate thread. The terrain blends between different textures depending on height and has trees rendered on its surface using point sprites. I modeled the enemy ship in Blender.

Colleagues: John Kloetzli and Brian Strege


Artillery Game
Simple Artillery game developed in XNA Game Studio. I created the cannon and ship prop in the Open Source 3D modeling application Blender. Application features an oscillitating water plane and a simple particle system for splash effects. The positions of the particles are updated per frame on graphics hardware. Game has been deployed and run on the Xbox 360.


Leveraging Graphics Hardware to Accelerate Dynamic Programming
Group project for Advanced Algorithms. We developed a new framework for solving dynamic programming problems on widely available graphics hardware. Our method performs dynamic programming at three distinct levels of parallelism, each mapped to a specific layer of hardware and optimized for the memory structure of each layer. We perform linear-space processing at the highest level of the dynamic programming, a quadratic-space algorithm at the middle layer, and a different linear space algorithm on the final layer. The combination of all three running on a single CPU and Graphics Processing Unit (GPU) is a fast, flexible, scalable solution to dynamic programming problems belonging to the Gaussian Elimination Paradigm.

Colleagues: John Kloetzli and Brian Strege


Bird Watching Exhibit Visualization
I worked with Kathy Marmor to create a visualization for her interactive, surveillance technology inspired art exhibit, Bird Watching. Cardboard 'satellites' positioned throughout the space detect visitors with inrared sensors. The visualization is projected onto a wall of the exhibit, and tracks the predicted movement of the visiting patrons using only readings from the sensors. Readings become positions on an abstract map of the exhibit, and multiple paths through the space are determined using a speed threshold.

It was a very challenging project and a good experience to work one-on-one with an artist to create an application. I implemented the visualization as a Isadora Plugin using the OpenGL graphics API. Kathy Marmor was using Isadora already to create dynamic sounds based on the sensor readings. I created this plugin to work seamlessly with her exisiting system.


     

Simple Ray Tracer
I have built a simple ray tracer which reads in files generated by Standard Procedural Databases (SPD) and produces an image of a scene using the basic lighting equation. It is able to detect concave and convex polgons, as well as spheres. Click the launch button to see an animation generated using five ray-traced images which creates the illusion that the gears are continuously rotating.


     

Self-Organizing Map Solving the Traveling Salesman Problem
A Self-Organizing Map (SOM), a type of Artificial Neuron Network (ANN), which attempts to find the optimal traveling salesmen tour between 10 points in a grid. Click the yellow circle to begin the process. In order to facilitate such complex computation in the Flash enviroment, at the end of each iteration of the SOM, the yellow circle is called to animate to its next frame. Once on that frame, the animation halts and the circle calls for the next iteration of the SOM. This repeats until convergence. The process can be stopped at any time by clicking the circle.


Izzy Worlds
A cool platformer I started work on but never finished. Move Izzy (the little red dinosaur) along a planet using the left and right arrow keys. To jump off a planet hit up, or kick off with the down arrow. You can also rebound off a planet if you kick just before you reach it.


Simple Robots
A simulation of simple robot with deterministic yet dynamic behavior. All robots increase/decrease wheel speed in relation to amount of light it senses. The sensors are connected to the wheels individually by a wire the sign by the wheel (+/-) cooresponds to how its rotation speed is effected.


Random Name Generator
A simple program that uses letter frequency information and a naive vowels-between-consonant approach to make plausible but meanless words.
Servo Robot 'FlipBot'
For a special topics course about robotics, I was able to design and build a original robot using three servos and a programmable circuit board. Once built, our robots competed in sumo matches, where the objective was to push the opposing robot out of the ring. We began by first designing a virtual prototype of our robots in the simulation program Breve. To the right are two videos of my flipping robot going up against a more traditional design. I think it's obvious that my design was never a good 'SumoBot', but I just love the design.


   

Defend the Pichu Blimp
A complete game I made in Flash using Pokemon characters (All rights reserved). The player switches between three rodents trying to save their blimp from an aggressive flock of birds. Game includes a complete tutorial and music score by my friend Ben Stryker.