Creative, productive, and versatile software engineer with experience in developing complex and innovative systems, interactive 3D graphics applications, and military simulations based on game technology seeks position as virtual reality, simulation, graphics, or game developer. Holds uniquely applicable degree, has excellent writing skills, and works well both independently and in team settings. Native U.S. citizen.EDUCATION
EXPERIENCE
Languages: C, C++, Java, Intel and MIPS assembly language, Lisp, Python, Prolog, Standard ML, Fortran, BASIC, HTML, XML, VRML/X3D, SQL, UnrealScript, JavaScript, OpenGL Shading Language Operating Systems: Windows, Unix APIs: DirectX (including Direct3D), OpenGL, Win32, STL, X-Windows, FLTK, Cosmo 3D, Java 3D, OpenSceneGraph, OpenAL, Open Dynamics Engine, Performer, GDAL Standards/Protocols: DIS, HLA, CIGI, HTTP, Telnet, LDAP
Three Rings Design, Inc., San Francisco, CA
The Naval Postgraduate School MOVES Institute, Monterey, CA
- Software Engineer, October 2004-Present
Working on the online game Yohoho! Puzzle Pirates.
Class Projects
- Research Associate, February 2001-September 2004
Co-developed Delta3D, an open-source game/visual simulation engine, and various research projects based on that engine
- Created a particle system editor using FLTK and OpenSceneGraph (OSG)
- Added 3D sound support using OpenAL
- Developed Python bindings for scripting
- Wrote HLA networking code for distributed multi-user applications
- Added support for animated characters using Cal3D and ReplicantBody
- Designed remappable input system with support for keyboard, mouse, joystick, and 3D tracker devices
- Incorporated realistic physics using the Open Dynamics Engine
- Built a BSP/PVS compiler that converted raw 3D models (in any of the formats supported by OSG) into game levels with a built-in optimized rendering algorithm (the same algorithm used in the original Quake)
- Co-wrote a shipboard firefighting simulation (in first person shooter format) based on Delta3D
- Created and maintained the software for a helicopter simulator with a three-screen display and realistic controls and instrumentation (as shown in this video from local television station KSBW). This involved writing host and image generator applications based on the CIGI protocol to perform distributed rendering, creating a network interface to X-Plane for its flight model, driving SimKits gauges using their SDK, adding support for HLA networking (including dead-reckoning, special effects, and articulated parts), interfacing with special GPS software, and recording flight path data
- Adapted the SOARX terrain rendering algorithm for use in Delta3D, creating a terrain system capable of paging in DTED elevation data on the fly, draping geospecific raster imagery over it, and rendering roads based on vector data. Used the OpenGL Shading Language (GLSL) to perform the complex per-pixel lighting required by the SOARX algorithm, replacing the original Nvidia-specific multipass rendering code
Designed and developed the XRTI--a generalized, middleware-based communication mechanism for networked virtual environments--as a master's thesis project. The XRTI demonstrates improvements to an established standard, the High Level Architecture (HLA), in terms of ease-of-use, interoperability, and extensibility.Wrote the majority of code for the Context Machine, a simulated augmented cognition device implemented within the codebase of America's Army: Operations in C++ and UnrealScript.Assisted a series of students with their thesis research, authored or co-authored several publications concerning research projects, and presented research results at academic conferences and at the annual MOVES Open House.Acted as principal architect and developer for NPSNET-V, a Java-based component architecture for dynamically extensible networked virtual environments. Wrote 70 interactively composable code modules, 652 Java classes, and 51,000 lines of code for everything from low-level system management to Java 3D and OpenGL graphics rendering, DIS and HLA networking, lightweight Telnet and HTTP servers, and a virtual world browser interface.- Intern Programmer, Summers of 1995-1998
Created and maintained a Java GUI for the Bamboo modular virtual environment architecture. Added environmental effects (fire, smoke, dust trails) to the Performer-based NPSNET-IV networked combat simulation platform, and developed user-friendly front ends for NPSNET-IV networking tools.Independent Projects
- B-Bots, December 2000
An animation editor and an animated music video, rendered on-the-fly in OpenGL. Includes smooth hierarchical character animation using quaternions, scripted camera behavior, particle systems, and wireframe 3D implicit surface rendering using the Marching Cubes algorithm.
- e y 6 e s : pocket interface panel, 1999-2001
A Java intensive 'concept home page' featuring several 2D and 3D graphics applets, including a spherical panoramic image map; a 3D object slide show with perspective correct texture mapping, environment mapping, and Gouraud shading; a rolling fractal terrain applet with perspective, orthographic, and isometric view modes; and a 3D first person shooter game. Also includes RadialPong, a game that has enjoyed popularity in the Web community.