An open API service indexing awesome lists of open source software.

https://github.com/academysoftwarefoundation/opencolorio-config-aces


https://github.com/academysoftwarefoundation/opencolorio-config-aces

Last synced: about 1 year ago
JSON representation

Awesome Lists containing this project

README

          

..
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 `__
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.

.. 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 `__-driven generation.

- Generators producing the *OCIO* **CG** and **Studio** configurations.
- `Spreadsheet `__-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 `__
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 `__
to help managing its dependencies, this is the recommended way to get started
with development.

Assuming `python >= 3.10 `__ is
available on your system along with `OpenColorIO `__,
the development dependencies are installed with `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 `__
to be installed on the system.

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
~~~~~~~~~~~~~~~~~~~~

- `python >= 3.10, < 3.14 `__
- `opencolorio `__
- `requests `__
- `semver `__

Optional Dependencies
~~~~~~~~~~~~~~~~~~~~~

- `colour-science `__
- `graphviz `__
- `jsonpickle `__
- `networkx `__
- `pydot `__

Docs Dependencies
~~~~~~~~~~~~~~~~~

- `pydata-sphinx-theme `__
- `sphinx `__

Development Dependencies
~~~~~~~~~~~~~~~~~~~~~~~~

- `coverage `__
- `coveralls `__
- `hatch `__
- `invoke `__
- `pre-commit `__
- `pyright `__
- `pytest `__
- `pytest-cov `__
- `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 `__.

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 `__
is the `API Reference `__.

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 `__