Skip to content

Releases: t3kt/raytk

RayTK Library Version 0.46

26 Aug 19:52

Choose a tag to compare

Highlights

  • Compatibility with TD 2025.30770 experimental build. In particular, the palette had been broken due to changes in the List COMP. The palette has been reimplemented and works again!
  • Threaded shader compilation means you can continue working while shaders are compiling, avoiding stalled processes. But unfortunately if you rewire things and cause a second recompile, it will still stall the process. This is a limitation of the current TD implementation.
  • New imageSdf2d lets you bring in images that get converted into 2D signed distance fields (SDFs)!

Details

  • Improvements / additions
    • New OPs
      • exponentialSeriesTile - repeats shapes in a series of rows with exponential spacing
      • imageSdf2d - creates an SDF from a TOP image
    • New OP features
      • Threaded shader compilation to avoid stalled processes (#569)
      • multiLight - color and translate parameters
      • skyLightContrib - enable toggle
    • Editor tools
      • Action to add mixColorFields
  • Fixes
    • Fix error for "Update OP" for non-ROPs
    • Fix error in mixColorFields (#1293)
  • Changes (potentially breaking)
  • Infrastructure / internals
    • Update to TD 2025.30770 experimental build
    • Replaced the opPicker used in the palette (#1290)

Compatibility

Important note: This release is compatible with the TouchDesigner 2025.30770 experimental release, and is NOT compatible with the "2023" TouchDesigner releases

RayTK Library Version 0.45

27 Mar 16:32

Choose a tag to compare

Highlights

  • New fractal SDFs from TheArchCoder (Muhammad Ahmad)!
  • Create complex spatial transforms with moduloPolyhedral!
  • Convenient color mixing with mixColorFields!

Details

  • Improvements / additions
    • New OPs
      • mixColorFields - for combining color fields with centralized controls (#1279)
      • moduloPolyhedral - uses polyhedron patterns to slice and repeat space similar to the polyhedronSdf (#714)
      • trefoilKnotSdf - a 3D trefoil knot SDF (#1285)
      • 3D fractal SDFs from TheArchCoder (Muhammad Ahmad) (#1286)
        • kleinianSdf
        • lambdabulbSdf
        • mandelettuceSdf
        • sierpinskiIcosahedronSdf
        • sierpinskiOctahedralSpongeSdf
    • New OP features
      • boxFrameSdf - option for round bars
      • mengerSpongeSdf - added alternate formula from TheArchCoder (#1286)
      • raymarchRender3d - added dithering toggle (#1278)
      • rimContrib - added rotation parameter / field input (#1280)
    • Editor tools
      • Use exports instead of reference expressions for the "Animate with..." actions
  • Fixes
    • Fix handling of zero thickness in split
    • Fix multiLight issues with pbrMat (#1277)
    • Fix validation for required inputs in floatToVector
    • Fix thumbnails not showing if toolkit isn't at the root (#1281)
    • Fix opDefinition error for TD alpha builds
  • Changes (potentially breaking)
  • Infrastructure / internals
    • Consolidate functionality into opDefinition, codeSwitcher, etc extensions

Compatibility

  • This version requires TouchDesigner 2023.12120 or later.
  • It may have issues on the TD Alpha builds. If so, please report bugs.

RayTK Library Version 0.44

15 Dec 23:14

Choose a tag to compare

Highlights

  • Some new SDFs and bezier curve extrusion!
  • Helpful bugfixes (including the issue with cloning warnings when using the palette).

Details

  • Improvements / additions
    • New OPs
      • extrudeBezier - extrude a 3D shape along a bezier curve
      • gridSdf2d - combines several types of 2D grids into a single operator
      • polytopeSdf - 4D polychora / polytopes, stereographically projected to 3D
      • split - cuts through a field, SDF, or volume and spreads it apart
    • New OP features
      • arrange / combine / etc - added smooth avoid mode (#1272)
      • boxFrameSdf - added setting to control how the thickness is applied relative to the size
      • cutSphereSdf - added segment mode
      • eggSdf2d - added uneven mode
      • (raytkVolumes) sdfVolume - field inputs for offset, blending, thickness
    • Editor tools
      • SDF to field added sub-menu to select field mode.
    • (Addons) show version mismatch when addon package doesn't match the main toolkit (#1269)
  • Fixes
    • Fix warnings when creating from the palette if the toolkit isn't at the root (#1270)
    • Fix Update OP for ROPs from addons (#1266)
    • (raytkAbstractions) Fix version error in abstractions by applying update after creation with the palette (#1265)
    • Fix crash in terrainNoiseFields when octaves are below 1 (#1264)

Compatibility

This release is compatible with TouchDesigner 2023.12000.

RayTK Library Version 0.43

21 Sep 20:16

Choose a tag to compare

Highlights

  • Optimizations to improve performance in scenes with many operators and reduce GPU memory usage.
  • Usability improvements in customRender make it easier to use RayTK operators in your own shaders.
  • (raytkVolumes) New combineVolumes operator to combine two volumes with different blending modes.
  • (raytkVolumes) Depth compositing support in volumetricRaymarchRender3d to combine with other types of rendering.
  • Assorted smaller bug fixes.

Details

  • Improvements / additions
    • New OPs
      • (raytkVolume) combineVolumes - combine two volumes with different blending modes
    • New OP features
      • customRender - more detailed explanations in the default shader, custom parameter support, primary input TOP support (#1258)
      • iteratedTransform - support volumes (requires raytkVolumes)
      • radialClone - support baking in the combine mode to improve performance
      • (raytkVolumes) texture3dVolume - support assigning color from a 3D texture
      • (raytkVolumes) volumetricRaymarchRender3d - support depth compositing to combine with other types of rendering.
    • Snippets
      • customRender
  • Fixes
    • customRender - fix errors related to output buffers (#1258)
    • terrainNoiseField - fix parameters not disabling when inputs are attached to replace them (#1255)
    • torusGridSdf - fix broken combine mode baking optimization (#1246)
    • triangleSdf2d - fix scaling for equilateral mode (#1260)
    • Fix UI tooltips in palette (#1253)
  • Changes (potentially breaking)
    • All renderers now default to using separate uniform arrays per ROP for parameters, which should improve internal CHOP performance in scenes with a lot of operators/parameters. (#907)
  • Infrastructure / internals
    • Reduce OP image resolution to reduce tox size and GPU memory usage

Compatibility

  • This version requires TouchDesigner 2023.11880 or later.

RayTK Library v0.42

28 Jul 21:21

Choose a tag to compare

Highlights

  • Custom renderer lets you create your own shader that uses RayTK operators from your code!
  • Lots of new features and improvements to existing operators.
  • New addons framework for extra packages of functionality that are released separately from the main toolkit.
    • For now these will be available through Patreon, though there may be other options in the future.
    • The first of these are raytkVolumes and raytkAbstractions
  • The raytkVolumes addon lets you flow between RayTK and 3D textures (like with Josef Pelz's T3D) and supports volumetric raymarching!
  • The raytkAbstractions addon provides a bunch of new operators that make common workflows easier and more user-friendly.

Details

  • Improvements / additions
    • New OPs
      • customRender - create your own renderer with a custom shader using RayTK operators as functions (#1220)
      • (raytkAbstractions) enhancedWaveField - adds features to the waveField operator to make it easier to use, including animation, more wave types, and value scaling.
      • (raytkAbstractions) helixWarp - applies offsets to warp space in a helix pattern
      • (raytkAbstractions) spin - rotate with built-in animation
      • (raytkAbstractions) twistedRingsSdf - similar to mobiusRingSdf but with multiple interwoven rings
      • (raytkVolumes) assignDensity - assign density to a volume for use in 3D textures and volumetric rendering (#1230, #637)
      • (raytkVolumes) texture3dRender - renderer that produces 3D textures by sampling SDFs or fields (#1237)
      • (raytkVolumes) fieldVolume - constructs a volume using a field to provide the density
      • (raytkVolumes) sdfVolume - constructs a volume with the filled region defined by an SDF
      • (raytkVolumes) texture3dVolume - constructs a volume from a 3D texture
      • (raytkVolumes) volumetricRaymarchRender3D - renderer that uses volumes instead of SDFs and supports cloud-like renders (#1230)
    • New OP features
      • chainSdf - axis setting
      • chopField, chopFn - CHOP inputs as an alternative to using parameters
      • helixSdf - offset parameter
      • magnet - input fields for amount, radius, fade
      • noiseField - gabor noise type
      • pointMapRender / render2D - Use surface color when no material is assigned to an SDF
      • pointMapRender - density output (requires raytkVolumes)
      • polarCoordField - coordinate input so it can be used as a converter for fields
      • renderSelect - show buffer names in opImage (#753)
      • shadingProperty - show property name in opImage (#753)
      • textSdf2d - option to pass text as a parameter, so it doesn't change the code
      • texture1dField, texture3dField, textureField, dataTextureField - TOP inputs as an alternative to using parameters
      • torusGridSdf - option to only have rows or columns (#1231)
      • twirl - variable twisting around an axis
      • waveField, waveFn, waveWarp - added smooth square wave types
    • Palette and editor tools
      • Expand all / collapse all toggle in the palette
  • Fixes
    • "Fixed" typo in prismSdf, polygonSdf2d (#1233)
    • Fix error when using operators that use iteration as background fields (#1235)
    • Fix limitField handling of vector fields (#1236)
    • Fix bypass toggle on edgeCombine (#1239)
  • Changes (potentially breaking)
  • Infrastructure / internals
    • Support for addons with non-public source (#1065)

Compatibility

This version is compatible with TouchDesigner 2023.11760.

RayTK Library v0.41

10 May 21:40

Choose a tag to compare

Highlights

  • New instanceLight, lightTransform, and limitLight operators for more flexible lighting setups.
  • Overhaul of how multiple lights are handled by materials to produce more consistent results.
  • New mixFields operator acts as a mixer to easily combine different fields with level sliders and toggles.
  • Fixed the missing palette thumbnails that disappeared in the last release.
  • Helpful new actions in the editor tools menu.
  • Significant improvements to documentation.

Details

  • Improvements / additions
    • New OPs
      • instanceLight - use instancing to create multiple lights, with CHOPs for positioning and other settings (#1213)
      • lightTransform - transform specially designed to be used on lights (#1214)
      • limitLight - distance and boundary attenuation and optimization (#1224)
      • mixFields - combine multiple fields with quick toggles and level adjustments for each (#696)
      • restrictTypes - helper to force operators that support multiple types to use a specific type (#683)
    • New OP features
      • adjustColor - support using on lights (#1213)
      • assignUV - support using another SDF to assign UVs (#1218)
      • cameraTransform - support separate transform for look at position (#841)
      • magnet - uniform scaling
      • moduloToroidal - mirroring
      • radialClone - option to keep rotation while still arranging radially (#1219)
      • sampledPointMat - blending and offset field inputs (#1143)
      • spotLight - look at support (#834)
    • Editor tools (#1201)
      • Support editing multiple operators with the lock/unlock switcher actions
      • Action to combine fields with mixFields (#696)
      • Actions for cameraTransform/lightTransform (#541)
      • Action for adding to multiLight
      • Action for adding limitLight (#1224)
    • Improvements
      • Faster enable/disable with runtime bypass - mergeFields, shapedCombine, switch
      • Clarify some input type error messages
      • Fix display of thumbnail images on operator category documentation pages (#643)
      • Documentation for lots of operators that were missing it, and updated lots of existing docs.
  • Fixes
    • magnet - fix incorrect SDF scale adjustment (when possible)
    • moduloToroidal - fix swapped shift parameters
    • Fix broken previews in inspector related to missing output buffer selector
    • Fix missing palette thumbnails (#1217)
    • Prevent negative light levels which cause problems with multiple lights (#1213)
    • Hide irrelevant editor actions on renderers (#1201)
  • Changes (potentially breaking)
    • helixSdf - remove alternate coordinate type support for field inputs
    • raymarchRender3D - make limit box disabled by default
    • Restructured how multiple lights are handled. Materials are now responsible for looping through the lights and combining the results, rather than the renderer doing it. This allows modularMat to correctly handle shading elements that aren't based on lighting. There may be some differences in how material shading behaves, but hopefully they should be fairly minor. (#1213)
    • Deprecate simpleDiff, simpleIntersect, simpleUnion

Compatibility

This release is compatible with TouchDesigner 2023.11600.

RayTK Library v0.40

06 Apr 00:05

Choose a tag to compare

Highlights

  • New torusGridSdf and moduloToroidal for all your torus-based needs!
  • New terrainNoiseField with fractal brownian motion patterns!
  • Lots of bug fixes and optimizations including a 8% reduction in tox size!

Details

  • Improvements / additions
    • New OPs
      • moduloToroidal - new torus shaped modulo to create rings of rings (#1195)
      • torusGridSdf - torus-shaped grid made from rings
    • New OP features
      • diffuseContrib / specularContrib - runtime bypass (enable/disable)
      • quadSdf - size, thickness field inputs
      • radialClone - variable for current rotation amount (#1176)
      • rangeTransform - uniform scale (#1206)
      • sphereGridSdf - axis parameter (#1178)
      • terrainNoiseField - FBM noise, useful for surface offsetting (#1183)
      • XOR combine mode for all OPs that support SDF combination
    • Editor tools (#1201)
      • New action to merge float fields into a vector field
      • New action to add functionGraphRender
      • New actions for locking/unlocking switcher-based menu parameters
    • Snippets
      • New translate snippet
    • Misc improvements
      • In documentation, show source parameters for parameter-based inputs
      • Fix ranges for parameters in pointLight
      • Clarify confusing input label in worldPosMap (#1207)
  • Fixes
    • Fix incorrect pixel format in renderers related to shaderExecutor
    • Fix incorrect input validation in moduloPolar
    • Fix broken limit box handling in raymarchRender3d (#1202)
    • Fix broken primary value mode in exposeValue (#1205)
    • Fix runtime bypass in combineFields when in optimized mode
    • Fix duplicate parameter errors in rectangleSdf, polarCoordField
    • Fix UV output in render2D
    • Fix broken parameter processing when using separate uniforms mode
    • Fix shadow direction handling in directionalLight (#1210)
    • Fix 3D texture output in pointMapRender
  • Changes (potentially breaking)
    • Remove deprecated fieldMat
    • Remove alpha aexionSdf
    • Deprecate addFields
    • Move lots of ROPs from beta to default status (#1200)
    • Reduce default speed for speedGenerator
    • Make max dist a runtime parameter in raymarchRender3d (#1202)
    • Remove support for inlining parameter aliases in generated shaders
  • Infrastructure / internals
    • Migrate portions of opDefinition into an extension and refactor infrastructure to use it
    • Move param definitions, op elements into RopState
    • Consolidate and strip down parts of opDefinition, inputHandler, multiInputHandler, etc. to reduce per-ROP overhead
    • Support marking inputs as prohibited based on current ROP settings
    • Migrate build process to use TDAsyncIO
    • Remove support for combined snippets tox builds
    • Standardize access to output buffers

Compatibility

This version is compatible with TouchDesigner 2023.11600.

RayTK Library v0.39

25 Feb 01:01

Choose a tag to compare

Highlights

  • This release is primarily infrastructure and internal improvements, preparing for upcoming features.

Details

  • Improvements / additions
    • New OPs
      • cameraTransform - transform a camera's position and orientation
    • New OP features
      • curlNoiseField - simplified float version (#1184)
      • dogBoneSdf2d - option to specify endpoints and have different end radii
      • skyLightContrib - added rotation parameters, field inputs for color, rotation, direction
    • Editor tools
      • Action to add a modularMat
  • Fixes
    • Fix output channels for stepMap (#1164)
  • Changes (potentially breaking)
    • Remove deprecated blend operator (replaced by switch)
    • Remove deprecated sceneState component
    • Selectively detach depth input in raymarchRender3D
  • Infrastructure / internals
    • Include supported variables / variable sources in generated documentation
    • Include parameter handling modes in generated documentation
    • Shader execution encapsulation, related to engine support (#1158)
    • Consolidate multi-input handling
    • New logo and branding

Compatibility

This version is compatible with TouchDesigner 2023.11510.

RayTK Library v0.38

17 Jan 22:03

Choose a tag to compare

Highlights

  • New snippet format - separate tox files in a zip instead of one massive tox file with all of them. These will load much faster than the old format.
  • New 2D text SDF!
  • Reduced build tox file size.

Details

  • Improvements / additions
    • New OPs
      • chamferRectangleSdf2d - rectangle with chamfered corners
      • sphereGridSdf - latitude/longitude bars around a sphere
      • textSdf2d - basic 2d text SDF
    • New OP features
      • bandField - center, width, blending field inputs
      • bend - option to only bend one side (#1129)
      • instance - added scale CHOP support (#1151)
      • knife - support using both parameter and field input for offset
      • logPolarRepeat - rho / theta field inputs
      • rescaleFloatField - support applying to vector fields, where it does the same thing to all vector parts
      • stepField - blending field input
      • textureField - texel coordinate mode
    • Editor tools
      • New action to map a float field to a color range
      • New actions to create waveFields
      • New action to assign color to an SDF
    • New snippet structure - separate tox files in a zip instead of one massive tox file with all of them (#132, #1082)
  • Fixes
    • Fix error in Customize Shader Config action (#1147)
    • Fix error in triangleSdf2d when using read-only parameters (#1148)
    • Fix removal of annotations during the build process - reduces build size
    • Fix license check when choosing default resolution for new renderers (#1149)
    • Fix missing buffer selector that was breaking preview in the inspector (#1153)
    • Fix broken plane parameter in ringsSdf (#1154)
  • Changes (potentially breaking)
    • Deprecate the sceneState component
    • variableReference can no longer be manually created. Use the editor tools menu instead.
  • Infrastructure / internals
    • Removed unused dispatch table system
    • Initial infrastructure for MATs
    • Support for passing separate uniform arrays per ROP for parameters (#907)
    • Update to TD 2023.11340
    • Remove annotations in infrastructure components - improves stability in development tools
    • Avoid using custom instances of popMenu when possible for stability
    • Support for hidden ROPs, which can be created but are not shown in the palette

Compatibility

This version is compatible with TouchDesigner 2023.11340.

RayTK Library v0.37

13 Dec 00:21

Choose a tag to compare

Highlights

  • Compatibility with TD 2023 experimental builds
  • New applyTransform op makes it easier to transform field values, uv coordinates, etc
  • Stability improvements and bug fixes

Details

  • Improvements / additions
    • New OPs
      • applyTransform - to apply a transform filter to field values, uv coordinates, etc (#1019)
      • modifyDistance - use a field to modify the distance values from an SDF (#1139)
      • rectangleRepeat - repeat space in tiles arranged on the sides of a rectangle (#1126)
    • New OP features
      • almostIdentityFn - threshold, base value field inputs (#1124)
      • bandField - reverse parameter
      • cubicPulseFn - phase, width field inputs (#1124)
      • easeFn - exponent field input (#1124)
      • extrude - 2D height / offset field inputs (#1134)
      • flipFn - flip 0..1 modes as well as positive/negative (#1127)
      • gainFn = exponent field input (#1124)
      • parabolaFn - exponent field input (#1124)
      • positionField - pixel uv and pixel coordinate modes
      • prismSdf - rounding (#1130)
    • Editor tools
  • Fixes
    • Fix widget compatibility issues with TD 2023 experimental builds
    • Fix angle handling in magnet (#1138)
    • Fix return type limiting in circularRepeat
  • Changes (potentially breaking)
  • Infrastructure / internals
    • Stop syncing files within clones in devel source
    • Use the new input list parameter instead of dynamically wiring up texture inputs in renderers
    • Move op-specific code out of shared libraries to improve compile speeds

Compatibility

This build is compatible with TouchDesigner 2023.11170 and later.

Snippets

Where are the snippets for this release???

They aren't included in this release due to some problems with the build process. It was a choice between waiting until that issue was fixed or releasing without them. Hopefully the issue will be addressed for the next release.