Applications and Tools
Introduction
The Applications addon streamlines the setup of applications and tools across your studio. It empowers you to set executable paths and startup environments, with support for various operating systems including Windows, Linux, and macOS.
Please note that the addon does not differentiate between different Linux distributions.
The Addon features two primary settings categories: Definitions and Filters:
- Definitions: available only in studio settings, allows to define all possible applications and tools that can be used across all projects.
- Filters: defines when certain applications and tools are used on project level. This filters whether a certain application or tool should be enabled in a certain launch context, like a specific task type or project-wide.
Applications Addon Settings
Show only available applications
When enabled, AYON Launcher will display only those applications for which executable paths exist on the current machine. This acts as an extra filter to the Applications filters, ensuring that inaccessible applications are excluded from view.
Applications Definitions
In this section you can manage what Applications are available to your studio, locations of their executables, and their additional environments.
In AYON context, each application that is integrated is also called a Host
and these two terms will be used interchangeably in the documentation.
Built-in Applications
Each application definition has an application group e.g. Maya, Houdini, Nuke and etc.
Each Application is made of two levels.
- Application group:
- Host name: Pipeline integration name supplied by an AYON addon, these are usually constants related to a host integration like "maya", "houdini", "nuke" and so forth. For now they are best left at the default values.
- Environment: Define extra environments that are applicable to all versions of the given application version dependent.
- Application variant: For each application variant we have
- Name: application variant name
- Label: application variant label
- Executables: Define executables (per platform).
- Arguments: Define default arguments (
--nukex
for instance) - Environment: Extend application's main environment.
- + button: To add more variants.
We currently allow the use of any characters.
However, we adhere to a specific naming convention alongside the default settings.
For names, we typically use lowercase letters, numbers, and hyphens (-
).
For labels, both uppercase and lowercase letters, as well as periods (.
), are used.
Additional Applications
It's possible to use applications addon to launch any applications that are not in built-in integrations that come with AYON.
Additional applications will only launch but offer no further AYON integration (e.g. menus, creators, publishers) as that requires an AYON addon for that application, at which point it should not be under additional applications anymore.
- + button: Add application group.
Application group in additional applications exposes few more attributes:
- Application Name: The name of the application.
- Application Label: The label of the application and the application group (the name next to the toggle).
- Application Icon: The icon that would be displayed by the AYON launcher.
Icon filename: At this moment the icon must live in applications addon codebase. More options will come in future releases.
Applications filters
These filters define the applications that will be shown in the launcher tool. It is profile based filtering that allows to filter applications for specific task types.
- Task Types: Choose from a list of task types to determine which ones the filter profile will affect. If you want the profile to apply to all tasks, leave it blank.
- Allow: Determines the mode of the filter, there are two options:
- All applications
- Selected: when chosen, the Applications list will show up.
- Applications: List of applications available for profile filter.
- + button: Add new profile filter.
Using default settings will show all applications for all task types. It is recommended to have one default profile without task types filter, with standard set of applications used in the studio.
Tools Definitions
A tool in AYON is anything that needs to be selectively added to your DCC applications. Most often these are plugins, modules, extensions or similar depending on what your package happens to call it.
Tools Definitions settings are very similar to Applications Definitions settings.
- Tool Group:
- Name: Tool name.
- Label: Tool label. Name is used if not filled.
- Environments: Environments variables that will be applied to all tool variants.
- Tool Variants:
- Name: Tool variant name.
- Label: Tool variant label. Name is used if not filled.
- Hosts: List of host names you want the tool variant to work with.
- Applications: Filter applications for which is tool applicable.
- Environments: tool variant environments
- + button: Add new tool variant.
- + button: Add new tool group.
AYON comes with some major CG renderers pre-configured as an example, but these and any others will need to be changed to match your particular environment.
Pre-configured Example - Autodesk Arnold
In this example you can see that we set most of the environment variables in the general MTOA level, and only specify the version variable in the individual versions below. Because all environments within AYON setting will resolve any cross references, this is enough to get fully dynamic plugin loading as far as your folder structure where you store the plugins is nicely organized.
MTOA will automatically set the MAYA_VERSION
(which is set by Maya Application environment) and MTOA_VERSION
into the MTOA
variable. We then use the MTOA
to set all the other variables needed for it to function within Maya.
Tools filters
Tools that will be used on application launch. It is profile based filtering that allows to filter tools for a context. Tools can have more specific filtering than applications.
All the tools defined in Tools Definitions can then be assigned to projects, certain task types or even selectively for only certain folders. You can also change the tools versions on any project level all the way down to individual asset or shot overrides. So it is possible to upgrade you render plugin for a single shot, while not risking the incompatibilities on the rest of the project.
- Folder Paths: Folder paths to determine which ones the filter profile will affect. It supports regex patterns.
- Task Types: Choose from a list of task types to determine which ones the filter profile will affect.
- Task Names: List of task names to determine which ones the filter profile will affect.
- Tools: Tools list to determine which ones the filter profile will affect.
- + button: Add application group filters profiles.
Find example of Tool definition and a profile Filter in the FAQ section below: How to make a tool available for all folder paths in a project for a specific application variant?
FAQ
How to use application variant settings?
How to use application variant settings?
Variant group settings is used to add more versions of an application. There are two ways of doing it.
Add new executable to an existing application version. This is a good way if you have multiple fully compatible versions of your DCC across the studio. Nuke is a typical example where multiple artists might have different
v#
releases of the same minor Nuke release. For example12.2v3
and12.3v6
. When you add both to12.2
Nuke executables they will be treated the same in AYON and the system will automatically pick the first that it finds on an artist machine when launching. Their order is also the order of their priority when choosing which version to run if multiple are present.Add version in case you want this version to be selectable individually. This is typically used for bigger releases that might not be fully compatible with previous versions. Keep in mind that if you add the latest version of an Application that is not yet part of the official AYON release, you might run into problems with integration. We test all the new software versions for compatibility and most often, smaller or bigger updates to AYON code are necessary to keep everything running.
What does AYON offer to customize the application environments?
What does AYON offer to customize the application environments?
Originally answered by Roy Nieterau on ynput's forums Maya - User prefs and studio prefs
- Global Environment Variables:
ayon+settings://core/environments
- Per application group environment variables. e.g. maya:
ayon+settings://applications/applications/maya/environment
- Per application variant environment variables, e.g. maya 2025:
ayon+settings://applications/applications/maya/variants/0/environment
- Tools environment variables.
Tools are special in that you can set tools to apply to only to certain contexts, e.g. only certain assets or shots instead of project-wide.
What is the syntax AYON uses for defining environments in settings?
What is the syntax AYON uses for defining environments in settings?
The syntax closely resembles JSON syntax rules:
- Each variable consists of a name/value pair, with both keys and values should be strings.
{
"MY_VARIABLE": "1"
} - Variables are separated by commas.
{
"VARIABLE_1": "A",
"VARIABLE_2": "B",
"VARIABLE_3": "C"
} - Square brackets enclose lists of values.
{
"MY_VARIABLE": ["A", "B", "C"]
} - Curly braces contain groups of variables.
{
"STUDIO_CONFIGS": {
"windows": "win-path",
"darwin": "mac-path",
"linux": "linux-path"
}
} - Note that environment variables are not cumulative by default. If you're appending to variables like
PYTHONPATH
orPATH
, ensure you include the original variable at the end of the list.{
"PYTHONPATH": [
"my/path/to/python/scripts",
"{PYTHONPATH}"
]
}
It's important to note that we recommend using list assignments for variables.
For instance, setting "MY_VARIABLE": "A;B;C"
works on Windows but not on UNIX, where the path separator is :
. Therefore, it should be A:B:C
on UNIX systems.
Defining "MY_VARIABLE": ["A", "B", "C"]
ensures the correct separator is used automatically based on the platform.
This functionality is handled by acre
, which AYON utilizes to construct environment variables. Acre includes support for platform-specific assignments, guaranteeing the use of the right separator based on the platform.
How to update the task types list in the filter settings?
How to update the task types list in the filter settings?
- in Studio settings: Task types list is generated from the default anatomy preset.
- in Project settings: Task types list is generated from the project's anatomy.
To navigate quickly, click
a+a
.
How to make a tool available for all folder paths in a project for a specific application variant?
How to make a tool available for all folder paths in a project for a specific application variant?
To achieve this result, you'd need to adjust two settings:
- In Tools Definitions: Set Hosts and Applications. This effectively makes your tool work only for the specified hosts and apps.
- In Tools Filtering: Don't set Folder Path. This effectively makes your tool available for all folder paths in the whole project.
Legacy: Applications and Tools attributes
Settings based filtering was introduced in applications addon release 1.0.0 . Before that applications were set with applications
attribute on project (located under project anatomy) and tools were set using tools
attribute on Project, Folder and Task entities.
For backwards compatibility the settings do allow to switch between new settings and attributes and the legacy behavior, so we don't break existing productions without option to change it back.
The legacy behavior is enabled by disabling the filters in settings:
By default, the settings based filters are used, but that is automatically changed to use attributes when settings from older version of applications addon are converted, so it is not needed to change it manually for backwards compatibility from older addons.
Please keep in mind that applications
and tools
attributes are deprecated, and they will be removed in future versions of applications addon. It is recommended to use the 1.0.0+ application and tool filtering instead.