Portfolio

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.

Machinery Control System - Maintenance Trainer

The Machinery Control System - Maintenance Trainer (MCS-MT) is another Virtual Ship trainer for shared engineering systems aboard Arleigh Burke Class Destroyers and the USS Makin Island LHD-8.

Select spaces and equipment aboard both ship hulls will be fully interactive in a 3D virtual training environment.

I'm responsible for various parts of the Unreal 4 Engine front-end interactive objects, C# back-end simulation models, TCP clasroom networking, WPF tools programming, level design, and lighting. This trainer is currently in development, so screenshots will be up at a later date.

Navigation Maintenance Systems Trainer

The Navigation Maintenance Systems Trainer (NSMT) is deployed in classrooms training US Navy sailors to operate and maintain navigation systems on Arleigh Burke Class Destroyers. It was developed in UnrealEngine 3, with a ScaleForm Gfx UI, and a MySql back end. I was responsible for C++/UnrealScript game programming, modeling the shipboard electrical system in MySQL, level design, and lighting.

The trainer consists of an instructor station and LAN connected student stations. A projector at the front of the classroom can display any student or instructor station. The instructor can cast their screen to all student stations, as shown below.

The instructor assigns students maintenance tasks which are compliant with actual US Navy documentation, then monitors their progress, and can view a grading scale when students complete an assignment. Progress for all students is saved in a database for later retrieval.

The shot below is a comparison between the virtual ship (left) and real-world (right) equipment. This trainer is an example of extreme interaction, where nearly every screw, circuit card, and wire in the equipment below is removable or replaceable.

Unreal 3 Level Design

This is a deathmatch map I made while learning Unreal 3 Editor using mostly stock props, textures, and sound FX. Was going for a Quake 3 atmosphere.

Virtual Maintenance Performance Aid 2.0

VMPA version 2.0 is a virtual 3D training system that replicates the interior of both styles of Littoral Combat Ship, LCS-1 USS Freedom and LCS-2 Independence, developed by Alion Science and Technology. The simulation trains sailors on shipboard system procedures for emergency situations such as such as malfunctions, collisions, fires, and flooding.

My contributions to the project include CryEngine programming and scripting, C# WPF tools programming, MySQL database development, CryEngine level design and interactive object Flow Graphs, lighting, and particle system design.

LCS-1 USS Freedom 3D environment:


LCS-2 USS Independence 3D environment:


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.

NEAT Particles

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.

Tutorial 1: Basic Architecture, Lighting, Texturing

Tutorial 2: Water Zones

Tutorial 3: Resizing Brushes, Texture Alignment, Deleting Geometry

Tutorial 4: 2D Editor, Duplication, Intersection, Deintersection

Tutorial 5: Lava Zones

Tutorial 6: Masked Textures, Invisible Brushes

Tutorial 7: Sky Box, Panning Textures

Tutorial 8: Importing Custom Textures, Level Screenshot

Tutorial 9: Movers

Tutorial 10: Placing Items, AI Bot Pathing

Tutorial 11: Ambient Sounds, Triggered Events

OpenGL Particles

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.

Spatial Hashing

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.

Matlab

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.

US Navy

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.