Imageworks (Sony Pictures) release Open Source Program
Imageworks has released 5 projects as open source. The open source software can be freely used by large and small studios around the world.
[media id=36 width=700 height=390]
Imageworks’ production environment, which is known for its photo-real visual effects, digital character performances, and innovative technologies to facilitate their creation, has incorporated open source solutions, most notably the Linux operating system, for many years. Now the company is contributing back to the open source community by making these technologies available. The software can be used freely around the world by both large and small studios. Each project has a team of passionate individuals supporting it who are interested in seeing the code widely used. The intention of the open source release is to build larger communities to adopt and further refine the code.
- Field3d, a voxel data storage library
- Scala Migration, a database migration tool
- OSL, a programmable shading language for rendering
- Pystring, python-like string handling in C++
- Maya Reticule, a Maya Plug-in for camera masking
Field3D is an open source library for storing voxel data. It provides C++ classes that handle storage in memory, as well as a file format based on HDF5 that allows the C++ objects to easily be written to and read from disk.
The library was initially developed at Sony Pictures Imageworks as a replacement for the three different in-house file formats already used to store voxel data. It is the foundation for Imageworks’ in-house simulation framework and volume rendering software. It is actively used in production.
Scala Migrations is a library to manage upgrades and rollbacks to database schemas. Migrations allow a source control system to manage together the database schema and the code using the schema. It is designed to allow multiple developers working on a project with a database backend to design schema modifications independently, apply the migrations to their local database for debugging and when complete, check them into a source control system to manage as one manages normal source code.
The package is based off Ruby on Rails Migrations and in fact shares the exact same schema migration table to manage the list of installed migrations. The Scala Migrations library utilizes the clean Scala language to write easy to understand migrations. Scala Migrations provides a database abstraction layer that allows migrations to target any supported database vendor.
OSL (Open Shading Language)
Open Shading Language (OSL) is a small but rich language for programmable shading in advanced renderers and other applications. OSL is similar to C, as well as other shading languages; however, it is specifically designed for advanced rendering algorithms with features such as radiance closures, BRDFs, and deferred ray tracing as first-class concepts.
The OSL project includes a complete language specification, a compiler from OSL to an intermediate assembly-like byte code, an interpreter that executes OSL shaders on collections of points in a SIMD manner, and extensive standard shader function library. These all exist as libraries with straightforward C++ APIs, and so may be easily integrated into existing renderers, compositing packages, image processing tools, or other applications. Additionally, the source code can be easily customized to allow for renderer-specific extensions or alterations, or custom back-ends to translate to GPUs or other special hardware.
Pystring is a collection of C++ functions which match the interface and behavior of python’s string class methods using std::string. Implemented in C++, it does not require or make use of a python interpreter. Rather, it provides convenience and familiarity for common string operations not included in the standard C++ library. It’s also useful in environments where both C++ and python are used.
Originally developed at Sony Pictures Imageworks, spReticleLoc is a Maya C++ plug-in plus MEL code that creates a reticule for a camera. It allows for various camera reference masks to be displayed when looking through the camera, such as filmback, projection gate, and pan and scan attributes.
The value of predefined parameters can be displayed in selectable areas, such as the camera focal length and name, current aspect ratio, frame number, name of the show and shot, Maya scene file name, current user name, etc. Arbitrary textural information can be displayed as well.
More on Imageworks:
Imageworks’ most recently completed projects include G-FORCE, WATCHMEN, VALKYRIE, BODY OF LIES, EAGLE EYE, HANCOCK, SPEED RACER, BEOWULF, and I AM LEGEND. Upcoming projects include ALICE IN WONDERLAND, CATS AND DOGS 2, 2012, and Sony Pictures Animation’s CLOUDY WITH A CHANCE OF MEATBALLS.
Imageworks’ achievements have been recognized by the Academy of Motion Picture Arts and Sciences with Oscars® for its work on SPIDER-MAN™ 2 and the CG animated short film THE CHUBBCHUBBS!. In 2008, SURF’S UP was nominated for the Academy Award for Best Animated Feature. In 2007, two of Imageworks’ projects, SUPERMAN RETURNS and the all-CG animated feature MONSTER HOUSE, were nominated for Academy Awards in the Outstanding Achievement in Visual Effects and Best Animated Feature respectively. With those two nominations, Imageworks became the first studio to be recognized in the same year in these distinct areas, an indication of the diversity and quality of the company’s capabilities. Other Oscar® nominated projects include THE CHRONICLES OF NARNIA: THE LION, THE WITCH AND THE WARDROBE, SPIDER-MAN™, HOLLOW MAN, STUART LITTLE and STARSHIP TROOPERS, for a total of ten nominations.
database migration database schema database schemas Field3d hdf5 imageworks linux Maya C++ plug-in maya mel Maya Reticule MEL migration tool Open Shading Language open source community open source library open source release open source solutions operating system passionate individuals programmable shading Pystring ruby on rails scala Migration schema modifications shading language simulation framework sony pictures source control system spReticleLoc storage library voxel data