Philosophy
- Functional parity with GLSL TOP
- A user interface that is as simple, pleasant, and straightforward as possible
- Dynamically generated TouchDesigner parameters by declaring uniforms (with customizable properties)
- Minimal CPU overhead
- Easy use, creation, and management of your own libraries of presets and functions
- One-click auto-parsing and importing of third-party libraries (Lygia is fully integrated)
- One-click export of your shader as a standard GLSL network, eliminating framework dependency
Current Limitations
Tests were run on a Windows system, an AMD CPU, an RTX 3XXX GPU, and the latest version of TouchDesigner 2022. If you encounter any critical bugs, please let us know in the issues section of the repository.
The documentation is currently in a 'work in progress' state and will be updated soon. It will be available in both French and English.
new Features
- Added Instance manager Panel (browse all Pixel Wrangle exported instances in the project, reload in editor with double click, open parameters, viewers, network)
- Added instance linking (Track currently selected instance and load it automatically in the main UI to edit)
- Added macros allowing to switch between Compute and Vertex/Pixel shader modes on the fly without editing code (see help/readWrite preset for usage)
- Added miu_lab utilities functions for basic raymarching (ray and light structs, shadow, ao, normals, uniform fog)
- Added miu_lab noise functions (FBM, FastNoiseLite)
- Added raymarching presets based on miu_lab utilities functions
- Added pin instance CTRL L - pin parameter/viewer - code CTRL SHIFT L
- Added layout mode in viewer to check all buffers in single viewer
Improvements
- Global UI improvements (add header bar, auto layout parameter pane, layout mode in viewer panes, pins, etc.)
- Allow single Pixel Wrangle OP manipulate multiple nodes (called 'Instances')
- Added storage in /storage. Pixel Wrangle is now an external tox that reload at startup
- Allow drag and drop previously exported instance in UI to reload it using op storage
- Recalling an instance will keep all parameter values as they are tuned in the instance
- When Pixel Wrangle is linked to an instance : Feed instance inputs as inputs fallback in main UI
- Improved autofocus current OP in parameter pane (contextual edit viewer, node type hints : blue = Pixel Wrangle Master, green = Pixel Wrangle instance, grey= regular OP)
- Edit node name in parameter pane
- Move build lib and export icons in header
- Move resolution, mode, etc. icons on the right
- Updated Macros and presets to use the new write() function macro
- Updated help presets
bug fixes
- Include lygia readme and license in imported libraries
- Fixed pane w/h min size
- Fixed string expression properties in IO tab
- Fixed some sticky keyboard shortcuts
Quick Install
Installation
Manual
- Use Git to clone the repository with all its submodules at the root of your Palette folder located in Documents/Derivative
git clone --recurse-submodules https://github.com/miu-lab/Pixel-Wrangle.git
- Update your Palette
Automatic
- Download and execute setup.sh (with Git Bash) provided in the Release section
- Update your Palette