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.
Table of Contents
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.
- Spreadsheet-driven generation.
- Generators producing the OCIO CG and Studio configurations. - Spreadsheet-driven generation.
- 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
- black
- coverage
- coveralls
- flake8
- invoke
- mypy
- pre-commit
- pydata-sphinx-theme
- pydocstyle
- pytest
- pyupgrade
- restructuredtext-lint
- sphinx >= 4, < 5
- twine
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 | Complete | Â |
CLF Transforms Discovery | Complete | Minor updates will be required if classification changes. |
CLF Transforms Generation | Complete | Â |
Public API Surfacing | In-Progress | What is part of the Public API is not well defined currently. |
Unit Tests | In-Progress | Â |
API Documentation | Complete | Â |
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.