EnglishEspañol
Extending AYON with add-ons

Extending AYON with add-ons


by Cristina Fernández Gómez, Pixel-Nexus | 04 June 2025

You may have heard of AYON, an open source pipeline developed by Ynput. Some of our customers are using it and we have been customizing it for them.

This article gives an overview of our experience extending AYON, and more specifically describes one of our last customizations: an AYON connection with Version Control Systems such as Git and Plastic.

What is a pipeline

If you don’t know what a pipeline is, think about it as a set of tools to manage data between steps and departments. For example, after animating a shot, the lighting artists will need the scene and the animation. These are expected in a specific format and with the required data for the artist to proceed. The pipeline is in charge of preparing the necessary data. Basically, pipelines reduce the chances of human errors and take care of administrative tasks through automation.

Pipeline tools usually have a desktop app and also a web server or database to manage tasks and files through a web based interface. Users can work from the desktop app and see their progress from the web interface. AYON can be connected to external production tracking systems like Flow Production Tracking or Aquarium, to extend the task management functionality, but also provides task management capabilities if you choose the paid option.

How AYON works

We started our journey by learning the basics of AYON. It has a modern and simple web interface where you can track and define tasks, file structures, and progress for the user's day-to-day activities. For administrators and developers, there are configuration options with three levels of override depth: studio settings, applicable to the entire organization, project settings, and site settings, applicable per user.

As a developer you will probably want to extend and customize your pipeline functionality based on the production needs. In AYON you can use “add-ons” for this.

What are add-ons

“Add-ons” are individual extensions created to implement functionality into the desktop application. You can pack multiple “add-ons” and their configurations into a package called “bundle”. All the “bundles” that you create are saved in a list at the web server. There you can select which “bundle” is active for production or for development. Unlike “production“ bundles, “dev” bundles allow changes after creation, making the testing process easier and faster.

There is a wide variety of official “add-ons” developed by the AYON team. These “add-ons” can implement a set of useful tools inside DCCs, such as Maya or After Effects. They can also connect AYON with external tools, for example, production tracking tools, as we mentioned before.

Developers can also create custom settings for their “add-ons”. You can define the type of data to be filled in by the user, and in what way this is going to be displayed at the web interface. Those settings can be retrieved by the “add-on” during execution. It is an easy way to let the user define parameters for the “add-on” without much complication.

What we wanted to do

We saw that there is an official “add-on” in development that connects AYON with Perforce, a well known Version Control System. Since other Version Control Systems (VCS) such as Git or Plastic are not implemented yet, but some of our customers use them, we decided to develop “add-ons” for them.

VCS is software that keeps track of changes in files. They allow the user to go back to previous versions, or to avoid permanent loss of work, by "committing" (or saving in the VCS) the changes of their work files. This could play a big role combined with the automation of a pipeline.

For example, when an artist finishes a task, they “publish” a new version of the file. Publishing is a common step in most pipelines, it is in charge of file validation before sending it to the next department. Instead of changing all instances where older versions were used (for example, an asset imported in 5 different scenes), you can directly apply the changes into the original file without losing previous states, by implementing a VCS.

That is why our “add-ons” are focused on implementing “commits” during the publication execution.

Development challenges

AYON “add-ons” are mostly made with Python combined with other languages and interfaces for server communication, such as REST, GraphQL or C++ if needed. In our case we only used Python, but we faced different challenges for each “add-on”.

For the Git “add-on”, we used a Python library called “GitPython”. This library is not implemented with AYON, so we had to create a dependency package. Fortunately, AYON works with Poetry, a tool that manages and installs dependencies. AYON also provides a custom tool to create dependency packages. These tools are in charge of reading the files where dependencies are defined in each “add-on”, so we needed to create this file.

On the other hand, for the Plastic “add-on”, we needed to communicate directly with the Plastic web API, since there is no library for this. What we did was request information from the API and handle the responses. Requests take more time compared to using a library, so we had to reduce the amount of requests as much as possible.

Apart from the challenges specific to each “add-on”, both share the same workflow. As we mentioned before, the publishing process executes a set of actions before publishing the file. In AYON there is a publishing tool that can be extended with “plug-ins”. Each “plug-in” is an individual action that can be categorized as: collection, validation, extraction and integration.

With collection and validation “plug-ins” we retrieved information about Git and Plastic to check their installation and work environment before trying to publish anything. With the integration “plug-ins” we created the files and their paths, to finally “commit” the changes.

To complete the functionality for our “add-ons”, we created some settings for the web server to let the users or administrators define things like the destination workspace, a git repository, and some checkboxes to customize the execution.

Conclusion

Based on what we experienced, AYON is easy to configure and customize, and has useful features that speed up the development process.

We have noticed that the technical documentation is incomplete. There are many potential implementations that, once understood, are easy to replicate, yet there is no information available on them. We expect Ynput to expand this documentation in the future.

Another thing that should be improved is the restriction to only one active production “bundle”. For studios that need different sets of “add-ons” per production, it can be really uncomfortable.

In general, there were no relevant problems during the development. Plastic is significantly easier to set up and understand than Git, however, an argument against the usage of Plastic is their API request times. They slow down the development process and can be problematic in a big production.

We’ll continue to develop and experiment with all the possibilities that AYON offers, and help this open source project grow. We are eager to see what is coming next for this pipeline! Until then, we leave the documentation links down below in case you are interested in trying it yourself.

AYON webpage

AYON User docs

AYON Admin docs

AYON Dev docs

AYON Version Control

We use cookies to enhance your user experience. By continuing to visit this site you agree to our use of cookies.