- Turn a selection of
Touch Designer
ops into a tracked component - Automatically create local
git
repos 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
git
repos)
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
.json
data. - [Dock] Dock
ops
to the placeholder. - [Export Json] Export selection-data as
.json
. - [Export tableDAT] Export
tableDAT
containing 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
git
log for current branch. - [Set Custom Remote] Open a confirm dialogue to add a new
git
repourl
to 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.tox
included 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