Studio Workflow
Uncanny's production workflow covering naming conventions, versioning, file formats, folder structures, DCC specifics, and archiving. Based on uncanny-workflow v2.1 (work in progress).
Pre-Production Checklist
Before a project starts, confirm the following with the client:
- Assets: Has the client delivered all necessary assets (logos, audio, etc.)?
- Deadlines: Per deliverable if they differ (offline, online, styleframes, etc.).
- Deliverables: How many versions expected (languages, resolutions, formats, overlays).
- Footage: When will it arrive, what camera/format/resolution, where will it be delivered?
- Revisions: Will there be revision meetings? When, where, how? Strong preference for physical revisions ("visies") to avoid miscommunication.
Production must always deliver:
- A quote with clear time-per-task breakdown.
- A retro planning with agreed deadlines and milestones.
Naming Conventions
File Names
Format: client-project_specifics_length_language_aspectratio_version.extension
- client: client name (e.g. berlin)
- project: project name (e.g. callebaut)
- comments: language (nl, eng, fr), aspect ratio (169, 916, 11), specifics (olv, rework), length (30s, 15s)
- version: must match version inside DCC (Premiere sequence, Blender scene, etc.)
- framenumber (####): only for image sequences, 4-digit base
- extension: defined by export format
Examples:
berlin-callebaut_hotchocolate_rework_30s_fr_169_v05.mp4diplomat-kreon_holon80_scene01shot01_rgba_lnf_lnh_0000.exr
Abbreviated versions for readability:
ber-clbt_hotchoc_re_30s_fr_169_v05.mp4dplmt-kreon_hol80_sc01sh01_rgba_lnf_lnh_0000.exr
3D renders and compositing files: version in the folder name, not the filename (makes relinking easier).
Project Folders
Format: client-project_comment
Examples: berlin-olvarit_rework, berlin-isms_2025
Avoid abbreviating project folder names unless specified.
Naming in Other Tools
- Slack: channels match the project folder name.
- Frame.io: folders match the project folder name. Use dated subfolders (
preview-0424,delivery-0424). - Teamleader: match deal/quote and project names to others. No need to repeat client name (it's attached to the client entity). Tasks should be lowercase and consistent: motion design, editing, compositing, grading, audio, vfx supervision.
GitHub
Our GitHub is github.com/UncannyBE. It hosts internal tooling and shared code the team needs to read, review, or contribute to. Client deliverables stay on Z:/, not here.
What belongs on UncannyBE:
- Internal tools and utilities (e.g.
uncanny-connectors) - Shared libraries and config
Repos are private by default. Open them up only when there's a reason.
Naming:
- Internal tools:
uncanny-<tool>e.g.uncanny-connectors - Personal sandboxes / experiments:
<person>-<topic>e.g.jeff-mediapipe - Kebab-case, lowercase, no underscores
Inside DCCs
Same methodology applies to sequences in Premiere, comps in After Effects, write nodes in Nuke: client-project_shot_scene_version.
Versioning
Client-Facing Files
v01 on the client side must be v01 on the studio side. Additional granularity:
_precutor_revisionfor additional versions_r01for revision number_alt+ specifics for alternative variants (e.g._altpancfor alternative pancarte)_m01for music versioning
Example: berlin-callebaut_hotchocolate_precut_v01_r01_m01_altpanc.mp4
Intermediary Files
Date renders after the scene/comp name: scene_001 > MMDD
Inside DCC
Version names inside the DCC must match the filename in explorer.
File Formats
Preview Files
Upload to Frame.io or transfer via fromSmash.
- Video: 'preview' preset (match resolution, H.264, .mp4, VBR 1pass, 15 bitrate)
- Still: PNG 8-bit (preferably branded)
Intermediary Files
- Masters: ProRes 4444, max depth, 16-bpc, Rec-709, .mov
- For grade: ProRes 4444 XQ, max depth, 16-bpc, Rec-709, .mov, no audio. Always include preview when sending externally.
- For VFX (sequence): EXR, ZIP compression, bypass linear conversion, no audio. Always include preview when sending externally.
- XML for grade: exported from editing suite to relink rush in grading suite.
- Audio for post: OMF with embedded media (copy/embed complete audio files).
- Audio from post: 24-bit stereo WAV.
Delivery Files
Always check/ask for technical specifications.
- Web: 'final' preset, 0db or -14 LUFS (match resolution, H.264, .mp4, VBR 2pass, 40-50 bitrate)
- Webstream: 'webstream' preset, -9db or -23 LUFS, loudness normalized R128 (match resolution, H.264, .mp4, VBR 2pass, 40-50 bitrate)
- DMAT: 'dmat' preset, -9db or -23 LUFS, loudness normalized R128 (ProRes 422HQ, 8-bit, 1080p, .mov, no alpha)
MXF 8 Channels -23 LUFS
Use the -23 LUFS mix with 8 channels in Media Encoder. Check in Premiere with Loudness Radar. Create sequence manually using 25i 8 mono discrete preset, pan track 1 and 2 to left and right.
Folder Structure (Windows Explorer)
Project folders are generated by the UC_Project_Builder tool, launched from W:\UC_Project_Builder\uc-project-builder.bat. The tool replaces the older Post Haste preset. On submission it:
- Copies the scaffolded folder tree from
app/example/to the NAS destination and renames anytemplate_v1.{aep,prproj,xlsx}files to{client}-{project}_v1.{ext}. - Optionally creates a
#{client}-{project}Slack channel, invites the team, posts a welcome message, and appends a row to the Slack Project Status list. - Optionally creates a Teamleader deal
Two checkboxes on the form ("Slack channel + project status list" and "Teamleader deal") let accounts opt out per project; both are on by default.
Frame.io integration is parked — the account runs on Adobe's V4 platform (next.frame.io) and needs an Adobe OAuth link before the V4 endpoint will respond. Wiring is in the code but disabled in the UI.
Windows-only (PowerShell). Mac users Parsec into UC_12 to run it.
00-production
0001-brandbook(brandbooks and styleguides)0002-briefing-script(briefings and scripts)0003-intern(internal documents: retroplanning, moodboards, pitchdoc)0004-other(other client-delivered info)
01-projects
The builder pre-creates named DCC subfolders and drops in a template_v1 file where relevant (renamed to {client}-{project}_v1.{ext} on creation).
0100-2Dafter-effects/containstemplate_v1.aepnuke/
0101-editpremiere/containstemplate_v1.prproj
0102-3Dblender/— full scaffolding:lib/char/,lib/envs/,lib/props/each withtextures/and_old/scenes/anim/,scenes/dev/,scenes/final/each withtextures/and_old/
0103-designillustrator/indesign/photoshop/
0104-engine(Godot, Unity, Unreal)0105-audio(Audition, Logic)
PureRef no longer has a dedicated subfolder. Houdini / Animate / Fusion files don't have dedicated subfolders either, add them inside the relevant DCC parent when needed.
02-assets
0200-footage(video footage)fromai-stills-initial(raw, unedited AI-generated stills)fromai-video-initial(raw, unedited AI-generated video)
0201-2D(image files)0202-fonts0203-3D(exported/downloaded 3D assets)0204-reference(fromclient / intern)0205-audio(music / sfx / vo)0206-socials(footage for social media content)
03-renders
0300-2D(After Effects, Animate, Nuke)ai-input(AI-generated frames reworked in Photoshop or similar before compositing)comp(2D comp renders)
0301-3D(EXR or other from Blender, Houdini)0302-from-edit(Premiere renders)0303-for-grade(renders/XMLs for Resolve)0304-from-grade(renders from Resolve)0305-for-audiopp(AAFs/OMFs)0306-from-audiopp(mixes received)
04-exports
0400-delivery(client-side exports; pre-createdMMDD/placeholder, rename per delivery date)0401-finals(final approved exports)
Note: the builder renumbered this section. Older projects on tape may still use 0401-delivery / 0402-finals.
DCC App Folder Structures
After Effects
Template: W:\AfterEffects\uncanny-template.aet
00-comps(main render comps:client-project_language_format_version)01-precomps(sorted into folders)02-assets(audio, design, footage, from-edit, reference, renders, solids)03-werkbin(temporary project items)
Premiere
Template: W:\Premiere\uncanny-template.prproj
00-edits(main sequences)01-precuts(edits, output, rush, selects)02-assets(audio with music/vo/sfx/mix, design, footage, from-fx, from-grade, reference)03-werkbin(temporary items)
DCC Specifics
Resolve
- Input: ProRes 4444 XQ 12-bit / DPX 16-bit, or XML with used rush
- Output: ProRes 4444 XQ 12-bit (native ProRes export, no Voukoder needed)
Blender
Template: W:\Blender\_blender45lts\startup.blend
Compositing setup uses Node Wrangler's "Lazy Connect" (ALT+RMB). Render paths are relative: //../../../../../04-Renders/0401_3D/render/exr/...
Render passes (lnh, 16-bit half float): rgba, alpha, mist, diffuse, glossy, transmission, volume, emit, env, ao, shadowcatcher, noisyimage, noisyshadowcatcher, greasepencil.
Data passes (ncf, 32-bit full float): depth, depth-denoise-normal, position, normal, vector, uv, crypto (object/material/asset), noisy, denoising.
Finalizing and Archiving
- Kitchen review: everyone responsible for the project reviews positives and negatives.
- File finalization and archiving:
- Account managers confirm final files are in
0401-finals. Delivery folders (0400-delivery) deleted. Socials content moved to0206-socials. Status changed to Tape? - Studio cleans folders and renders to keep only used rush/renders.
- Final exports placed on
W:\Uncanny\exportsand social posts saved. - Final exports added to Eagle library with correct tags.
- Cleaned folders stored on tape. Status changed to Y?
- Project folders moved to
Y:server for storage (1 year).
- Account managers confirm final files are in
- Closing: Slack channel, project status, Teamleader deal, and Teamleader project all closed.
Safe Zones
Templates at W:\Uncanny\safezones\png. Available formats: 1:1 Instagram, 1:1 TikTok, 4:5 Instagram, 16:9 broadcast, 16:9 online, 16:9 online Meta, 16:9 online YouTube, 9:16 online LinkedIn, 9:16 online TikTok, 9:16 online Meta, 9:16 online YouTube.
Related Pages
- uncanny-studio
- tech-stack