AcademySoftwareFoundation / OpenColorIO-Config-ACES

https://opencolorio.org
BSD 3-Clause "New" or "Revised" License
257 stars 36 forks source link

.. 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:

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

Poetry

The OpenColorIO Configuration for ACES repository adopts Poetry <https://poetry.eustace.io>__ to help managing its dependencies, this is the recommended way to get started with development.

Assuming python >= 3.9 <https://www.python.org/download/releases> is available on your system along with OpenColorIO <https://opencolorio.org>, the development dependencies are installed with Poetry <https://poetry.eustace.io>__ as follows::

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

The aces-dev CTL reference graph can be plotted but it requires Graphviz <https://graphviz.org> to be installed on the system and having installed the optional pygraphviz <https://pypi.org/project/pygraphviz>: python package::

poetry install --with graphviz,optional

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


Optional Dependencies


Development Dependencies


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