Software Project Summary

Renderstats Database

    Company: DNeg (2011-2020)
    Language: Python/mySQL
    Contribution: Original author

      Computing resources are a major bottleneck in production rendering. But the large number of renders and the way their complex configurations consume assets, software licenses, CPU, RAM, and IO makes trends and outliers difficult to identify. "Renderstats" is a system of log parsing, data normalization, and data storage allowing the performance of nearly a decade of rendering and a sample containing tens of millions of renders from 2012-2020 to be compared and analyzed in high detail.

    • renderstatslib: Libraries for efficiently parsing Clarisse, Mantra, RenderMan and OIIO logs into normalized structures.
    • shotpsider: High performance multithreaded shot tree crawler for locating, parsing, and storing render data ~1000 logs per second.
    • plotstats: Log parser to plot RAM, CPU, and I/O across frames in a rendered sequence.
Modelling & Shading Systems

    Company: DNeg (2011-2020)
    Language: Katana, Open Shading Language, Lua, GLSL, ShaderFX
    Contribution: Various

    • OSL Shading v1: First version of the DNeg OSl shading library. (primary author)
    • OSL Material Workflow: Second OSL shading library, facilitating material assembly in Katana. (collaborator)
    • WindowBox: Create the appearance of a false virtual room "inside" a square representing a window.
    • Procedural Eye: Create the appearance of a sclera, cornea, and refractied iris on a sphere driven by a coordinate system. Also implemented for animation previs in GLSL and ShaderFX.
    • Calamari: Katana LUA OpScript for creating smoothly animated object heirarchies from point clouds of.
    • Autocoordsys: Katana LUA OpScript to create locally scoped transforms from implicitly named object heirarchies.
    • Collapse Motion Samples: Katana LUA OpScript to remove motion samples from one object relative to the motion of another object.
    • Instance Variation: randomly permute colour, size, and orientation of instnaces within fixed ranges.
Sherman Studio Toolbox

    Company: Free Software Foundation (2005)
    Language: Python/PostgreSQL
    Contribution: Original author
    URL: http://sourceforge.net/projects/shermanstudio/

    Useful scripts and utilities for visual effects and CG film production. Includes a fully functional renderfarm with task prioritization, resource allocation, and resource reporting features. The project is a work in progress - studios are encouraged to improve the codebase and share their improvements.
Useful Tools

    Company: DNeg (2011-2020)
    Language: Python, Gnuplot, Elasticsearch, OpenImageIO
    Contribution: Original author

    • ptime: Log time-based resource statistics gathered from /proc, display the resource use of the process tree in gnuplot.
    • checktex: Examine the latest version of all published textures on a show to make sure their channels, names, and bit depths are correct.
    • urusage: Determine the total render time of the elements in a Nuke script.
    • farmplot: Query a potentially very large set of rows from Elasticsearch, display aggregate data using Pandas.
    • ribexract: Rewrite a RIB file, standardizing file paths and removing proprietary libraries for vendor repro cases.
    • runner: Parallelised xargs clone. Runs input from stdin as shell commands. For midsize jobs too slow for serial execution and too small for the farm.
    • gdbpounce: Attach gdb to the next new process matching a specific pattern.
    • grepstrace: Grep every file opened in an strace log to find where an error message is coming from.
EZ2Shake

    Company: Tippett Studio (2001-2002)
    Language: Python/Tkinter
    Contribution: Original author

    Tippett Studio's gradual transition from Irix to Linux left behind several key programs including the IRIX-only "EzComp" compositing system. Ez2Shake provided a workaround by translating EzComp scripts into Shake scripts which could be rendered on Linux. Ez2Shake proved so effective that the Linux EzComp render engine was never necessary.
LightMix

    Company: Tippett Studio (2001-2002)
    Language: Perl/Tk, Python, Renderman SL
    Contribution: Maintenance, Linux porting, new features

    LightMix allows lighting TDs to render individual light contributions in a scene and change the color and intensity of the contributions in 2D. My responsibility included maintenance of both the rendering side (special shaders for simultaneous multichannel rendering, scripts to substitute shaders and add parameters in a RIB, scripts to render the passes) and the interactive side (programs to change brightness and hue of the elements and combine and display them).