This page has projects I've worked on both professionally and in grad school. Most of my experience has been in the areas of gaming, simulation, networking, machine-learning, and tools development.
Virtual Maintenance Performance Aid 2.0
VMPA version 2.0 is a virtual 3D training system that replicates the interior of a LCS-2 Independence Littoral Combat Ship developed by Alion Science and Technology. The purpose of VMPA is to train sailors on shipboard system procedures for emergency damage control situations such as such as malfunctions, collisions, fires, and flooding.
The project is currently in very early stages of development, thus no screenshots yet. A newer commercial game engine is being used and I am making multiple contributions to the project, including level design, 2d and 3d art, and C# WPF tools programming.
Pictured below is an interactive state machine editor I developed in C# Windows Presentation Foundation (WPF). Transition text boxes specify conditions for transitioning between machine states. The red selected transition displays interactive Bezier curve control points.
Pictured below is an interactive Fuzzy Set function editor I also developed in C# Windows Presentation Foundation (WPF). All functions can be edited by dragging vertices or editing text boxes associated with each vertex.
Pictured below is a simulation model editor I also developed in C# Windows Presentation Foundation (WPF). Simulation components are drag-and-dropped onto the canvas. Input and output ports are connected interactively with the mouse. To reduce visual clutter component ports can be collapsed out of view. Also features unrestricted zoom in/out.
Virtual Maintenance Performance Aid 1.0
VMPA version 1.0 is a virtual 3D training system that replicates the interior of a LCS-1 Freedom Littoral Combat Ship developed by Alion Science and Technology. The purpose of VMPA is to train sailors on shipboard system procedures for emergency damage control situations such as such as malfunctions, collisions, fires, and flooding.
VMPA 1.0 was developed with the Lithtech Jupiter EX game engine, as made famous by F.E.A.R. On the project I did C++ game programming, C# tools development, level design, texturing, lighting, and some GUI work with ScaleForm GFX. The first iteration is already deployed to naval training centers. Details of the system are classified, but some screenshots are releasable and there was a public demo at the Alion Science and Technology booth at IITSEC 2010.
Pictured below is an interactive State Machine editor I developed in C# Windows Forms.
Pictured below is an interactive Fuzzy Set function editor also developed in C# Windows Forms.
Galactic Arms Race 1.0
GAR 1.0 was my dissertation project on procedural content generation based on user preferences. The game was released for free and experimental data was collected from several thousand players. I created the game engine with Microsoft XNA and I used the Lidgren C# Network Library to create the 32-player network protocol. The game was a finalist in the Indie Game Challenge 2010, was featured on SlashDot and Game Developer Magazine, and is scheduled for release on Valve's Steam platform. More info at the GAR Website. Here's a few pics.
F-35 Electro-Optical Targeting System
I was an intern for Lockheed Martin via the UCF-Lockheed Martin work study program. I worked on the F-35 Joint Strike Fighter Electro-Optical Targeting System (EOTS). My main responsibility was a networked aircraft simulation testing tool (C++/MFC) that simulated input from the aircraft into the EOTS hardware. The infrared system on the EOTS is a real-world version of the C-130 gunner missions in Call of Duty : Modern warfare. Everything I worked on was classified, so no screenshots, but here's a cool shot of the the F35.
AGM-158 JASSM Cruise Missile
Another project I worked on as an intern for Lockheed Martin via the UCF-Lockheed Martin work study program. My responsibility was a distributed network training system (C++, Unix) that simulated the launch, flight, and impact of AGM 158 JASSM Cruise Missiles over any number of remote stations belonging to Lockheed Martin or the US Air Force. For an idea of what the system was like, see the old 80's movie "Wargames". The training system is classified, so no screenshots, but below is a nice shot of a JASSM cruise missile delivered by a B2 Spirit.
Genetic art enables people with little artistic or technical to "evolve" orginal works of art possibly for use in video games or movies. This program uses a system of evolved Compositional Pattern Producing Networks (CPPNs), a type of Artificial Neural Network (ANNs) to create increasingly complex particle system effects. Includes saving and loading of particle systems from files. Coded in C++ with OpenGL rendering and uses DirectX math libraries. For a full description, download the paper from CIG07 here.
Crysis 2 Level Design
I did some Crysis 2 level design while getting up to speed on the editor for a commercial simulation project. I did the geometry, lighting, and texturing in these shots, but most of the textures I did not create. The level is titled DM-Atoll, a deatmatch map for 4-8 players, that takes place on a military training facility on a small chain of islands. A system of underground bunkers connects key locations on the map.
F.E.A.R. Level Design
I did some F.E.A.R. engine level design while getting up to speed on the editor for a commercial simulation project. I did the geometry, lighting, and texturing in these shots, but most of the textures I did not create.
Unreal Tournament Level Design
I made a bit of money doing Unreal and Unreal Tournament level design for some small commercial and educational products. A mod I worked on called "Unreal Forever" placed as a finalist in the Make Something Unreal contest.
Unreal Editor 2.0 Tutorials
I did a series of tutorials for the Unreal Engine 2.0 when I was a lecturer for IDS:4387 Game Engines for the Digital Media department at UCF teaching Unreal Editor.
Demonstrates an object-oriented particle system in C++ / OpenGL. There are several classes of emitters. Each class of emitter can be adjusted via parameters to achieve various effects. The particles are billboarded quads.
Demonstrates collision optimization by spatial hashing. Allows comparison of optimized and un-optimized collision calculation times. Allows manipulation of key variables on the fly such as number of objects in the scene and grid size. Turn drawing off in order to analyze collision time only. Since the program does no drawing optimization and 20k+ spheres will kill frame rate on just about any system.
Animated Ray Tracer
A ray tracer that animates the raytracing process in a Direct3D window. The raytrace camera and the scene are displayed from the D3D camera. All objects, their normals, and their bounding boxes are displayed in the D3D window. Each ray is animated with reflection vector, normals, light rays, etc... To speed things up the animation can be disabled. The ray tracer can calculate textured triangles and spheres, hard shadows, multi-sample soft shadows, reflective surfaces, ambient light, specular light, diffuse lighting, and has optional use of Bounding Volume Heirarchy for large scene optimization.
This pic shows the animated D3D window.
These pics are ray-traced output image samples.
Subject: Convolution, Image Expansion, Image Reduction, Laplacian Pyramid, Gaussian Pyramid, Sobel Edge Operator, Roberts Edge Operator, Prewitt Edge Operator
Description: MATLAB implementations of all of the above. Below is an example of my implementation of the Prewitt Edge Detector on model Laetitia Casta.
Subject: Canny Edge Detector, Hough Transform, Least Squares Line Fitting, Maximum Likelyhood Line Fitting, Hysteresis Thresholding, Non-Maximum Supression, Gradient Magnitude.
Description: MATLAB implementations of all of the above. Below is an example of my implementation of the Canny Edge Detector.
Subject: Snakes Algorithm, Image Thinning
Description: MATLAB implementations of all of the above. Below is an example of my implementation of the Guo and Hall thinning algorithm.
Subject: Lucas Kanade Optical Flow, Affine Image Warping, Global Motion Estimation
Description: MATLAB implementations of all of the above.
I did four years in the US Navy as an Information Systems Technician and served on board the USS Oliver Hazard Perry FFG-7 and the USS Hue City CG-66.