Pipeline
Project structure, naming conventions, folder organization and workflows for VFX, audio, photo and visual production.
Drive Structure โ
Real Drives โ
No need to have the exact same setup, just a way I like to seperate my drives according to their usecase.
| Drive | Function |
|---|---|
| C: | Windows drive |
| D: | Sync Work here |
| E: | Sync Media here (Photo, Music, Video) |
Mapped Drives โ
These drives are virtual and each represents a folder within the folders that are synced from my Nas, for example: on the D Drive I have the folder "Work", synced with Synology Drive. Within that folder I have the folders "_PIPELINE", "Active" and "Archve". I mapped the P drive to the folder "_PIPELINE", and the I drive to the folder "Active".
| Drive | Function |
|---|---|
| I: | Active projects (Audio, Photo, Visual, VJ, Web) |
| M: | Music |
| P: | Pipeline, scripts and files for software (settings, add-ons) |
| F: | Personal files |
Remove a mapped drive from the command line:
subst A: /dReplace A with the drive letter you want to remove.
Startup โ
Two scripts execute on startup using a single InvisibleLauncher.vbs file referenced in Windows Task Scheduler. Use .\1_StartupScript_AppsToDesktop.ps1 to run the script in D:\_work\_PIPELINE\_Script\startup manually.
1. CreateDrives โ
Bat script that creates the mapped drives. In addition, VisualSubst is used to name the mapped drives.
2. AppsToDesktop โ
PowerShell script that opens apps on specific virtual desktops. Place shortcuts in folders named after the corresponding desktop (e.g. Desktop1).
Uses the PSVirtualDesktop PowerShell module. Some windows need to be put in fullscreen (F11), which requires AutoHotkey to trigger the keystroke after launch.
Work Locally with NAS Mirror โ
Create symbolic links from your Laragon www directory to your development folders on the NAS. This keeps your working environment organized while allowing Laragon to serve the sites.
mklink /D [Link] [Target]Audio Workflow โ
Folder Structure โ
MusicProduction/
โโโ Practice/
โโโ Ideas/
โโโ InProgress/
โโโ FinalTouches/
โโโ Finished/
โโโ Publish/
DJSets/
Library/
โโโ Samples/
โโโ AmbiguousRoyaltySounds/
โโโ FreeUse/Artwork finder for album art.
MusicBee + Traktor Playlist Sync โ
MusicBee: Ensure MusicBee consistently exports the M:\iTunes Music Library.xml file on close. Check under Preferences > Library > "export the library as an iTunes formatted XML file" โ point it to M:\iTunes Music Library.xml.
Traktor: In Preferences > File Management, set the "iTunes/Music Library" path to M:\iTunes Music Library.xml. Enable "Import Music-Folders at Startup" and add the folder(s) where your music files reside (e.g. M:\Music\).
Python sync script enables synchronization of playlists from any iTunes XML-compatible music library to any DJ software:
- Reads an iTunes XML library file to extract tracks from user playlists
- Copies tracks to a designated "DJ Library" folder
- Optionally converts audio files to WAV format using FFmpeg
- Creates a new XML file with updated file paths pointing to the DJ Library folder
- Skips system and auto-generated playlists
- Can skip files that already exist in the destination folder
Photo Workflow โ
Folder Structure โ
Year/
โโโ 01_Incoming/
โโโ 02_Outgoing/File Naming โ
Template
YYYY-MM-DD_Location_Subject_FileVersion.Extension
Example
2020-12-19_Zele_PubLib_001.jpg
Visual Production Workflow โ
Folder Structure โ
YYYY-MM-DD_NameClient_NameProject/
โโโ _Library/
โโโ 00_Incoming/
โ โโโ 01_Preproduction/
โ โโโ 02_Production/
โโโ 01_Preproduction/
โ โโโ 01_Moodboard/
โ โโโ 02_Storyboard/
โโโ 02_Production/
โ โโโ _Blender/
โ โโโ _DaVinci/
โ โโโ _Houdini/
โ โโโ Scene_01/
โโโ 03_Outgoing/
โโโ YYYY-MM-DD/Naming Convention โ
Use CamelCase, no spaces. Underscores only for separating parts of the filename. Always make enough iterations so you can go back a version if something goes wrong.
Model Files โ
Export files (FBX, OBJ) always share the same version number as the work file (Blender, Maya).
| Abbreviation | Meaning |
|---|---|
| CH | Character |
| P | Prop |
| F | Foliage |
Template
Project_SceneNumber_Modeltype-ModelName_FileVersion.Extension
Example
Silver_000_CH-Nora_v001.blend
Texture Maps โ
Export files (PNG, JPG) always share the same version number as work files (Substance, Photoshop).
| Abbreviation | Meaning |
|---|---|
| DIFF | Diffuse |
| AO | Ambient Occlusion |
| G | Glossiness |
| N | Normal |
| R | Roughness |
| SSS | Subsurface Scattering |
| M | Metallic |
Template
Project_SceneNumber_TextureName_FileVersion_TextureType.Extension
Example
Silver_010_NoraHair_v001_DIFF.PNG
Scenes โ
Scene count starts from 010. Models with scene number 000 are not restricted to one scene.
Template
Project_SceneNumber-Description_FileVersion.Extension
Example
Silver_010-MudWorld_v001.blend
In 3D Software โ
Max 5 letters for abbreviations.
| Abbreviation | Meaning |
|---|---|
| GRP | Group |
| MESH | Mesh |
| CRVE | Curve |
| JNT | Joint |
| LGHT | Light |
| CAM | Camera |
| LOC | Locator |
| CTRL | Controller |
| LP | Low Poly |
| HP | High Poly |
| FRCE | Forces |
Template
Type_Name_PolyType
Example
GRP_Nora_LP
Reference Library โ
For reference images, use only broad categories as folders โ put other information in the name and metadata.
Tools used: Advanced Renamer, digiKam, Python, and TagGUI.
Workflow โ
- Rename with Advanced Renamer
- Use TagGUI to generate captions into separate text files named after the image
- Run Python script to take information from the text files and add it to image metadata
- Convert all files to
.jpgfor clean metadata display
File Naming โ
CATEGORY_SUBJECT_incrementalNr
Metadata โ
A description/caption in the image's "Title" and "Subject" fields.