github tixl3d/tixl v4.1.1

pre-release7 hours ago

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.

⚠️ Your project will be automatically converted to the new structure and will no longer be compatible with older versions after that.

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.

@H44s added a whole suite of audio playback operators that you can use to build your own sequencers.

Mediapipe

@banidu 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.

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

  • [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 SpecularAA parameter range
  • Fix: [MeshDisplaceVAT] normal VAT

New:

  • Add [DelaunayMesh] with vertex color
  • Add [ColorVerticesWithField]
  • Add [SelectVerticesWithField]
  • Add [DrawScreenQuadAdvanced]

Time and Animation

  • Breaking Change: [HasTimeChanged] default from HasRewind -> hasChanged
  • Improving custom UI for [AnimValue], [Counter], [AnimBoolean], [AnimInt], [AnimVec3] and [AnimVec2] (#927)
  • [SequenceAnim] got new Phase parameter

Strings, Numbers, and Colors

  • [BlendStrings] supports blending more than two strings
  • [SearchAndReplace] regex support can be toggled; returns original content if replace or search pattern is empty
  • Increased max buffer length of [String] input field to 32k
  • [KeepFloatValues] has new DefaultValue parameter
  • [ValuesToTexture2] uses input and output ranges and supports GainBias

New:

  • Add [EaseKeys], [EaseVec2Keys], [EaseVec3Keys] 💖@enderprism
  • Add [DefineIqGradient]
  • Add [PickGradient]
  • Add [HSBToColor]
  • Add [CombineColorLists]
  • Add [IntListToBuffer] and [IntListLength]

Control and Logic

  • Add [ExecuteValueUpdate]
  • Add [ComputeImageDifference]
  • Add [SelectVec3FromDict]
  • Add [GetObjectVar] and [SetObjectVar]
  • Add [RandomChoiceIndex]
  • Add [KeepInts]
  • Add [SetIntListValue]
  • [ValuesToTexture] accepts multiple float lists

IO and Video

  • [PointsToDMXLights] refactor custom variables to dynamic list and add per-fixture pan/tilt tracking (#966)
  • [NdiInput] better source selection UX (#985)
  • Added [GetWaveform] to get the current audio waveform
  • Added [MidiSysexOutput] with example
  • Add [FreeDInput], [FreeDOutput] operators for FreeD protocol
  • Add [DataPointImportExport] and [DataPointConverter] for managing point data
  • Add [PosiStageInput], [PosiStageOutput] - PosiStageNet support for 3D position data.
  • Add [VideoStreamInput] - network based video stream input
  • Add [Video2DPointScanner] OpenCV based LED pixel scanner
  • Add: [CameraCalibrator] OpenCV based camera calibration

Don't miss a new tixl release

NewReleases is sending notifications on new releases.