v3.9.1
Installation and setup
- Download end extract the zip-file from the Assets below
- and follow the installation guide
Highlights
Documentation Improvements
As more and more users discover Tooll3, we recognize the need to enhance the discoverability of its features. Despite having numerous video tutorials (with @a1x-unicorn doing a commendable job of adding even more), many of the awesome possibilities remain obscure due to inadequate documentation.
Initiated by @alixcarolan to address this issue, we invested significant time in polishing the documentation interface and content. Now, when hovering over the help icon, operators present their help. We've increased font size and contrast, and now provide detailed documentation for parameters.
While it's possible to create impressive projects without delving into the documentation, you might be surprised by the power and flexibility of many Tooll's operators. With the luxury problem of having too many cool operators, we've made a start with contributions from @ylmrx, @a1x-unicorn, @newemka, and many others for the most important building blocks. We'll continue this effort in future releases.
Wiki-page: Realtime rendering for artists
While documenting the building blocks, we realized that there's a lot of terminology that might be unclear or intimidating to artists. Fear not! We've created the [Realtime rendering for artists](https://github.com/tooll3/t3/wiki/help.RealtimeRendering) page to guide you through everything you need to know. And if you still have questions, join us on Discord. We'll answer your questions and add them to the page.
New Features
Super Fast Rendering with Audio
We've implemented a compute shader to automatically convert image buffers into a format optimal for rendering MP4s and screenshots. This results in a 10× performance improvement and, depending on your hard drive speed, allows rendering MP4s in real-time. Additionally, @HolgerFoerterer has implemented audio support for export, enabling the rendering of audio-reactive videos without the need to stitch them with ffmpeg.
To enhance the video rendering experience, we've added an increment version number checkbox. Now, you can keep the render video window open as a docked window and repeatedly hit "Start Render" to render out intermediate work steps.
Support for glTF File Format
With glTF steadily becoming the de facto file format for exporting 3D file assets, we've expanded Tooll3's capabilities beyond the traditional OBJ format. Powered by the [SharpGLTF package](https://github.com/vpenades/SharpGLTF), Tooll now supports a wide variety of glTF formats and features. We automatically load and combine textures into correct channel maps for [Physically Based Rendering (PBR)](https://github.com/tooll3/t3/wiki/help.RealtimeRendering#physically-based-rendering-pbr) shading. To support scenes with multiple materials, we've introduced the [DrawScene] operator, which handles the required draw calls to the graphics card.
Based on this first implementation, we plan to support more features, especially animation, rigging and driving the position and animation of mesh with by Points. We also plan to extend the SceneSetup handling to the OBJ-file format.
We really recommend checking out the official [Gltf examples](https://github.com/KhronosGroup/glTF-Sample-Models).
Synching to Ableton Link™
You can now use the [AbletonLinkSync] operator to connect to any application in your network that sends Ableton-Link™ synchronization. Because Ableton made this protocol available as a free standard, there is now a [wide range of applications](https://www.ableton.com/en/link/products/) that support this feature. Besides Ableton Live, there are Traktor, BitWig, Touch Designer, VVVV, and DJ hardware by Denon, Numark, Akai, Native Instruments, and many more.
This is huge, because AbletonLink not only sends the tempo (I.e. BPM rate) but also the syncing within a measure. And because all timing in Tooll3 is using bars, everything(!) now is syncing perfectly: Connect a [AnimValue] to a [Blob.Radius] -> voila: perfect sync. No more tapping at VJ acts!
Enhanced Point Structure
We've completely overhauled the point structure to support colors and stretching. This expansion significantly broadens the possibilities by combining various point operators. Read all about it [here](update.BetterPoints).
Bias and Gain + Vector2 Controls
What might initially seem like technical jargon for math enthusiasts actually reveals itself as a highly adaptable parameter that can be utilized across various operators. Its versatility is such that it would be nearly impractical to use without the addition of a fantastic new user interface we've integrated into the Parameter window. This interface allows for simultaneous dragging of both parameters and provides visual representations of the settings through distribution curves and weights.
We've already incorporated BiasAndGain into [Remap], [RandomizePoints], [FractalNoise], [RemapColors], [Tint], [LinePoints], [RadialPoints], [PerlinNoise], [ImageBasedForce], and numerous other operators. For a more comprehensive understanding of its application and potential, please refer to the linked video above.
Further Interface Improvements
- You can now rename input parameters from the Editor.
- Beat tapping interaction has been improved with added keyboard shortcuts Z (tap) and X (resync measure start).
- UI scale and display scale settings have been improved for better compatibility with Windows' display scale settings like 125%.
- Evenly distributing gradient steps with Hold interpolation now also shows the last step.
- Formatting presets have been added to float and vector parameters for quick optimization of display, scale, and ranges.
- Parameter window layout has been redesigned for easier reading, with parameter groups and long parameter names no longer cut off.
- Switching between foreground and background control in focus mode is now easier.
- Midi-Devices can be rescanned from the settings window without restarting Tooll.
- Duplicating a symbol now keeps dropdown definitions.
- A new Multiply Alpha blend mode has been added to most image operators for powerful masking.
- Gradient manipulation now supports undo/redo.
- Default camera position precision has been increased to perfectly align [Layer2d] pixels for feedback effects.
New and improved Operators
Image and Effects
-
[Dither] - Converts images into bitmap graphics.
-
[AdvancedFeedback2] - An alternative 2D feedback for fluid-like animations.
-
[ShardNoise], [WorleyNoise] - Generates abstract patterns.
-
[NdiInput] @mrvux contributed significant performance improvement and stability.
-
[RemapColors] now supports cycling and the new Bias parameter.
-
[ChromaKey] supports new output modes and improved quality.
-
[Tint] is enhanced with Bias and Gain for flexible color adjustment.
-
[GodRays] avoids stretching by the render target aspect ratio.
-
[DefineLensFlare] and [DrawLensFlares], [DrawLensGlares] these operators where previously hidden behind the [LensFlareSetup]. We cleaned them up and added documentation and presets to make it much easier to build customized lens flares.
Rendering
-
[LoadGltfScene] - Loads a glTF scene with all materials as a SceneSetup
-
[DrawScene] - Draws a scene.
-
[DefineMaterials], [UseMaterial] allow for more flexible material graphs.
-
[KeepBoolean] - Maintains the status of a boolean until reset to a default.
-
[FindKeyframes] - Allows access to keyframe positions and values for queue management.
-
[ConvertTime] - Converts between bars, seconds, and frames using the current BPM.
-
[DampAngle], [SubVec3], [Vec3Distance] - Vector manipulation operators.
-
[IndexOf] - Returns the position of a search string.
Points and Particles
- [ParticleSystem] we overhauled the live-time and aging behavior of particles to make it more intuitive.
- [RandomizePoints] - is a new super powerful method to apply deterministic variations to a point buffer. We built it from scratch to avoid homogenous non-periodic distributions (a fancy term for "no patterns or artifacts for large set of points"). To keep backwards compatibility for old projects, the we keep
- [SnapVelocityForce] can be added to particle systems to snap align points to 45° or 60° angles which resulting in fancy looks especially when combined with [PointTrail].
- [VolumeForce] now supports a cylinder type.
- [RepeatMeshAtPoints] now supports stretching.
Utilities
- [AbletonLink] - see above
- [HasVec2Changed] - returns true is the change of a vector exceeds a threshold.
- [RemapVec2] - remaps the value range of a vector
Internal Improvements
- @domportera is making tremendous progress on refactoring Tooll to allow for more stable and flexible project setups. Eventually, this will enable the use of package management and the separation of user operators and resources.
- We have made progress on the new magnetic graph that will be included in an upcoming version.
- We have sped up keyframe access within animation curves.
- We list the graphics card used in the log file, which is great for debugging.
Noteworthy Contributions
- Alignment of Vector fields to a unified format by @domportera.
- Refactoring and unification of resource handling by @domportera, resulting in improved loading times.
- Code cleanup and implementation of new C# projects using Rider by @domportera.
- Numerous contributions and improvements by @newemka.
- Display and handling improvements for Midi operators by @ylmrx.
- Layout cleanup of the Settings window by @ylmrx.
Fixes
- Fixed an issue limiting the runtime of exported executables.
- Toggling bypassed operators now updates if connected to cached inputs.
- Fixed a crash when copying content from an empty console window.
- Stability improvements with over 40 fixes, monitored and managed through sentry.io crash reporting. A crash report file is now saved to the log directory as an alternative reporting method.
Hot-Fixes
v3.9.1
- Fixing an window update inconsistency that prevents the set username dialog to show