/FunctionStore_tools

TouchDesigner workflow tools and UX improvements and more

Primary LanguagePythonMIT LicenseMIT

FunctionStore_tools

by Daniel Molnar (Function Store). Watch the InSession stream with the TouchDesigner team covering the tools in depth!

Download FNS_tools TOE Download FNS_tools TOX Total Downloads


This is a collection of TouchDesigner hacks and tools that can help you improve workflow as well as manipulate the default behavior of TD. For example, with these tools you will be able to place operators with your preferred default parameters, operator chains, or even full render networks with one click; as well as swap operators, and more.

The design principle of these tools is to be seamlessly integrated with the user experience of TD, meaning the learning curve and adaptability of these tools should be easy for any level of TD users.

One main improvement area can be found at the bookmark toolbar. Upon installing additional icons will appear in the UI, giving you easy access to some of the main functions. However there are tools that work in the background and are accessible with simple shortcuts.

Everything is documented here, so be sure to refer to the Wiki and in general to my TD Tips & Tricks & Hacks (TBA) blog post.

Please help by reporting any issues here on GitHub or use the Troubleshoot channel on my Discord.

A lot of the tools are made by Function Store, with notable contributions from AlphaMoonbase.berlin, Yea Chen and Greg Hermanovic, please support them <3

While these tools are here for all the community to enjoy, Patreon follows are appreciated!

Installation

  1. Ensure that you have minimum TouchDesigner.2023.11600 version installed (no guaranteess with older versions)
  2. Download the latest release FunctionStore_tools_2023.tox from the releases sidebar
  3. Open a new project file
  4. Drag and drop the downloaded .tox to the root (/) level of your network, or drag and drop the .tox to an existing project file's root level
  5. (Strongly Suggested) Save the project file and set it as default startup file in Preferences->General->Startup File Mode/Custom Startup File so that it is used in every project from then on!
  6. (Alternative Strong Suggestion) There is a FNS_TDDefault_2023.toe file which already has the toolkit inside, feel free to use that as a Custom Startup File!
  7. Bonus: Alt-RightClick (or Alt-MiddleClick) on any of the newly added toolbar icons to open the relevant wiki in a browser! (Option-Right/MiddleClick for Mac users)

Note: There might be errors shown initially but upon right clicking on the component and clicking Clear (Children) Script Errors they should be gone, or they can be ignored.

Mac Compatibility

While 99% of the features work identically for Mac, users should pay attention to the following:

  • Olib Browser does not work on Mac
  • It is very hard to stay consisten with hotkeys on Mac ,so When referring to hotkeys in the Wiki Alt refers to Cmd
    • With a lot of exceptions, but those will be clearly documented. Let me know if something is missing!

Self-Update Feature

If the toolkit (v2.4.0+) is installed in your project and there is an update, the ? icon in the toolbar will have a yellow border. Clicking the icon will prompt you for an update, you can say No in which case it will take you to the Wiki as usual, otherwise the following is going to happen:

  • Save all configs (custom parameters of tools) to a json file
  • Download the new version of the toolkit .tox into the user palette, and replace the existing one with it
  • Load all the saved configs from the previously saved json file

This way we can ensure that your settings are retained between updates, alongside the externally retained data, outlined in the next chapter.

Syncing/Externalizing

There are a couple of components whose states/contents you'll probably want to synchronize between your projects, such as OpTemplates, ExprHotStrings, or Global ResetPLS exceptions. These are saved into a folder inside your User Palette, and can be toggled On or Off.

The state of some other components such as MIDI/OSC Maps get saved into your project folder for easy migration and future-proofing for updates.

These can be turned on or off in the Custom Parameters of the toolkit, which you can also access by right-clicking the ( button in the toolbar.

The general settings of the tools (the Custom Parameters) can also be saved and synced between projects with the Save/Load All Configs To/From JSON buttons. You need to explicitly hit save whenever you make some significant change you'll want to synchronize to other projects, however there is a toggle for Auto-Loading the configs after startup. This json file is also used for the Self-Update Feature in which case the settings are saved and re-loaded automatically.

Custom Parameters

At the base level of FunctionStore_tools.tox you can find some custom parameters that allow you to customize its main functionalities on a broad scale.

Should you want further customization, it is possible at the component level of each tool, feel free to dive in and customize each!

You can easily access these main settings by right-clicking the button in the toolbar.

Active tab

In this tab you can choose to disable some of the components, that you might find annoying or unwanted. I only added the ones I personally might want turned off occasionally. I also crammed in ParPromoter Ref/Bind which is explained here: CustomPar Tools

Syncing

Turn On or Off Syncing/Externalizing for individual modules (On by default). See Syncing/Externalizing for more info.

See TD2023 Migration guide for OpTemplates.

Repo Structure

The monolithic FunctionStore_tools_2023.tox can be found in modules/release. This is what you should be using in your project files.

Individual .tox files can be found in the modules/suspects/FunctionStore_tools folder. Please note that some modules expect the presence of others in order to work, but many of these should work individually also.

There is a FNS_TDDefault_2023.toe project file for you to quickly test the tools, or use as a default startup project file!


Alt-RightClick (or Alt-MiddleClick) on any of the newly added toolbar icons to open the relevant wiki in a browser! (Option-Right/MiddleClick for Mac users)


Acknowledgements

Huge thanks to the contributors:

  • AlphaMoonbase.berlin with Olib Browser, op_store, midiMapper, oscMapper and lots of best practices I've learned from his components.

  • Yea Chen for the ever useful TD_SearchPalette.

  • Greg Hermanovic for the IO filters for the OP Create dialog, and TouchDesigner.

  • Dotsimulate for OP Create Dialog OpType Acronyms mod

  • Acrylicode and kim0slice for the early feedback and testing.

Notable Mentions

Here are some links of mostly free tools/resources:

  • Olib by Wieland Hilker (Alphamoonbase.berlin): the de-facto free TD .tox marketplace
  • TD-Launcher by Lucas Morgan: if you're using multiple TD version installs this is a must have

License

Copyright 2024 Daniel Molnar / Function Store

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.