Releases: tixl3d/tixl
v4.1.1
TiXL v4.1.1 Release Notes
v4.1 is the first stable release in half a year and a major step up in maturity for TiXL. We focused on completely rewriting asset handling, the audio engine, and overall usability.
Major UI Improvements
Working with Assets
We completely rethought and rewrote how TiXL works with file resources. Before this change, the editor used a chaotic mix of relative and absolute file paths. As of v4.1, we switched to a human-readable and consistent address format that is used for all assets. It starts with project ID followed by a colon and the relative file path in the Assets folder.
Yes, we used the opportunity to rename the Resources/ folder to Assets/ to align it with the user interface.
The new Asset Library window provides an overview of all available assets across all projects. You can finally drag one or more files into TiXL to import them, and they will immediately show up as operators on the graph.
When selecting an operator with an asset reference, the Asset Library will automatically filter all matching types and provide a clever blue indicator that reveals that asset within the folder structure. You can then switch the reference to another asset with a simple click.
Assets can be dragged between folders and TiXL will automatically update all operators referencing them. You can also list all operators referencing an asset. Assets that are not referenced are indicated with a small zzz icon.
And in case you're wondering: since we're slowly but steadily working towards a native Linux release, backslashes are automatically converted.
We used the opportunity to clean and sort the paths of all existing assets and examples.
Thumbnails for Assets, Presets, Symbols and Projects
We added a new system to generate, load, and show thumbnails. The use for image assets is obvious, but you can also generate preview images for presets, symbols, and projects. We already create preview images for many presets and will complete this over time.
From the main menu, you can also save cover images for your projects, which makes the project list easier to scan.
Skill Quest - An interactive tutorial
We invested significant time into our new interactive and playful tutorial system. On startup, it is shown at the bottom of Project Hub and guides you through a series of small interactive puzzles and tutorials, starting with essential basics of TiXL's user interface and moving toward more advanced rendering topics.
In 4.1, we added the initial tutorials, but we plan to greatly extend this content in the upcoming release. Please give it a try and share your feedback.
Audio Engine
We completely rewrote TiXL's audio engine to streamline the implementation of upcoming features like sequences, audio effects, and audio time-clips. This already significantly reduced latency and made [AudioReaction] for live visuals snappier.
@H445 added a whole suite of audio playback operators that you can use to build your own sequencers.
Mediapipe
@banidu-512 added a whole suite of operators to use Google's Mediapipe gesture detection directly in TiXL.
Timeline
We are preparing the upcoming redesign of the timeline editor with some performance optimizations. Additionally, you can now copy and paste keyframes between operators and even between different parameters.
- You can now evenly space keyframes
- Recounting values got a touch-up
More features and improvements
- It only took us 5 years, but we finally implemented anti-aliasing in the output window.
- The output window toolbar has icons to render a screenshot or animation. These can also be triggered by hotkeys.
- When searching for assets or symbols, matches are underlined
- Fonts can be directly converted to MSDF within TiXL 💖@ExtraBinoss
Additional improvements
- Audio background images are created in the temp folder
- Stabilized exporting executables and removed unused dependencies to reduce build size
- Live hover no longer breaks on connection feedback effects
- Cleaned up warnings in the log
- Added basic support for pinch-zooming and panning with a notebook trackpad
- Exported executables avoid frame drops by pre-rendering
--
- Use the infinity slider for time-scrubbing while holding the T key
- Search window now supports searching for annotations
- Activate dropdown values on hover
- Projects can be archived in the project page. This speeds up startup timing.
--
- Symbol namespaces can be renamed and dragged between projects
- Previews can be saved for presets and snapshots
- Integer parameters have +/- buttons and an angle button to rotate 45°
- No longer used symbols can be removed with a dialog
- Support for multiple project folders
- Use "Tour Points" to create interactive tutorials
- Update: Navigate op selection history with Alt + Left/Right
- Mesh vertices now support vertex colors. This is especially useful when creating procedural meshes with [RepeatMeshAtPoints] using colored points.
More UI Fixes
- Fix updating the state of operators after disconnecting or reconnecting inputs
- Improve shader compiler output handling (show error instead of first warning)
- Fix display of HDR colors in color picker swatches
- Fix modifying keyframes with constant interpolation
- Fix render to image sequence audio processing (#977)
- Fix "gray empty" UI freeze on startup
- Fix camera interaction jittering for very low frame rates
- Improve UI when using custom UI scaling
- ...and countless more fixes and performance optimizations
Operator updates
Images and Effects
- [LoadSvgAsTexture2D] add split to layer and update the example (#963) - 💖@newemka
- Improve [ImageLevels] display of alpha channel curve
- Improve [AsciiRender] flickering when animating offset
-- - Add [FastBlur]
- Add [KeepInTextureArray] and [TimeDisplace]
- Add [RemoveStaticBackground]
- Add [TileableNoise]
- Add [TemporalAccumulation]
Points & Particles
- Improved [BlendPoints] handling of separators and unequal point buffer sizes
- Breaking [GridPoints] changed default rotation axis from 0,0,1 to 1,0,0
-- - [SwitchParticleForces] supports -1 to disable all
- [TextureMapForce] supports colorization
-- - [PointsToCPU] supports StartIndex and MaxCount parameters
- [BlendPoints] now uses smootherStep to improve quality when blending with ranges
- [LinearSamplePointsAttributes] now supports F1, F2 and a strength factor
-- - Add [CustomFaceShader], [CustomVertexShader], [CustomPixelShader], [CustomPointShader] support a consistent parameter set and fields - 💖unc
- Add [GenerateNumberLinePoints] experimental shader
- Add [BlendMeshToPoints] (#970)
- Add [PointToMatrix]
- Add [IkChain] add Direction bias parameter - 💖newemka
- Add [KeepPreviousPointBuffer]
- Add [MeshVolumeForce] works similar to [FieldVolumeForce]
- Add [SubdivideLinePointsExample]
- Add [DrawLinesAlt] and [DrawLinesAltExample] - 💖newemka
- Add [ReorientLinePoints] aligns forward Z vector along line (which is useful for camera transitions)
- Add [PointsToCamera] (work in progress)
- Add [PointInfoLines] - 💖newemka
Rendering, Scenes and Camera
- Breaking change: [DrawMesh] sets default alpha cutoff to 0. This can drastically improve rendering performance for opaque geometry.
- Added [ProjectLight] (with example) to render volumetric light and shadow - 💖@unc-quite
- [Layer2d] added texture filter parameter
- [NormalMap] supports wrap texture parameter
- [FadingSlideShow] uses GPU caching
- Fix [LoadImage] GPU caching parameter
- [DrawMotionPoints] now stretches into a pill instead of gnocki shape
- [DrawRayLines] supports FX scale factors
- [Text] now supports a billboard mode (#971) - 💖newemka
- [Text] & [TextOutline2] add sharpness parameter (#965) - 💖newemka
- [DrawMeshAtPoints] atlas mode (#979) - 💖newemka
- [OrientPoints] add screen and to camera orientation modes (#978) - 💖newemka
- Animating [Sketch] IndexOverride parameter will synchronize keyframes and sketch pages. This is super useful for drawing annotations or scribbling and retiming storyboards. Also, its asset address is initialized meaningfully.
- [TimeClip] now supports multiple connected inputs
- [RenderTarget] can now output NormalMaps which allows advanced rendering effects - 💖newemka
-- - [BlendCamera] reference supports GetCamTransformBuffer
- [ApplyCamTransform] and [VisualizeCamTrail] can be used to visualize procedural camera animations
- [OrthographicCamera] improve parameters
- [SliceViewPort] also adjusts requested resolution and has a fit aspect mode
-- - Add [ActionCamera] with [GamePad] example (#953)
- Add [ProjectLight] post effects
- Add [SpreadIntoGrid] helper
- Add [ValueRaster], [PadVec2Range], [AnalyzeFloatList]
- Add [FXAA] post effect
- Add [TransformMatrix], [TransformVec3] and [MulMatrix]
- Add [NormalMapExample]
- Add [SetRequestedResolution]
- Add [ClearSomePoints] implementation
- Add [PointColorWithField]
SDF, Fields and ray-marching
- [RaymarchField] added SpecularAA parameter
- [RaymarchField] supports NormalMap
- [TranslateField] added transform gizmo
-- - Add [BoxFrameSDF]
- Add [RotatePlaneSDF]
- Add [BlendSDFWithSDF]
- Add [SdfToColor] with Mapping modes and GainAndBias parameters
- Add [RotateField]
-- - Add [SdfReflectionLinePoints] with a nice example tutorial
- Add [ApplyVectorFieldExample]
Mesh
- [MeshFacePoints] has new output modes and improved orientation handling
- [LoadObj] fixed wrong index order (#969) and supports vertex colors
- [ExtrudeCurves] works with vertex colors
- [FlipNormals] now also reverses vertex order
- [DrawMesh], [DrawMeshAtPoints], [DrawScene] supports SpecularA...
v4.1.0.13
v4.1.0.12-alpha
Fix Executable export
v4.1.0.11 alpha
⚠️ Make a Backup of your projects before testing this pre-release⚠️
- preview release with updated player export and ProjectLight preview
v4.1.0.10 - Alpha 2
⚠️ Make a Backup of your projects before testing this pre-release⚠️
Another preview release.
- Cleaned up asset pipeline
- Added basic thumbnails support of projects and symbols
- Fixed Executable export
v4.1.0.9 - alpha
⚠️ Make a Backup of your projects before testing this pre-release⚠️
A preview release with the asset flow and latest media pipe features.
v4.1.0.8
v4.1.0.4
v4.1.0.1 - alpha
This is an intermediate release.
Please consider using v4.0.6.
v4.0.6
Release notes
Watch release video:
Installer & Releases
- Install to "Program Files" by default
- Simplify compilation without ProcessCommander and ProcessRunner
Working with projects and Export
- Fix creation of new projects
- Excluded large files (>100mb) from backup
- Fix copying of resources when exporting player
- Update tests to and copy them to AppData in release mode
- Added licenses folder
Improvements to the magnetic graph
- Connections are no longer disconnected when unsnapped
- Vertical lines can be dragged
- Add operator output views when hovering outputs and tweak look of curve line
- Implementing GraphHoverModes for MagGraph
- Prevent accidental graph layout adjustments when replacing connections
- Tweak annotation rename interaction
- Fix incorrect connection line warning when inserting multiinput
- Snap ops horizontally enabled by default
- Improve searching with Ctrl+F focus into view behaviour
- Indicate connections that are about to be removed
- Fix undo/redo when replacing a connection on an input
- Add add Node to graph context menu
- Operator names are properly scaled with UI scaling
Timeline improvements
- Automatically resolve overlapping for new timeclips
- Height of TimeClip layer area can be adjusted
- Non-connected TimeClips are not highlighted when within current time
- Reduce default timeline clip height
- Improve autoscaling of non-scalar dope sheet curves
- Increase width of updated curves
- Fix glitch in recount keyframe values
- Fix view adjustment when shift clicking on dope sheet parameter background
- Fix accidental deletion of unselected TimeClips
- Refactor DopeSheet and timeline to reduce allocations and improve display of curve animation lines
User Interface / New features and improvements
- Add HDR indicator to color swatches
- Add gradient editor curve overlays
- Tweak symbol search order
- Updated default layouts
- Refactor Value input UI to support separate clamping of min and max
- Converted more Custom Operator Uis
- Improve Infinity slider with UI scaling
General Fixes and improvements
-
Composition (background) can be pinned if nothing selected
-
Fit background image into graph (without timeline) and disable fading/clear on left edge
-
Fix rotate camera view breaking view target vector distance
-
Fix context menu in project list
-
Project list can be scrolled
-
Don't update project modification time if no symbols were changed
-
Fix toggle mute audio button in the time controls bar
-
ui-minor Display keyboard shortcut for pinning
-
Prevent multiple instanced for file resources in dropdown list
-
Prefer integrated graphic cards over MS basic render graphics card emulation
-
Initialize new gradient inputs so no more reload is required to change them from null
-
Support filenames with spaces when opening files or folders externally
-
Fix camera keyboard control while pressing mouse button
-
Fix potential crash when switching "Bypassed" failed
-
Fix exception when input for NdiOuput contains mipmaps
-
Fix dragging from Symbol Library on to Legacy Graph
Output and rendering
- Increase max bandwidth when exporting videos
- Fix graph visualization in floatList and intList grid output
Working with audio and live performances
- Fix update of audio background image
- Add Playback volume project setting
- Fix beat-tapping without disabled beat lock
- Increase max BPM rate for tapping from 200 to 600
- Clean up export soundtrack code
- Implemented reload of audio images
Performance improvements
- Optimize curve implementation
- Made Instance Outputs and Inputs from IReadOnlyList -> List to avoid allocations
- Tweak display of metrics (only show damped values)
Working with variables
- [SetVar...] operators show reference lines
- Add [SetBoolVar] [GetBoolVar]
Operators updates
Fields and shader graphs
-
Add [HeightMapSdf]
-
Add [InvertField]
-
Add [TranslateUV]
-
Add [JonBakerSDFLoader] generator. -This node is loading the jbaker sdf's
-
Add [SdfToVector] to define procedural vector fields for particle forces
-
Fix [SdfToColor] when used with particle effects
-
Fix [CustomSDF] mod definition because some presets depend on it
-
Optimize [BoxSDF] scale implementation
-
Fix [BendField]
-
Fix [PlaneSDF] transform gizmo for negative axis
-
Fix [TransformField] uniform scaling and add RotateFieldVecs parameter
-
Refactor [GenerateShaderGraphCode] to directly read template file
-
Fix [FractalSdf] to correctly initialize UVs
-
Add [CombineFieldColor] Mix mode
-
Fix [SdfToColor] combining multiple ops
Points
- New: Cleaned up [SelectPointsWithSdf] and added nice examples
- Add [ApplyVectorField]
- Update [RandomizePoints]' Fix color randomization and add Scale parameter. Not longer clamps HDR colors when not randomizing color HSB
- Update [MapPointAttributes] increase default resolution of gradient, supports amount factor, and fix color factor implementation
- Update [RadialPoints] (add color and remove obsolete parameters)
- Update [MeshFacesPoints] Cleaned up (added parameters and example)
- Update [SetPointAttributes] supports amount factor
- Fix incorrect [PointsOnImage] Fx2 default
- Fix [PairPointsForGridWalkLines] and added example
- Breaking change [SnapPointsToGrid] now uses StrengthFactor parameter
- Refactor and rename [PointTrail] -> [PointTrailFast] and [PointTrail2] -> [PointTrail]
for Particles
-
We cleaned up the namespaces. You'll now find all particle ops under Lib/particle/
-
Add [VelocityForce]
-
Add [ToroidalVortexForce]
-
Add [RandomJumpForce]
-
Add [VectorFieldForce]
-
Update [ParticleSystem] tweak settings and parameters and add EmitVelocityFactor parameter
-
Update [FieldVolumeForce] add ReflectOnCollision option
-
Update [FieldDistanceForce] add Decay parameter
-
Update [TurbulenceForce] supports ValueFields for amount
-
Update [FieldDistanceForce] clean up parameters, formatting and presets
-
Update [ReconstructiveForce] adjust default strength of
Mesh and Rendering
-
Add [Icosahedron]
-
Add [DrawSphere] helper
-
Align PBR-implementation with color fields for [DrawMesh], [RaymarchField], [DrawPointsShaded], [DrawMeshAtPoints]
-
Update [DrawLines] add FadeTooLong parameter
-
Update [DrawPointsShaded] fade out near points parameter and align it with common PBR implementation
-
Update [DrawMeshAtPoints] implementation and add ColorField support
-
Update [RaymarchField] using local space instead of position for specular lighting; add
EnableDepth parameter -
Update [DrawMesh] specular implementation
-
Update [SetEnvironment] has some useful defaults for fallback
-
Update and fix [RepeatMeshAtPoints] to support correct scaling and fx
-
Update [TransformMeshUV] adjust Pivot parameter default
-
Fix [SplitMeshVertices]
Working with animation
-
Add [AnimBoolean] including custom ui
-
Add [AnimFloatList] generator
-
Add [SetKeyframes] operator
-
Rename DelayTrigger -> DelayTriggerChange
-
Fix update of [HasTimeChanged] with multiple connections out
-
Fix Trigger OnlyOnDown
-
Fix [SetSpeedFactors] assignment
-
Add [Time] Frozen mode that enables implementing caching for animated ops
-
Fix [AnimValue] trigger timing
-
Fix [HasValueChanged] when rewinding time
-
Fix [Once] with multiple outputs
-
Renamed [Time2] to [Time]
-
Fix [SetBpm] and [GetBpm] updating
IO
- Add Banidu's IO ops for handing artnet, dmx, serial ports
- Add [VideoDeviceInput] webcam support
- Add [ArtnetInput] node for listening artnet
- Update [ArtnetOutput] with raw networking without library. Added unicast and artsync. Theres poll functions now.
- Update [SpoutInput] add UpdateCount output to help sync with frame effects
- Update [PointsToArtNetLights] Improve Nan correction and Add WhiteChannel parameter. Pan/Tilt possible to disable with channel 0.
- Update [OscOutput] supports integers
- Update [OscOutput] add FloatList input
- Fix [NDI] dependencies to support in exported executable
- Fix [Spout] required a ConvertFormat, let's try to failover to a safe default format
- Fix [MidiInput] wasTrigger update
Working with colors
- Change [RgbaToColor] default Alpha to 1
- Add [KeepColors], [PickColorFromList], [OKLChToColor] and [BuildGradient]
- Add [ColorListToInts]
- Fix excessive line in [ImageLevels]
- Add List type and [ColorList] and [StringList] can be editted in the parameter window
- Add [SampleGradient] override interpolation option. If disabled using the intrinsic gradient interpolation
- Increase gradient editor curve resolution
- Fix gradient slider context menu with multiple SampleGradientNodes
working with numbers and math
-
Add [SetVec3] and [GetVec3]
-
Add [IntListToFloatList]
-
Add [FloatListToIntList]
-
Add [RemapFloatList]
-
Add [IntsToList] and [PickIntFromList]
-
Add [DivideVector2]
-
Update [IntValue] now as beautiful op ui
-
Update [PickFloat] implementation
-
Fix [PickFloat] caching
Help and examples
- Add [HowToUseColors] tutorial
- Cleaning up ChunkInstancingExample
- Update/Fix SamplePointColorAttributesExample
Image operators
-
Add [DetectMotion] helper
-
Add [ReactionDiffusion] with an nice example
-
Update [Sketch] (uses project resource directory and handles better page interaction)
-
Update [CheckerBoard] caching
-
Update [LoadImage] to shows thumbnails in mag graph
-
Update [SinForm] to support caching
-
Update [Grain] now to ony uses local time, has a new Animation parameter and implements caching if static
Other improvements
- Update [OrthographicCamera] add Roll parameter
- Updating [VisualTest] to support waiting for async operations; Add [IoTests] ...
