Sony Pictures Imageworks is launching an open source development program, it was announced today by Imageworks’ chief technology officer, Rob Bredow.
Five technologies will be released initially: * OSL, a programmable shading language for rendering* Field3d, a voxel data storage library* Maya Reticule, a Maya Plug-in for camera masking* Scala Migration, a database migration tool* Pystring, python-like string handling in C++
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.
“Some of the smartest and most dedicated engineers in computer graphics have put their experience and passion into the development of these tools,” stated Rob Bredow, “and we are very excited to be able to share them with a much wider audience.”
To launch these open source technologies, Imageworks engineers will be at SIGGRAPH, the international conference of computer graphics held this year in New Orleans, August 3-8. There will be a “Birds of a Feather” meeting around the topic of voxel data storage, on Thursday, August 6 at 9:30 AM in room 287 at the Ernest N. Morial Convention Center. Imageworks is also launching a website to keep the developer community updated on its open source projects at http://opensource.imageworks.com.
While proprietary technologies have long characterized the visual effects and animation industry, recent years have seen increasing adoption of commercial technologies with proprietary solutions serving more specialized needs. With more productions shared between multiple companies and more mobile artists, standards and common technologies enable greater interaction. The industry’s first significant effort in this regard was in 2003 when ILM released OpenEXR, a 16-bit, floating-point file format system.
Highlights of the release include the following:
Field3DField3D 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 MigrationsScala 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 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.
Maya ReticleOriginally 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.