1 OpenColorIO Configuration for ACES#
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.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.
1.2 User Guide#
User Guide#
The user guide provides an overview of OpenColorIO Configuration for ACES and explains important concepts and features, details can be found in the API Reference.
Installation Guide#
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
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 >= 2, 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"
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
Pypi#
The OpenColorIO Configuration for ACES package requires various dependencies in order to run and be able to generate the OCIO configurations:
Primary Dependencies#
Optional Dependencies#
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
Usage#
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
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 |
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 |
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 |
1.3 API Reference#
API Reference#
OpenColorIO Configuration for ACES#
Common LUT Format Discovery#
opencolorio_config_aces
Classify given CLF transforms. |
|
|
Discover the CLF transform paths in given root directory: The given directory is traversed and the *.clf files are collected. |
|
Filter given CLF transforms with given filterers. |
Print the builtins CLF taxonomy: |
|
Unclassifie given CLF transforms. |
Common LUT Format Generation#
opencolorio_config_aces
|
Take a list of transforms and some metadata and write a CLF transform file. |
Ancillary Objects
opencolorio_config_aces.clf
|
Make the CLF file for BMDFilm_WideGamut_Gen5 plus matrix/curve CLFs. |
|
Make the CLF file for DaVinci Intermediate Wide Gamut plus matrix/curve CLFs. |
|
Generate OCIO Utility CLF transforms. |
|
Generate OCIO Utility CLF transforms. |
Make the CLF file for V-Log - V-Gamut plus matrix/curve CLFs. |
|
|
Make the CLF file for RED Log3G10 REDWideGamutRGB plus matrix/curve CLFs. |
Generation#
Config Generation Common Objects#
opencolorio_config_aces
|
Define the data container for an OpenColorIO config. |
|
Define the data container for a two component version identifier. |
|
Deserialize the JSON OpenColorIO config data container at given path. |
|
Generate the OpenColorIO config from given data. |
|
Serialize the OpenColorIO config data container as a JSON file. |
|
Validate given OpenColorIO config. |
Factories#
opencolorio_config_aces
dict() -> new empty dictionary dict(mapping) -> new dictionary initialized from a mapping object's (key, value) pairs dict(iterable) -> new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2). |
|
|
OpenColorIO Colorspace factory. |
|
OpenColorIO GroupTransform factory. |
|
OpenColorIO Look factory. |
|
OpenColorIO NamedTransform factory. |
|
Produce given transform. |
|
OpenColorIO transform factory. |
|
OpenColorIO ViewTransform factory. |
Reference Configuration#
aces-dev Discovery#
opencolorio_config_aces
Return the current aces-dev version, trying first with git, then by parsing the CHANGELOG.md file. |
|
Classifie given ACES CTL transforms. |
|
|
Discover the ACES CTL transform paths in given root directory: The given directory is traversed and the *.ctl files are collected. |
|
Filter given ACES CTL transforms with given filterers. |
Print aces-dev taxonomy: |
|
Unclassifie given ACES CTL transforms. |
aces-dev Conversion Graph#
opencolorio_config_aces
|
Build the aces-dev conversion graph from given ACES CTL transforms. |
|
Return the conversion path from the source node to the target node in the aces-dev conversion graph. |
|
Return the node name from given ACES CTL transform. |
|
Filter given aces-dev conversion graph nodes with given filterers. |
|
Return the ACES CTL transform from given node name. |
|
Plot given aces-dev conversion graph using Graphviz and pyraphviz. |
aces-dev Reference Config Generator#
opencolorio_config_aces
|
Enum storing the various OpenColorIO Colorspace description styles. |
|
Return the current version of given CSV mapping file. |
|
Generate the aces-dev reference implementation OpenColorIO config using the Mapping method. |
ACES Computer Graphics (CG) Config Generator#
opencolorio_config_aces
|
Generate the ACES Computer Graphics (CG) OpenColorIO config. |
ACES Studio Config Generator#
opencolorio_config_aces
|
Generate the ACES Studio OpenColorIO config. |
Utilities#
Common#
opencolorio_config_aces.utilities
A |
|
|
Return the first item of given iterable. |
|
Return the common ancestor of given iterables. |
|
Return the common ancestor path from given paths. |
Implement supports for vivification of the underlying dict like data-structure, magical! |
|
|
Convert given vivified data-structure to dictionary. |
|
Print a message inside a box. |
|
Return if Colour is installed and available. |
|
Return if jsonpickle is installed and available. |
|
Return if NetworkX is installed and available. |
Mapping of requirements to their respective callables. |
|
|
Decorate a function to check whether various ancillary package requirements are satisfied. |
|
Return if given \(a\) variable is a string like variable. |
|
Return if given \(a\) variable is iterable. |
Describe the current OpenColorIO Configuration for ACES git version. |
|
Convert given 3x3 matrix \(M\) to a raveled 4x4 matrix. |
|
|
Update given name by applying in succession the given patterns and substitutions. |
|
Regularise given version name by either adding or removing a v affixe. |
|
Validate whether given method exists in the given valid methods and returns the method lower cased. |
|
Return the title from given Google Sheet url. |
|
Generate a SEO friendly and human-readable slug from given object. |