I have been involved in a variety of commercial projects, the
following videos and images are all from side projects I developed
in my spare time.
GCE (GeoCacheEngine) Terrain Rendering:
I designed the GCE engine to (a) have a flexible continuous level of
detail rendering mechanism, and (b) stream in new chunks of data
from disk or network as they are needed. At the time I wrote this
engine, concepts like terrain mip-mapping and streaming LOD chunks
from disk were just getting popular, of course by now those ideas
The system was also designed at the start to use a fixed amount of
system memory that was re-used by new data as the viewer moved
around, the total amount of this data pool could be dynamically
re-sized at runtime (effectively setting a maximum level of detail).
I spent the better part of a year writing the SDK and plugin system,
and I eventually integrated Ageia PhysX and a basic character AI and
animation system, as well as a number of plugins for "generic" video
game style features (sound system, particle system, etc.).
I had a difficult time getting datasets large enough to really push
the engine, my main source of test data was public imagery and
elevations from the USGS in GeoTIFF format. Datasets can span
multiple files which makes it possible to work with extremely large
The largest set I tested was Dallas, TX, at a bit over 100 GB, this
took literally weeks to download in pieces, unfortunately the USGS
set (at that time) had a few missing tiles and it was no good for
demo purposes when it was finally processed. I had to purchase an
additional external hard drive just to store the raw data and final
The next largest was Montgomery, AL, I found the best way to convey
the sheer size of the data was to do a straight vertical flyup from
the center of the terrain and reveal the entire area.
The elevations aren't noticable in this flyup video but they are
actively being rendered and seamed together in different levels of
Here is a similar flyup over an area in California:
NOTE: The site "www.gcengine.com" is no longer active.
I have a good understanding of ray tracing and I wanted to have
something of my own I could play with for fun, I wrote this ray
tracer as a way to test a "generic scenegraph" library I had
developed for general usage.
The ray tracer supports a basic text format for the scene
description, user-defined material types, textures, OBJ models, and
can record/playback camera paths for rendering out to video.
I had fun writing the application and I generated some useful code
along the way, but the project is effectively "dead" at this point,
I may add stereo support in the future but it's not on my active
The following videos show a few different test cases I used during
development, I don't have any practical use for a ray tracer so this
was all for fun and experimentation:
I have had an interest in procedural environments since my early
programming days, over the years I have written several "core"
engines that create a generic space populated by different "modules"
(usually script-defined objects or plugins).
I had developed a new terrain paging and rendering system that could
have been used as a plugin to the core GCE engine, but I wanted to
write a separate engine to test it out (and also utilize my new
scene graph library), I decided it would be a great test for a large
procedural terrain before importing real data.
The viewer can travel in any direction for literally hours on end.
The environment appears similar (due to parameters) but is unique in
every location. Fixed gameplay areas of interest can be established
at any location, allowing the rest of the environment to be used as
a general "surrounding wilderness".
The terrain system obviously worked as expected, and I was able to
generate several types of environment from a limited set of
parameters. I added some basic grass and billboard trees as filler
to test the "object population" scheme and then put the project on
hold, I may develop this into a nature/hunting style game in the
3D Level Editor - The Old Days:
I began working in 3D shortly after seeing the game "Quake" for the
first time, before that I had worked with 2D scrolling engines and
text-based adventure games. Much of my early work involved manual
rasterization, manual physics and collision detection, lightmapping,
basic game systems, and so on.
I had experimented with pseudo-3D systems before (ray-casting as in
the original Wolfenstein, and 2.5D height-levels as seen in the
original Doom engine), but Quake changed everything.
My first engines were developed in DOS, I moved to Windows around
1999 so I could start using OpenGL. For the first few years I still
used my old DOS-based level editor to create art assets for my Win32
OpenGL engine, around 2002 I decided to write a new editor for
This was the first finished product I developed non-commercially
outside of my regular job, with installer and help documentation.
In the end I never created much more than test levels for my own
enjoyment, but the development process itself was my main goal, I
don't consider myself an artist and my focus has always been
creating the technology vs. using it.
Over the last 16 years I have created several programs
(professionally and for home use), and I have multiple areas of
interest in software development, not just computer graphics. My
career path has gone from the initial interest in video games, to
tool development, to military simulations, to software architecture
and design, and (most recently) to stereo conversion.
Professionally, I have dealt with a number of development scenarios
from large projects to custom one-off solutions, and my work
experience has required me to interact directly with large teams and
also manage remote workers (artists and programmers).
As of this writing I have just wrapped development on the base
"Version 1" of S3D. This work is especially exciting for me as I
have been fascinated with stereoscopic vision ever since I got my
first 3D comic book with the red/blue anaglyph glasses.
At this point I don't know what my next project will be, I have been
studying traditional illustration for the last few years (rendering
3D the old fashioned way) and I believe I have a few more years of
work in that area.
This is the first public release of my resume information in a long
time (almost 5 years), and I am "open for business" if the right
work situation comes along, I am generally reclusive and prefer to
work from home but I am used to onsite travel as needed (within
reason) and I can guarantee the quality of my work.
Thanks in advance for any serious inquiries, if you feel that my
skillset may be suited to your project or enterprise feel free to
drop me a line at: