Overview
Run Command has no effect on the pixels - it triggers a system command (Bash on Linux/macOS, CMD or PowerShell on Windows) at a defined moment: before the render, after the render, after each frame, or before each frame.
You can pass variables (frame number, output path, etc.) to the command through token substitution. This enables sophisticated integrations (Slack notifications, automatic copies to a render farm server, format conversion on output).
Where to find this node
- Effects Library:
Tools > Miscellaneous > Run Command - Quick add: right-click in the Node Editor →
Add Tool > Miscellaneous > Run Command
How it works
- When to Run
- When the command runs: before the whole render, after it, before each frame, or after each frame. Choose based on your needs.
- Command
- The shell command to run. It can include the full path to an executable + arguments.
- Token substitution
- Fusion variables replaced in the command:
{Frame}= current frame,{Output}= output path, etc. (depending on the Fusion version). - Synchronous vs Asynchronous
- Sync = waits for the command to finish before continuing. Async = launches it and continues right away.
Setup
Slack notification after the render:
Run Command (When = After Render,
Command = curl -X POST -d "Render done!" https://hooks.slack.com/...)
Copying the output after the render:
Run Command (When = After Render,
Command = cp /path/output.exr /server/share/)
EXR → MP4 conversion after the render:
Run Command (When = After Render,
Command = ffmpeg -i {Output} -c:v h264 final.mp4)
Per-frame watermark:
Run Command (When = After Each Frame,
Command = python watermark.py --frame {Frame})
Preprocessing before the render:
Run Command (When = Before Render,
Command = python prepare_assets.py)Controls tab
- When to Run (default: After Render)
- Before Render, After Render, Before Each Frame, After Each Frame.
- Command
- The full shell command. Include the path to the executable if it is not in the PATH.
- Synchronous (default: Off)
- When enabled, waits for the command to finish before continuing the render. Otherwise it runs in parallel.
- Show Console (default: Off)
- Shows the console output of the command in Fusion. Useful for debugging.
- Working Directory
- Working directory for the command. Lets you run it from a specific folder.
Use cases
- Render completion notifications - Slack, email, Discord webhook, etc. to let people know a render is done.
- Automated copy / deployment - copy the result to a shared server, NAS, S3, etc.
- Format conversion on output - the EXR exported by Fusion → an automatic MP4 through ffmpeg for previews.
- Preprocessing - prepare assets before the render (generate a LUT, download plates from a server).
- Watermarking - automatically add a watermark through an external script for previews.
- Logging / metrics - record render times and resource usage in a pipeline database.
- Triggers to other DCCs - launch another application (Maya, Houdini, Nuke) after the Fusion render.
Tips
- Test on the command line first - run the command manually in a terminal to check that it works before putting it in Run Command.
- Async for fire-and-forget - for notifications or actions that do not need to wait, turn off Synchronous = the render carries on without waiting.
- Sync for a strict pipeline - if the command must finish before what follows (e.g. asset preparation), turn on Synchronous.
- Show Console for debugging - while developing the command, turn on Show Console to see the errors.
- Tokens vary by version - check the Fusion documentation for the exact syntax of the tokens available in your version.
- Security: avoid raw user input - never inject unvalidated input into the command (injection risk).
- OS permissions - Fusion must have the permissions to run the command / access the target files.
- For sophisticated pipeline workflows, consider a farm manager (Deadline, Tractor) instead, which handles the orchestration between Fusion and other tools.
