Skip to content

Dependencies

Most creative work doesn't exist in isolation. A Lighting task depends on Animation. Animation depends on a Character Rig and an Environment. The character rig depends on a Model, Textures, and Materials.

Clustta makes these relationships first-class. You can declare them, visualize them, and rely on them to grant access automatically.

Why dependencies?

Without dependency tracking, granting an artist what they need to do their work is a chore:

  • "I'm assigning you the Lighting task. You'll also need: the animation file, the rig, all the textures..." (Ã-20 items)
  • The artist has to ask repeatedly for missing pieces.
  • When the rig updates, no one knows which downstream shots are affected.

Dependencies fix all three problems.

What a dependency is

A directed link from one asset (or collection) to another, optionally tagged with a dependency type (e.g. uses, references, based-on). Asset A depends on Asset B means: A needs B to be useful.

Dependencies are stored in the project database - they're real metadata, not folder conventions.

Creating dependencies

Several ways:

  • Drag and drop - In the browser, drag one asset onto another. Choose Add as Dependency.
  • From the dependency graph view - Open an asset, click the dependency graph icon. From the right-side panel, click + next to any asset to add it as a dependency.
  • From the asset details pane - Add or remove dependencies from the dependency section.

Drop a collection in instead of an asset to add the entire collection as a dependency in one shot - useful for "this character depends on the entire textures collection".

Visualizing dependencies

Each task asset has a dependency graph view:

  • Shows the asset and its direct dependencies (default)
  • Toggle Full graph to expand recursively and see every transitive dependency

The right-side panel shows candidate assets you can add - filterable by type, tag, or search.

Recursive resolution on assignment

This is where dependencies pay off in production: when you assign a task to a collaborator, all of its dependencies (and their dependencies, recursively) are made available to that collaborator automatically.

Example:

Lighting (assigned to Adaeze)
├── Animation                  ← auto-granted
│   ├── Character Rig: Jako   ← auto-granted (transitive)
│   │   ├── Model: Jako       ← auto-granted
│   │   └── Textures (collection: Jako Skin)  ← entire collection auto-granted
│   └── Environment: Carpenter Shop  ← auto-granted
└── FX                         ← auto-granted
    └── ...

Adaeze receives the complete pull-down she needs. No manual sharing. No "can you also send me the X" messages.

Dependency types

Dependencies can be typed so that intent is preserved. Typical types include:

  • uses - generic dependency
  • references - the asset is referenced (linked) but not embedded
  • based-on - the asset is a derivative of another

Dependency types are configurable per project in Project Settings → Dependency Types.

Removing dependencies

From the graph view, click the – button on any dependency node, or remove it from the asset details pane.

Removing a dependency does not revoke access to anyone who is currently assigned to the parent - they keep what they've already pulled. Future assignments use the new graph.

Best practices

  • Model real relationships, not folder structure. A texture isn't a dependency of a character just because it lives in the character's folder - it's a dependency because the character's material uses it.
  • Use collection dependencies for groups. A Lighting task doesn't need to depend on each of 30 individual cowry textures - depend on the Cowries Textures collection instead.
  • Don't be afraid of deep graphs. The recursion handles it. The deeper your model, the more automatic your handoffs.

Built with love for creative professionals.