Objective
Develop excellent software. I'm mainly interested in computer graphics but am open to other challenges.
Experience
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.
- 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
placement
- Added adaptive sampler, reduced caustic noise, implemented deterministic sampling
techniques
- Prototyped Open Shading Language support
- Migrated department software codebase to new compilers and architectures
Implemented a global illumination renderer. Adapted it for
precomputed illumination of levelsets of 2D and 3D scalar heightfields for
my thesis.
Developed scientific visualizations
(including
brain,
neuron,
molecular
dynamics,
and steam
cleaning)
for use in a variety of publications.
Developed software tools,
managed a student assistant, and
assisted others with programming and graphics problems.
Two major site redesigns,
plus two additional websites for other departments. Wrote
software
to provide site-wide visual consistency. Coded several
secure, interactive web-based applications (Perl CGIs). Installed apache,
proftpd, webinator. Provided web-related technical assistance,
poster design, photography, configuration, and backup.
C++ scientific instrument output formatter,
Dept. of Geology,
Florida State University |
1998 |
Java calculation tools and plot fitting,
Dept. of Physics (Nuclear Lab),
Florida State University |
1997 |
Pascal mail processing control modification,
Rose Printing
|
1996 - 1997 |
Skills
Languages |
|
C++, Perl, Python, C, bash, tcsh, MATLAB |
Libraries |
STL, Boost, pthread, veclib (SSE), cvalarray, OpenMP
|
Tools |
git, CVS, gdb, gperftools, valgrind, helgrind, gmake, rsync, borg
|
APIs |
Inventor, Open Shading Language, Arnold, Nuke, RenderMan, Houdini, IRay, OpenEXR |
Web Programming |
HTML, JavaScript, CGI, PHP, MySQL, Java, XML,
SSI, Apache |
Education
Publications
Kevin M. Beason
Precomputed Global Illumination of Isosurfaces.
Electronic Theses, Treatises and Dissertations
(Florida State University), 2005.
Kevin M. Beason, Josh Grant, David C. Banks, Brad Futch, M. Yousuff Hussaini.
Pre-Computed Illumination for Isosurfaces.
Conference on Visualization and Data Analysis, 2006.
David C. Banks, Kevin M. Beason.
Retro-rendering with Vector-Valued Light: Producing Local Illumination
from the Transport Equation.
Conference on Visualization and Data Analysis, 2006.
Kayne M. Smith, David C. Banks, Neil Druckmann, Kevin Beason, and M. Yousuff Hussaini.
Clustered Ensemble Averaging: A Technique for Visualizing Qualitative
Features of Stochastic Simulations
Journal of Computational and Theoretical Nanoscience, 2006.
David C. Banks, Kevin Beason.
Pre-computed global illumination of MR and DTI data.
International Society for Magnetic Resonance in Medicine 14th Scientific Meeting, 2006.
David C. Banks, Kevin Beason.
Fast global illumination for visualizing isosurfaces with a 3d illumination grid.
Computing in Science & Engineering, 2007.
David C. Banks, Kevin Beason.
Decoupling illumination from isosurface generation using 4D light transport.
IEEE Transactions on Visualization and Computer Graphics, 2009.
Ivan Neulander, Toshi Kato, and Kevin Beason.
Rendering fur in Life of Pi.
ACM SIGGRAPH 2013 Talks (SIGGRAPH '13), 2013.
Projects
smallpt | |
Small path tracer that renders the Cornell Box in 99 lines of C++. |
Pane |
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.
Diffuse/specular/Schlick/Ashikhmin&Shirley/measured BRDFs.
|
Fluid |
2D & 3D fluid simulator and visualization. Features vorticity
confinement, vortex particles, thermal cooling, texture warping, and
interactive volume rendering.
|
subd |
Subdivision surface generator. |
Work Log |
Ray tracing development blog. |
DeviantArt |
IFS fractal renderings. |
Honors and Awards
FSU ACM Programming Contest, 1st Place |
1997, 2004 (Spr.), 2004 (Fall), 2005 |
FSU ACM Programming Contest, 2nd Place |
1998, 2001, 2002, 2003 |
ACM Southeastern Regional Programming Contest, 6th Place | 2001 |
ACM Southeastern Regional Programming Contest, 12th Place | 1998 |
Florida Bright Futures Scholarship | 1995 - 2000 |
MCI Scholarship, FSU Dept. of C.S. | 1999 |
Member, Upsilon Pi Epsilon, Honor Society in the Computing Sciences | 2000 |
Conferences
ACM SIGGRAPH | 2000 - 2015 |
High Performance Graphics | 2015 |
Symposium on Interactive Ray Tracing, Los Angeles, CA | 2008 |
ACM OOPSLA, Tampa, FL | 2001 |
Atlanta Linux Conference, Atlanta, GA | 2000 |
|