Develop excellent software. I'm mainly interested in computer graphics but am open to other challenges.
Supporting the studio's large software library
including applications, shaders, and plugins for Arnold, Nuke, and Houdini,
and our custom queue, pipeline, and lighting tools, in C++, Perl, and Python.
Plus some systems administration. Some of the things I've worked on include:
- Queue - Support our render queue manager, file transfer, and asset tracking systems in Perl and C++
- Houdini - Adapt our shaders, nodes, and plugins for version upgrades and Arnold integration
- Systems Administration - Diagnose and resolve issues on Linux, Solaris, and VM systems in two countries, RAID recovery,
backups, MySQL DBA, OS migration, PXE booting
- Arnold - Support 1st & 3rd party shaders, installation, troubleshooting, testing, bug reporting
- Crom - Develop Arnold shader nodes for our lighting tool in Python and C++
Worked on a small team developing a proprietary software renderer used
for visual effects in feature films and commercials. Interacted with
artists to address rendering issues.
Maintained and supported
irradiance caching, subsurface scattering, shadow mapping, photon
mapping, and displacement.
Implemented a global illumination renderer. Adapted it for
precomputed illumination of levelsets of 2D and 3D scalar heightfields for
Developed scientific visualizations
for use in a variety of publications.
- Added multi-threaded rendering. Efficient parallelization of the pixel loop, shading, subsurface
scattering, deep shadows, photon maps, irradiance cache, shading cache, hair reflection cache, using
boost::thread, memory barriers, Quiescent State based Reclamation (RCU)
- Extended irradiance cache with gradients, neighbor clamping, smoothing, and stable
- Added adaptive sampler, reduced caustic noise, implemented deterministic sampling
- Prototyped Open Shading Language support
- Migrated department software codebase to new compilers and architectures
||C++, Perl, Python, C, bash, tcsh, MATLAB
||STL, Boost, pthread, veclib (SSE), cvalarray, OpenMP
||git, CVS, gdb, gperftools, valgrind, helgrind, gmake, rsync, borg
Inventor, Open Shading Language, Arnold, Nuke, RenderMan, Houdini, IRay, OpenEXR
||Small path tracer that renders the Cornell Box in 99 lines of C++.|
Physically based renderer in C++. Features path
tracing and progressive photon mapping. Octree/KD-tree/BIH ray
acceleration. Triangle/sphere/levelset/SDF/instance/IFS intersection.
Area/environment lights with MIS.
Multi-threading, pixel filtering, motion blur, irradiance caching.
Tone/texture/bump/displacement/noise mapping. Glare, participating media,
blackbody emission, spectral rendering.
2D & 3D fluid simulator and visualization. Features vorticity
confinement, vortex particles, thermal cooling, texture warping, and
interactive volume rendering.
||Subdivision surface generator.|
Honors and Awards
|FSU ACM Programming Contest
||1st: 1997, 2004-Spring, 2004-Fall, 2005 2nd: 1998, 2001, 2002, 2003|
|ACM Southeastern Regional Programming Contest||6th (out of 71): 2001,
12th (out of 80): 1998|