While most people associate Disney with Mickey Mouse, animation, and amusement parks, the company is forging a path in the open source software realm, encouraging contributions from its developers and releasing software of its own.
Not surprising, several projects involve images, such as the OpenEXR high-dynamic-range image file format developed by Disney subsidiary Industrial Light and Magic. Others are less image-focused, including Munki, a set of tools to help MacOS X admins manage software installs and removals.
The company’s GitHub repo highlights its Open Source Program, through which it encourages Disney developers to tap open source software, contribute to open source projects, and release what they create to the open source community at large. Disney’s GitHub repo “features” a few homegrown open source projects in particular, including Universal Scene Description (USD), which Disney notes as being the core of Pixar’s 3D graphics pipeline.
According to the repo website, Disney uses USD in every 3D authoring and rendering application, including Pixar Presto. Disney describes USD as the first publicly available software that scales to interchange and augment arbitrary 3D scenes that may be composed from many elemental assets. It enables assembly of assets into virtual sets, scenes, and shots and transmits them between applications. Editing is done via a single API. The intention is for Pixar to evolve USD to serve as a common language for defining and editing 3D data.
Also in the 3D department, the Partio project is a C++ library for working with particle formats, including GEO, BGEO, and PTC. It has a Python API and command-line tools. Partio is meant to provide a unified interface akin to unified image libraries for easier dealing with particle files. “Particles are an important part of effects work, because they allow free-form information in 3D space. Unfortunately, there is no standard format for particles akin to Wavefront .obj. Most animation systems have their own proprietary particle formats,” says documentation for the project.
Another featured project, Dragonchain, is geared to simplify integration of applications into a blockchain. Developed by Disney in Seattle this year, Dragonchain is aimed at protecting business data in a currency-agnostic, interoperable manner. Disney’s Reposado, meanwhile, is a set of Python-based tools that enables hosting of Apple software updates on the user’s choice of servers. The software replicates functionality of MacOS X Server’s Software Update Service. “Reposado contains a tool (repo_sync) to download Software Update catalogs and (optionally) update packages from Apple’s servers, enabling you to host them from a local web server,” the project’s GitHub repo states. A command-line tool is featured for creating branches of Apple catalogs.
The Ruby language also gets a nod from Disney, with ruby-jss, formerly known as jss-api-gem. This project, also from Pixar, offers a JAMF Server Software (JSS) module for working with JAMF Software’s Casper Suite for managing Macs in a business. The suite will be renamed JAMF Pro. “The module abstracts API objects as Ruby classes, which interact to allow simpler automation of Casper-related tasks,” according to project documentation.
Also regarding animation, the OpenSubdiv project offers an API for integration into third-party digital content development tools. Featured are libraries to implement subdivision surface evaluation on massively parallel CPU and GPU architectures. “Our intent is to encourage a geometry standard for subdivision surfaces, by providing consistent (i.e. yielding the same limit surface), high-performance implementations on a variety of platforms.” GPU technology in OpenSubdiv was developed by Pixar and Microsoft.
Additionally, Disney is offering via open source SeExpr a simple expression language used for artistic control and customization of core software. “We use it for procedural geometry synthesis, image synthesis, simulation control, and much more,” the documentation states. SeExpr may be fitted with an LLVM back end for compilation on GPUs and CPUs.