- Turn a selection of
Touch Designerops into a tracked component - Automatically create local
gitrepos for each component - Push/Pull to github from
Touch Designer
Built with Touch Designer, GitPython.
TDGam is intended to address the need for proper asset management on a large scale in Touch Designer. TDGam consists of user-created "components" from selections of ops in Touch Designer.
Once a component has be created from a selection of ops, a local folder is created containing a .json and git repo in the same directory as the .toe file. This folder is where all assets used for that component are stored.
A TDGam Project consists of:
- Project (set to a folder with a project git repo)
- Components (saved in subfolders of the Project with component
gitrepos)
Project-directory
|_(project .git repo)
|
|_Components-directory
|_component-repo-folder
|_(component .git submodule)
|_component-repo-folder
|_(component .git submodule)
View the git log history for current branch.
View the branches for the current component's repo as well as perform checkout/push/pull operations.
View the current status of the staging area and manage tracked/untracked files.
View a list of the original ops making up this component(future op-management features to go here).
- [Stash] Save all contained
ops'pars, then destroy allops. - [Rebuild] Rebuild original selection from Component's
.jsondata. - [Dock] Dock
opsto the placeholder. - [Export Json] Export selection-data as
.json. - [Export tableDAT] Export
tableDATcontaining selection-data. - [Import from Json] Create component from a
.json. - [Import from tableDAT] Create component from a
tableDAT. - [Import from Remote Repo] Create component from a remote repo.
- [Expand] Rebuild the original selection, then delete the placeholder object.
- [Commit] Commit current staging area.
- [Reset] Reset the current staging area.
- [Push] Push current staging area to remote repo.
- [Pull] Pull changes from remote repo to current branch.
- [Change Branch] Checkout target branch.
- [New Branch] Create new branch from current staging area.
- [View Log] Retrieve the
gitlog for current branch. - [Set Custom Remote] Open a confirm dialogue to add a new
gitrepourlto current component.
Included with this project is a slightly modified version of MagLa's path token system. The goal of using path tokens is for compatibility across platforms, primarily between Linux-Windows. Simultaneous Windows Linux Subsystem terminal and native CMD prompt will also be supported, so the TD's can have their Linux:).
A token can be described as:
<token_name>
In this form, Path will look for a matching key in ./config/paths.json. Tokens can be made up of other tokens and combined together to create more complex paths. Currently this file must be edited manually in order to develop in your specific environment.
The Path module is located at:
./lib/maglapath.py
TDGam is being developed along side a larger Touch Designer VFX Pipeline management API: MagLa.
Main goals of Magla:
- Tool and application wrappers/launchers which inject customizations based on current show/project context settings per user.
- Asset-tracking and management using existing open-source libraries like Gaffer.
- Local per-user development and deployment overrides during production - for testing and deploying code to specific users without altering the rest of the project.
- Ingesting assets and data from external sources like 3rd-party VFX vendors.
<touch designer install folder>\bin\Lib\site-packages\tdgam
This should expose the tdgam module for importing within Touch Designer. For development it is recommended to instead use a hardlink or symlink to a local development directory.
TDGam is implemented within Touch Designer as a modification to the main UI. In order to make this modification you must first back up the original mainmenu.tox and then copy the one included with this repo. Please be cautious with this step and don't forget to back up your existing mainmenu.tox.
- rename the
mainmenu.tox:
<touch designer install folder>\Config\System\mainmenu.tox --> 'mainmenu_backup.tox'
- copy the
mainmenu.toxincluded in this repo:
<tdgam repo folder>\tox\mainmenu.tox --> <touch designer install folder>\Config\System\mainmenu.tox
Navigate a terminal or cmd prompt to the tdgam repo folder and type:
git submodule init
Then:
git submodule update
to pull the third-party dependencies included as submodules:
TDGam is intended to be managed by the MagLa pipeline, which would handle injecting the required process customizations each time Touch Designer is launched. To simulate this, a start.py script is included which injects the Touch Designer process with required environment variables and appends to the PYTHONPATH.
Because this project is still in development the paths.json will have to be manually adjusted to your environment.
Navigate to the root TDGam repo and run:
python start.py
- Jacob Martinez - Pipeline Technical Director - Magnetic-Lab
This project is licensed under the MIT License - see the LICENSE.md file for details








