OpenColorIO Configuration for ACES
March 15, 2025 ยท View on GitHub
.. SPDX-License-Identifier: CC-BY-4.0 Copyright Contributors to the OpenColorIO Project.
OpenColorIO Configuration for ACES
.. start-badges
|actions| |artefacts|
.. |actions| image:: https://github.com/AcademySoftwareFoundation/OpenColorIO-Config-ACES/actions/workflows/continuous-integration-quality-unit-tests.yml/badge.svg :target: https://github.com/AcademySoftwareFoundation/OpenColorIO-Config-ACES/actions/workflows/continuous-integration-quality-unit-tests.yml :alt: Continuous Integration - Quality & Unit Tests
.. |artefacts| image:: https://github.com/AcademySoftwareFoundation/OpenColorIO-Config-ACES/actions/workflows/configuration-artifacts.yml/badge.svg :target: https://github.com/AcademySoftwareFoundation/OpenColorIO-Config-ACES/actions/workflows/configuration-artifacts.yml :alt: Configuration Artifacts
.. end-badges
The OpenColorIO Configuration for ACES <https://github.com/AcademySoftwareFoundation/OpenColorIO-Config-ACES>__
is an open-source Python <https://www.python.org>__ package implementing
support for the generation of the OCIO configurations for the
Academy Color Encoding System <https://www.oscars.org/science-technology/sci-tech-projects/aces>__
(ACES).
It is freely available under the
New BSD License <https://opensource.org/licenses/BSD-3-Clause>__ terms.
.. contents:: Table of Contents :backlinks: none :depth: 2
.. sectnum::
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 <https://docs.google.com/spreadsheets/d/1z3xsy3sF0I-8AN_tkMOEjHlAs13ba7VAVhrE8v4WIyo>__-driven generation.
-
Generators producing the OCIO CG and Studio configurations.
Spreadsheet <https://docs.google.com/spreadsheets/d/1PXjTzBVYonVFIceGkLDaqcEJvKR6OI63DwZX0aajl3A>__-driven generation.
-
Included CLF transforms along with generator and discovery support.
User Guide
Installation ^^^^^^^^^^^^
Cloning the Repository
The *OpenColorIO Configuration for ACES* repository uses `Git submodules <https://git-scm.com/book/en/v2/Git-Tools-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
uv
~~
The *OpenColorIO Configuration for ACES* repository adopts `uv <https://github.com/astral-sh/uv>`__
to help managing its dependencies, this is the recommended way to get started
with development.
Assuming `python >= 3.10 <https://www.python.org/download/releases>`__ is
available on your system along with `OpenColorIO <https://opencolorio.org>`__,
the development dependencies are installed with `uv <https://github.com/astral-sh/uv>`__
as follows::
git clone --recursive https://github.com/AcademySoftwareFoundation/OpenColorIO-Config-ACES.git
cd OpenColorIO-Config-ACES
uv sync --all-extras
The *aces-dev* *CTL* reference graph can be plotted but it requires `Graphviz <https://graphviz.org>`__
to be installed on the system.
Docker
~~~~~~
Installing the dependencies for the `previous config generator <https://github.com/imageworks/OpenColorIO-Configs>`__
was not a trivial task. For ease of use an `aswf-docker <https://github.com/AcademySoftwareFoundation/aswf-docker>`__
based container is now available.
Creating the container from the `Dockerfile <https://docs.docker.com/engine/reference/builder>`__
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
~~~~~~~~~~~~~~~~~~~~
- `python >= 3.10, < 3.14 <https://www.python.org/download/releases>`__
- `opencolorio <https://pypi.org/project/opencolorio>`__
- `requests <https://pypi.org/project/requests>`__
- `semver <https://pypi.org/project/semver>`__
Optional Dependencies
~~~~~~~~~~~~~~~~~~~~~
- `colour-science <https://pypi.org/project/colour-science>`__
- `graphviz <https://www.graphviz.org>`__
- `jsonpickle <https://jsonpickle.github.io>`__
- `networkx <https://pypi.org/project/networkx>`__
- `pydot <https://pypi.org/project/pydot>`__
Docs Dependencies
~~~~~~~~~~~~~~~~~
- `pydata-sphinx-theme <https://pypi.org/project/pydata-sphinx-theme>`__
- `sphinx <https://pypi.org/project/sphinx>`__
Development Dependencies
coverage <https://pypi.org/project/coverage>__coveralls <https://pypi.org/project/coveralls>__hatch <https://pypi.org/project/hatch>__invoke <https://pypi.org/project/invoke>__pre-commit <https://pypi.org/project/pre-commit>__pyright <https://pypi.org/project/pyright>__pytest <https://pypi.org/project/pytest>__pytest-cov <https://pypi.org/project/pytest-cov>__pytest-xdist <https://pypi.org/project/pytest-xdist>__
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. | +-------------------------------+----------------+----------------------------------------------------------------------------------+ | Pypi Package | Unavailable | | +-------------------------------+----------------+----------------------------------------------------------------------------------+
Usage ^^^^^
Tasks
Various tasks are currently exposed via `invoke <https://pypi.org/project/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`` |
+-----------------------+---------------------------------------+
Studio Config
*************
+-----------------------+-------------------------------------------+
| Task | Command |
+-----------------------+-------------------------------------------+
| Build | ``invoke build-config-studio`` |
+-----------------------+-------------------------------------------+
| Build (Docker) | ``invoke docker-run-build-config-studio`` |
+-----------------------+-------------------------------------------+
| Updating Mapping File | ``invoke update-mapping-file-studio`` |
+-----------------------+-------------------------------------------+
API Reference
-------------
The main technical reference for `OpenColorIO Configuration for ACES <https://github.com/AcademySoftwareFoundation/OpenColorIO-Config-ACES>`__
is the `API Reference <https://opencolorio-config-aces.readthedocs.io>`__.
About
-----
| **OpenColorIO Configuration for ACES** by OpenColorIO Contributors
| Copyright Contributors to the OpenColorIO Project โ `ocio-dev@lists.aswf.io <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 <https://github.com/AcademySoftwareFoundation/OpenColorIO-Config-ACES>`__