/OpenColorIO-Config-ACES

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

OpenColorIO Configuration for ACES

Continuous Integration - Quality & Unit Tests Configuration Artifacts

The OpenColorIO Configuration for ACES is an open-source Python package implementing support for the generation of the OCIO configurations for the Academy Color Encoding System (ACES).

It is freely available under the New BSD License terms.

1   Features

The following features are available:

  • Automatic OCIO Reference configuration generation for aces-dev CTL reference implementation.
    • Discovery of aces-dev CTL transforms.
    • Generation of the CTL transforms graph.
  • Generators producing the OCIO CG and Studio configurations.
  • Included CLF transforms along with generator and discovery support.

2   User Guide

2.1   Installation

2.1.1   Cloning the Repository

The OpenColorIO Configuration for ACES repository uses Git submodules thus cloning the repository requires initializing them:

git clone --recursive https://github.com/AcademySoftwareFoundation/OpenColorIO-Config-ACES.git

If you have already cloned the repository and forgot the --recursive argument, it is possible to initialize the submodules as follows:

git submodule update --init --recursive

2.1.2   Poetry

The OpenColorIO Configuration for ACES repository adopts Poetry to help managing its dependencies, this is the recommended way to get started with development.

Assuming python >= 3.8 is available on your system along with OpenColorIO, the development dependencies are installed with Poetry as follows:

git clone --recursive https://github.com/AcademySoftwareFoundation/OpenColorIO-Config-ACES.git
cd OpenColorIO-Config-ACES
poetry install --extras "optional"

The aces-dev CTL reference graph can be plotted but it requires Graphviz to be installed on the system and having installed the optional pygraphviz: python package:

poetry install --extras "optional graphviz"

2.1.3   Docker

Installing the dependencies for the previous config generator was not a trivial task. For ease of use an aswf-docker based container is now available.

Creating the container from the Dockerfile is done as follows:

docker build -t aswf/opencolorio-config-aces:latest .

or alternatively, if the dependencies described in the next section are satisfied:

invoke docker build

Then, to run bash in the container:

docker run -it -v ${PWD}:/home/aswf/OpenColorIO-Config-ACES aswf/opencolorio-config-aces:latest /bin/bash

2.1.4   Pypi

The OpenColorIO Configuration for ACES package requires various dependencies in order to run and be able to generate the OCIO configurations:

2.1.4.1   Primary Dependencies
2.1.4.2   Optional Dependencies
2.1.4.3   Development Dependencies

Once the dependencies are satisfied, the OpenColorIO Configuration for ACES package can be installed from the Python Package Index by issuing this command in a shell:

pip install --user opencolorio-config-aces

2.2   Components Status

Component Status Notes
aces-dev Discovery Complete Minor updates might be required when aces-dev is updated.
Common Config Generator Complete  
Reference Config Generation Complete  
CG Config Generation Complete  
Custom Config Generation In-Progress We are designing the components so that one can generate a custom ACES config.
Studio Config Generation In-Progress  
CLF Transforms Discovery Complete Minor updates will be required if classification changes.
CLF Transforms Generation In-Progress The CG Config CLF transforms are implemented
Public API Surfacing In-Progress What is part of the Public API is not well defined currently.
Unit Tests In-Progress  
API Documentation In-Progress  
Continuous Integration Complete  
CLI In-Progress  
Containerisation Complete Minor updates will be required as the CLI evolves.

2.3   Usage

2.3.1   Tasks

Various tasks are currently exposed via invoke.

This is currently the recommended way to build the configuration until a dedicated CLI is provided.

Listing the tasks is done as follows:

invoke --list
2.3.1.1   Reference Config
Task Command
Build invoke build-config-reference
Build (Docker) invoke docker-run-build-config-reference
Updating Mapping File invoke update-mapping-file-reference
2.3.1.2   CG Config
Task Command
Build invoke build-config-cg
Build (Docker) invoke docker-run-build-config-cg
Updating Mapping File invoke update-mapping-file-cg
2.3.1.3   Reference Config
Task Command
Build invoke build-config-studio
Build (Docker) invoke docker-run-build-config-studio
Updating Mapping File invoke update-mapping-file-studio

3   API Reference

The main technical reference for OpenColorIO Configuration for ACES is the API Reference.

4   About

OpenColorIO Configuration for ACES by OpenColorIO Contributors
Copyright Contributors to the OpenColorIO Project – ocio-dev@lists.aswf.io
This software is released under terms of New BSD License: https://opensource.org/licenses/BSD-3-Clause
https://github.com/AcademySoftwareFoundation/OpenColorIO-Config-ACES