Giter Site home page Giter Site logo

mmazerolle / openassetio Goto Github PK

View Code? Open in Web Editor NEW

This project forked from openassetio/openassetio

0.0 1.0 0.0 3.17 MB

An open-source interoperability standard for tools and content management systems used in media production.

License: Apache License 2.0

Python 100.00%

openassetio's Introduction

OpenAssetIO

An open-source interoperability standard for tools and content management systems used in media production.

OpenAssetIO defines a common set of interactions between a host of the API (eg: a Digital Content Creation tool or pipeline script) and an Asset Management System.

It aims to reduce the integration effort and maintenance overhead of modern CGI pipelines, and pioneer new, standardized asset-centric workflows in post-production tooling.

OpenAssetIO enabled tools and asset management systems can freely communicate with each other, without needing to know any specifics of their respective implementations.

The API has no inherent functionality. It exists as a bridge - at the boundary between a process that consumes or produces data (the host), and the systems that provide data coordination and version management functionality.

Scope

The API covers the following areas:

  • Resolution of asset references (URIs) into locatable data (URLs).
  • Publishing and retrieval of data for file-based and non-file-based assets.
  • Discovery and registration of related assets.
  • Replacement/augmentation of in-application UI elements such as browsers and other panels/controls.

The API, by design, does not:

  • Define any standardized data structures for the storage or description of assets or asset hierarchies.
  • Dictate any aspect of how an asset management system operates, organizes, locates or manages asset data and versions.

The API builds upon the production-tested Katana Asset API, addressing several common integration challenges and adding support for a wider range of asset types and publishing workflows.

API documentation

The documentation for OpenAssetIO can be found here: https://thefoundryvisionmongers.github.io/OpenAssetIO.

Project status

Important: The project is currently in early beta stage and is subject to change. Do not deploy the API in production critical situations without careful thought.

We are currently working towards a v1.0.0 release. At present, the API is sketched in pure Python, whilst some structural revisions are being made. Once the surface area has stabilized, the Core API will be ported to C++ with bindings to Python.

The code is presented here in its current form to facilitate discussion and early-adopter testing. We actively encourage engagement in the discussion and to give feedback on current Issues and Pull Requests.

We have been making some structural changes prior to migrating to this repository, updating from Python 2 to Python 3 and removing some spurious/legacy concepts. There may well be some rough edges so bear with us whilst we get things ship-shape.

Please see the project board for work in progress, as well as up-coming topics.

TODO list

  • Migrate M&E related Entity/Relationship specifications
  • AR2.0 interop investigations
  • Migrate ManagerPlugin test harness
  • C++ port of Core API
  • Katana Asset API migration guide/shims
  • Windows and macOS support

Background

Within the Media and Entertainment sector, digital content (such as images, models and editorial data) is usually managed by a central catalog. This catalog is commonly known as an "Asset Management System", and forms a singular source of truth for a project.

OpenAssetIO provides an abstraction layer that generalizes the dialog between a 'host' (eg. a Digital Content Creation application such as Maya® or Nuke) and one of these systems - a 'manager' (eg. ShotGrid, ftrack or other proprietary systems).

This project first began in 2013, taking inspiration from the production tested Katana Asset API to make it more suitable for a wider variety of uses. Modern pipelines are incredibly nuanced. Finding a common framework that brings value in this space is challenging to say the least. Prototypes built during the development of OpenAssetIO over the last few years have demonstrated significant developer and artist value.

We hope the API forms a practical starting point that addresses many real-world use cases, and as an industry, we can evolve the standard over time to support any additional requirements. We are currently investigating the relationship with Ar 2.0, which appears to overlap with a subset of OpenAssetIOs concerns.

Getting started

System requirements

  • linux (macOS and Windows are currently unsupported)
  • Python 3.7 or later

Installation

git clone [email protected]:TheFoundryVisionmongers/OpenAssetIO
cd OpenAssetIO
python3.7 -m venv .venv
. .venv/bin/activate
pip install -e .

Running tests

pip install -r tests/requirements.txt
pytest

Getting involved

Maya®, is a registered trademark of Autodesk, Inc., and/or its subsidiaries and/or affiliates in the USA and/or other countries.

openassetio's People

Contributors

foundrytom avatar feltech avatar fn-yves avatar fnraihankibria avatar tomfoundry avatar steve-adamsatfoundry avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.