The app
Autodesk Flow Production Tracking
New. An optional plugin connects JOS to Autodesk Flow Production Tracking (formerly ShotGrid): tick it in the installer, or download it (Pipeline plugins). With it you can open a task's work file, render with Writes that know where they belong, publish renders and movies for review, and load what others published. Its menu is Pipeline > Flow Production Tracking.
The plugin talks to your Flow site directly, through Flow's Python API. It doesn't need Toolkit, Flow Production Tracking Desktop or a pipeline configuration. Studios that run Toolkit can use it beside Toolkit.
JOS isn't made or endorsed by Autodesk. Flow Production Tracking is a trademark of Autodesk, Inc.
Connecting
Pipeline > Flow Production Tracking > Settings...
- Site: your Flow address, such as
https://studio.shotgrid.autodesk.com. - Sign in with:
- Script key: a script name and key your pipeline team creates on the site (Flow's Admin > Scripts). It works on every site, including those that sign in through SSO or an Autodesk account. Publishes made with a script key are credited to Credit publishes to, or to the person whose Flow login is your Windows user name.
- My login: your Flow login and password, plus the code if your account uses two-factor authentication. The password isn't kept: Flow exchanges it for a session token, and JOS keeps that token. Sites that sign in through SSO or an Autodesk account can't use this; ask for a script key.
- Projects folder: where your projects live on disk (for example
P:/projects).
Connect checks the sign-in before saving it. Keys and tokens are encrypted for your Windows account, so they can't be read on another account or computer.
For pipeline teams
Point the JOS_FLOW_CONFIG environment variable at a JSON file on a share, and every artist gets the same settings. Its keys:
| Key | What it sets | Default |
|---|---|---|
site, script_name |
The site and script (also JOS_FLOW_SITE, JOS_FLOW_SCRIPT_NAME; the key can come from JOS_FLOW_SCRIPT_KEY) |
|
root, roots |
The projects folder, and one per Flow project name: {"Demo": "P:/demo"} |
|
work_file |
Where work files go | {root}/{project}/{entity_folder}/{sequence}/{entity}/{step}/work/{entity}_{task}_v{version:03d}.joscomp |
publish_file |
Where a published work file is copied | the same, in publish/ |
render_file |
Where a Flow Write renders | .../render/v{version:03d}/{output}/{entity}_{task}_{output}_v{version:03d}.%04d.exr |
review_file |
Where the review movie goes | .../review/{entity}_{task}_{output}_v{version:03d}.mp4 |
cut_in_field, cut_out_field |
The Shot fields with its frame range | sg_cut_in, sg_cut_out |
publish_types |
The PublishedFile types used (made on the site when missing) | JOS Project, Rendered Image, Movie |
version_status, task_status |
Statuses set when publishing ("" leaves them alone) |
rev, "" |
Templates are Python format strings. Their keys:
root,project;entity_type(Shot, Asset) andentity_folder(shots, assets);entity(the shot or asset code),sequence,asset_type;step,task;version(a number:{version:03d});output(a Flow Write's output name).
An empty key, such as an asset's sequence, leaves no empty folder in the path. Each artist's own settings (flow.json beside JOS's plugin folder) override the studio's.
Working on a task
Open Work File... lists the site's projects, then their shots or assets (with a filter), their tasks, and the task's work files on disk:
- Choose a version and Open.
- Or choose New: v00N: JOS starts a new project for the task with the shot's frame range and saves it as that version.
The project remembers its task, so reopening it later (from anywhere) keeps it connected. Current Context says which task and version the open project is.
Save Next Version saves the project as the next version, after every work and published version already on disk. Flow Writes follow it.
Set Frame Range from Shot takes the project's frame range from the shot's cut in and out.
Flow Writes
Create Flow Write (also Flow Write in the Tab node picker, under Flow plugin) adds an ordinary Write after the selected node. Its path comes from the render template and follows the project's version. Everything else is the usual Write: file type, channels, compression, colour. A second Flow Write gets its own output folder (main2...). The Write shows:
- Flow version: the task and version it renders.
- Set Output Path: points it at the version's render folder again, for example after you change its path by hand.
- Publish to Flow: publishes what it rendered.
Publishing
Publish... shows the Flow Writes that have rendered, a description, and these options:
- Publish the project file: copies the work file to the publish folder and makes a PublishedFile of it.
- Upload a movie for review: for each Write, JOS makes an H.264 movie of its frames through the project's display transform (so it looks like the viewer), saves it at the review path and uploads it to a new Version for playback in Flow. The Version gets the frames' path and range, the task and the artist. The Write's frames become a PublishedFile linked to the Version, with a thumbnail.
- Then save the next version: on by default, as in most pipelines.
A version that's already published can't be published again: save the next version first. Fields your site doesn't have are left out, so a site with a different setup still works.
Loading
Load Published... lists the shot's or asset's PublishedFiles, newest first. Load (or a double-click) does this:
- an image sequence or a movie becomes a Read, with its frame range;
- a
.joscompis imported into the project; - a Nuke script is imported as JOS nodes.
Open in Flow opens the task's page on the site in your web browser.
In scripts
The plugin is the Python package jos_flow. It works in the Script Editor and headless in jos-python:
import jos, jos_flow
jos_flow.connect()
project = jos_flow.projects()[0]
shot = jos_flow.entities(project, "Shot")[0]
task = jos_flow.tasks(shot)[0]
jos_flow.open_task(jos_flow.make(project, shot, task)) # the latest version, or v001
write = jos_flow.create_write()
jos.render(write.name)
print(jos_flow.publish(description="first pass").summary())
Not yet
- A Toolkit engine (
tk-jos), for launching JOS from Flow Production Tracking Desktop and using Toolkit's apps. - Flow Capture (dailies).
