lib - tooll3/t3 GitHub Wiki

lib.3d.draw

  • lib.3d.draw DrawMesh -- Uses PBR rendering to draw a mesh using the current settings for material, fog, point lights, transform and camera. For convenience Tooll adds a default reflection and two point lights attached to the camera to a RenderTarget. You can override these by adding [SetEnvironment] and [SetMaterial] operators further up (further right) in your graph.
  • lib.3d.draw DrawMeshAtPoints -- Draws PBR shaded instances of a mesh defined by the connected point buffer. It uses the current settings for material, point lights, fog and environment. It can use the point's W attribute to control the size of the instances.
  • lib.3d.draw DrawMeshHatched -- A more abstract shading style
  • lib.3d.draw DrawMeshUnlit -- Draws a mesh without any shading.
  • lib.3d.draw DrawScreenQuad
  • lib.3d.draw DustParticles -- Draws points that repeated wrapped and animated around the current camera position.
  • lib.3d.draw FadingSlideShow -- Blends smoothly between image files read from a directory.
  • lib.3d.draw Layer2d
  • lib.3d.draw Text
  • lib.3d.draw TextOutlines

lib.3d.gizmo

  • lib.3d.gizmo DrawBoxGizmo
  • lib.3d.gizmo DrawCamGizmos -- An attempt to draw camera gizmos.
  • lib.3d.gizmo DrawLineGrid -- Renders a grid of lines in the given scaling.
  • lib.3d.gizmo DrawSphereGizmo
  • lib.3d.gizmo GridPlane -- A helper gizmo that can uses a fragment shader to draw smooth grid lines.
  • lib.3d.gizmo Locator -- Provides a 3d position in world space that can but used to drive other components.
  • lib.3d.gizmo PlotValueCurve -- Plots a history curve of a value.
  • lib.3d.gizmo VisibleGizmos -- Only executes the subgraph if the set visibility matches the visibility of the evaluation context.

lib.3d.mesh.generate

  • lib.3d.mesh.generate CubeMesh -- Generates a mesh that can be rendered with [DrawMesh].
  • lib.3d.mesh.generate CylinderMesh -- Creates a cylinder mesh with or without closing caps. You can use the Height, Fill, and RadiusOffset parameters to generate things like pie charts, torus diagrams, cones, and other shapes.
  • lib.3d.mesh.generate ExtrudeCurves -- Generates a mesh by extruding a set of points along a set of other points.
  • lib.3d.mesh.generate LoadObj -- Generates Vertex and Index buffers from obj file
  • lib.3d.mesh.generate NGonMesh -- Generates a flat circular mesh with a joined center vertex.
  • lib.3d.mesh.generate QuadMesh -- Generates a tessellated mesh.
  • lib.3d.mesh.generate RepeatMeshAtPoints -- Creates a new mesh that repeats the incoming mesh at each point.
  • lib.3d.mesh.generate SphereMesh -- Generate a UV sphere mesh with the given tessellation.
  • lib.3d.mesh.generate TorusMesh -- Generates a torus mesh with the given size and tessellation.

lib.3d.mesh.modify

  • lib.3d.mesh.modify CombineMeshes -- Combines the connected mesh buffers into a new mesh
  • lib.3d.mesh.modify CrossLinePoints -- A simple helper that generates a point list for 3 crossing lines that can be used as a visual marker.
  • lib.3d.mesh.modify DisplaceMesh
  • lib.3d.mesh.modify DisplaceMeshNoise -- Displaces a Mesh with perlin noise.
  • lib.3d.mesh.modify FlipNormals -- Reverses the normals of the input mesh. This can be useful for drawing shader "inside" surfaces of a mesh.
  • lib.3d.mesh.modify MeshProjectUV -- Sets the UV coordinates of the mesh.
  • lib.3d.mesh.modify MoveMeshToPointLine -- Deforms a mesh in world space origin along a line defined by points.
  • lib.3d.mesh.modify PickMeshBuffer -- Switch between different mesh buffers
  • lib.3d.mesh.modify RecomputeNormals
  • lib.3d.mesh.modify ScatterMeshFaces -- This op is similar to [DisplaceMesh]. However, it uses faces centers instead of the vertices to "scatter" a mesh while keeping the size of the individual faces.
  • lib.3d.mesh.modify SelectVertices -- Sets the selection property of mesh vertices from a volume. This can later be used to selectively apply manipulations like displace.
  • lib.3d.mesh.modify SplitMeshVertices -- This can be relevant to "scatter" smooth shaded geometry or change shading to flat.
  • lib.3d.mesh.modify TextureDisplaceMesh -- Uses a projected texture with a normal map to displace the mesh.
  • lib.3d.mesh.modify TransformMesh -- Generates a new set of transformed vertices for a mesh.
  • lib.3d.mesh.modify TransformMeshUVs
  • lib.3d.mesh.modify Warp2dMesh -- Uses a set of reference points to warp a mesh geometry. This can be useful for adjusting project mapping.

lib.3d.postfx

  • lib.3d.postfx DepthOfField -- Adds a depth of field effect.
  • lib.3d.postfx GodRays -- Uses the z-buffer to draw god rays.
  • lib.3d.postfx MotionBlur -- Applies a post processing motion blur to a RenderTarget texture and its DepthBuffer.
  • lib.3d.postfx SSAO

lib.3d.rendering

  • lib.3d.rendering IntToWrapmode -- Picks a wrap mode with an index.
  • lib.3d.rendering LenseFlareSetup -- Pre-made complex light flare setups with various styles.
  • lib.3d.rendering PointLight -- A point light with gizmo
  • lib.3d.rendering SetEnvironment -- Sets the image based lighting (IBL) for the current RenderTarget. This texture can then be used by drawing operators for physically based rendering (PBR) further left in the graph.
  • lib.3d.rendering SetFog -- Set fog rendering properties for the sub tree.
  • lib.3d.rendering SetMaterial -- Sets the physical base rendering (PBR) material for the current RenderTarget which is then used by [DrawMesh] and other PBR rendering operators. Each of the material properties can be controlled by a color or by connecting a texture input.
  • lib.3d.rendering SetPointLight -- Adds a point light to the evaluation context. The maximum number of lights is 8.
  • lib.3d.rendering TextureToCubeMap -- Converts a 2d texture into a cube map that can then be used by [SetEnvironment] for PBR image based lighting.

lib.3d.transform

  • lib.3d.transform BlendCameras -- Smoothly blends between multiple cameras by using a floating point index.
  • lib.3d.transform Camera -- Sets the camera for the subgraph.
  • lib.3d.transform Group -- Groups a sequence of incoming draw commands.
  • lib.3d.transform OrbitCamera -- Provides common camera movement utilities for an easy dynamic camera setup.
  • lib.3d.transform OrthographicCamera -- Set an orthographic project matrix for the operators following further down (I.e. to the left).
  • lib.3d.transform RotateAroundAxis -- Applies a rotation to the transform matrix.
  • lib.3d.transform RotateTowards
  • lib.3d.transform Shear -- Applies a shearing transformation to the transform matrix.
  • lib.3d.transform ShiftCamera -- Shifts the clip space of the current context projection matrix.
  • lib.3d.transform SliceViewPort -- Modifies the Viewport and projection matrix to help drawing grid cells.
  • lib.3d.transform SpreadLayout -- Spatially distributes the incoming graph elements.
  • lib.3d.transform Switch -- Switches between connected graphs.
  • lib.3d.transform Transform -- Moves, Scales and Rotates the sub graph.

lib.anim

  • lib.anim Accumulator -- A very simple proportional-integral-derivative controller.
  • lib.anim AnimValue -- Generates a repetitive LFO-like signal synced to the current BPM rate. It supports various shapes, modes and forms.
  • lib.anim AnimVec2 -- Generates a repetitive LFO-like signal synced to the current BPM rate. It supports various shapes, modes and forms.
  • lib.anim AnimVec3 -- Generates a repetitive LFO-like signal synced to the current BPM rate. It supports various shapes, modes and forms.
  • lib.anim Counter -- A very versatile operator that uses beat time to increment values periodically.
  • lib.anim FindKeyframes -- Experimental operator to access keyframe times of another operator instance. This can be useful to build interactive usecases that rely on setting the playback time.
  • lib.anim FreezeValue -- Keeps the current input value as long as Keep is true.
  • lib.anim KeepBoolean -- Keeps the state of flag until it is reset.
  • lib.anim OscillateVec2
  • lib.anim OscillateVec3 -- A helper that combines 3 sin waves into a vector
  • lib.anim SequenceAnim
  • lib.anim TriggerAnim -- Generate interactive animation values than can be triggered with a boolean value.

lib.color

lib.dx11.buffer

lib.dx11.compute

lib.dx11.draw

lib.dx11.tex

lib.exec

  • lib.exec BlendImages -- Blends the connected input images with cross-fading and using a float index.
  • lib.exec BlendScenes -- Uses a float index to alpha blend between draw scenes.
  • lib.exec ExecRepeatedly -- Controls how frequently the sub graph is being executed.
  • lib.exec Execute -- Performs a sequence of drawing operations and then restores the graphics context. You can use it for grouping or activating and deactivating parts of your graphs.
  • lib.exec ExecuteBufferUpdate
  • lib.exec ExecuteOnce -- Executes the subgraph only once. This can be useful for initializing buffers or resetting states.
  • lib.exec ExecuteRawBufferUpdate
  • lib.exec ExecuteTextureUpdate -- A helper that first evaluates a command input before returning a texture2d. This can be useful for compute shader processing.
  • lib.exec LogMessage -- Prints a message to console log.
  • lib.exec Loop -- Executes the sub graph multiple times. This can be very useful for iterating a drawing functions.
  • lib.exec Once
  • lib.exec ResetSubtreeTrigger
  • lib.exec TimeClip -- Enables the sub graph on the left side only with the playback time is within the timeclips region allowing you to cut from scene to scene.

lib.exec.context

  • lib.exec.context CamPosition -- Returns the current camera properties. This can be very useful for positioning or emitting things in front of the camera.
  • lib.exec.context GetFloatVar -- Fetches a float variable from the context.
  • lib.exec.context GetForegroundColor -- Gets the current foreground color from the context.
  • lib.exec.context GetIntVar -- Reads a variable from the context.
  • lib.exec.context GetPosition -- Gets the current position, rotation, and scale in the world so it can be applied to other transforms.
  • lib.exec.context SetFloatVar -- Writes a float value to the context's float variable dictionary.
  • lib.exec.context SetIntVariable -- Sets or overwrites an int variable that can be retrieved by [GetIntVar] further down (left in) the graph.

lib.img.adjust

  • lib.img.adjust AdjustColors -- Adjusts various color properties of the incoming image and adds a slight vignette.
  • lib.img.adjust Blur
  • lib.img.adjust ChannelMixer -- Adjusts the color of an incoming image.
  • lib.img.adjust ColorGrade -- Adjusts the color grading of the incoming image for the Gain (highlights), Gamma (mid-tones), and Lift (shadows).
  • lib.img.adjust ColorGradeDepth -- A advanced color grade that uses a depth buffer based gradient look for additional effects.
  • lib.img.adjust ConvertColors -- Converts between different color spaces.
  • lib.img.adjust ConvertFormat -- Converts a Texture into another format. This can be useful to speed up video file rendering or to fix unsupported texture formats for [PlayVideo].
  • lib.img.adjust Crop -- Crops an image. Negative crop values add padding to the image, using the given background color.
  • lib.img.adjust DepthBufferAsGrayScale -- Converts the provided depth buffer into a grayscale texture.
  • lib.img.adjust DirectionalBlur -- Blurs the incoming image along a directional angle.
  • lib.img.adjust KeyColor -- A simple color keyer.
  • lib.img.adjust RemapColor -- Replaces the colors of an image with a gradient based on its brightness. This can be used to emulate gradient curves or level adjustments.
  • lib.img.adjust Tint -- Tints the bright and dark colors of an image. This can be an easy method for subtle color corrections or to create drastic effects.
  • lib.img.adjust ToneMapping
  • lib.img.adjust TransformImage -- Rotates, offsets, and scales the incoming image.

lib.img.analyze

  • lib.img.analyze CompareImages -- A simple helper to verify an image effect before and after. It shows...
  • lib.img.analyze ImageLevels -- Visualizes the image brightness distribution of an image.
  • lib.img.analyze WaveForm -- Visualizes the color and intensity distribution within an image by overlaying a Waveform and a Vectorscope.

lib.img.fx

  • lib.img.fx AdvancedFeedback -- An advanced version of the [FluidFeedback] effect is much more versatile but harder to control. It also utilizes [DetectEdges] and stabilizes the feedback buffer to a meaningful value range, thus avoiding black or overly bright values.
  • lib.img.fx AdvancedFeedback2 -- An improved feedback effect based on OKLab space.
  • lib.img.fx AfterGlow2
  • lib.img.fx AsciiRender -- Draws the incoming image as shaded ASCII characters, similar to 'The Matrix'.
  • lib.img.fx BubbleZoom -- An image effect that enlarges the inner circular region with a smooth edge. Other terms for this would be 'Bulge', 'Blob distort', 'Fish Eye zoom'.
  • lib.img.fx ChromaticAbberation
  • lib.img.fx ChromaticDistortion
  • lib.img.fx CustomPixelShader -- Creates a custom shader from a source parameter. This can be useful for prototyping.
  • lib.img.fx DetectEdges -- Detects edges in the incoming image.
  • lib.img.fx Displace
  • lib.img.fx DistortAndShade
  • lib.img.fx Dither -- Applies Floyd-Steinberg dithering to an image to convert it to black and white colors.
  • lib.img.fx EdgeRepeat -- Repeats (stretches) pixels of the input image along a line.
  • lib.img.fx FakeLight -- Applies fake shading to the image.
  • lib.img.fx FluidFeedback -- An example of how feedback combined with displacement can lead to a variety of effects.
  • lib.img.fx GlitchDisplace
  • lib.img.fx Glow -- Adds a bloom effect to the incoming image. It uses multiple resolution passes and is reasonably fast.
  • lib.img.fx HoneyCombTiles
  • lib.img.fx MirrorRepeat
  • lib.img.fx MosiacTiling -- This subdivides the incoming image into recursive tiles.
  • lib.img.fx NormalMap -- Converts the brightness of an image into a normal map that can be used with [SetMaterial].
  • lib.img.fx PolarCoordinates -- Applies a polar coordinate transformation that converts between circular and rectangular coordinates. In other words, it wraps and unwraps round images.
  • lib.img.fx RgbTV -- Creates a vintage TV-glitch effect.
  • lib.img.fx SimpleLiquid -- A port of 'simple detailed fluid' from 'https://www.shadertoy.com/view/sl3Szs' by Lomateron.
  • lib.img.fx SimpleLiquid2 -- This Simple Detailed Fluid effect is a port of 'https://www.shadertoy.com/view/sl3Szs' by Lomateron.
  • lib.img.fx SortPixelGlitch -- An interesting image glitch effect.
  • lib.img.fx Steps -- A versatile effect that uses the value of the input image to draw 'steps'. These can be shaded and animated.
  • lib.img.fx TriangleGridTransition

lib.img.fx.obsolete

lib.img.generate

  • lib.img.generate Blob -- A very versatile generator for rectangles, circles, blobs, vignettes, and many other shapes. Unlike [_BlobOld], it uses an elliptical shape and has easier-to-control parameters.
  • lib.img.generate CheckerBoard
  • lib.img.generate FractalNoise -- Generates animated 2D Perlin noise.
  • lib.img.generate FraserGrid -- The basis for the Fräser spiral illusion.
  • lib.img.generate Grain -- Adds animated grain, or pixel noise, to an image.
  • lib.img.generate KochKaleidoskope -- This effect is based on Koch snowflake fractal curve.
  • lib.img.generate LinearGradient -- Renders a linear color ramp defined by a gradient. This can be very useful in combination with [Steps].
  • lib.img.generate LoadImage -- Loads an image file as a Texture2D.
  • lib.img.generate LoadImageFromUrl -- Loads an image file with the specified URL. This process does not use caching.
  • lib.img.generate NGon -- Renders a polygon shape similar to [Blob] or [RoundedRect].
  • lib.img.generate NumberPattern -- Renders columns for values that can be driven by an input texture. This can create a nice effect as an overlay.
  • lib.img.generate RadialGradient
  • lib.img.generate Raster -- Generates a wide range of different raster patterns. You can also connect an input texture to drive various aspects of the pattern.
  • lib.img.generate RenderTarget -- The primary method of rendering 3D data into a 2D image texture. You will need this for all post-processing image effects and many other applications.
  • lib.img.generate Rings -- Generates a procedural rings texture that can produce a wide variety of radial patterns. Please try the presets.
  • lib.img.generate RoundedRect
  • lib.img.generate RyojiPattern1 -- Generates animated patterns inspired by Ryoji Ikeda. It subdivides the image into smaller and smaller segments and can produce a wide variety of effects. Please check the presets and the example.
  • lib.img.generate RyojiPattern2 -- A pattern generator inspired by the work of Ryoji Ikeda. It subdivides the image space recursively and can generate a range of different patterns.
  • lib.img.generate SinForm
  • lib.img.generate Sketch -- Allows adding sketches as annotations or storyboards. You can create multiple pages and switch between them by selecting or animating the PageIndex. Use the ShowAs parameter to toggle between showing the sketches as a single frame (e.g., as a comment), until the next frame (e.g., as a storyboard or animation), or with onion skinning. You can also use the following keyboard shortcuts:
  • lib.img.generate SlidingHistory -- Generates a waveform image by feeding in a horizontal texture line at the bottom of the texture.
  • lib.img.generate VoronoiCells
  • lib.img.generate ZollnerPattern

lib.img.use

  • lib.img.use Blend -- Blends two images.
  • lib.img.use BlendWithMask -- Blends two images by the brightness of a 3rd mask image.
  • lib.img.use Combine3Images -- A node to combine 3 input images into the RGBA channels of a new one.
  • lib.img.use CombineMaterialChannels -- Combines roughness, metallic, and ambient occlusion texture maps into a single texture for [SetMaterial].
  • lib.img.use CombineMaterialChannels2 -- Combines roughness, metallic, and ambient occlusion texture maps into a single texture for [SetMaterial].
  • lib.img.use KeepPreviousFrame -- Implements a double buffer to keep the previous image. This can be useful for effects that rely on image change comparison, like motion estimation.
  • lib.img.use PickTexture -- Picks one of the connected textures. Only the selected connection will be updated.
  • lib.img.use RenderWithMotionBlur -- This will render multiple instances of the incoming op each pass with slightly offset local time. Its primary purpose is to increase rendering quality for output with Render to Image Sequences or Video. Depending on the complexity of the graph, this effect can be very slow. You can use [HasTimeChanged] with Mode=AdvancedWithMotionBlur to trigger updates to the first pass. This can be useful for simulation or feedback effects. Tip: When rendering videos or sequences, you can override the sample count.

lib.img.video

  • lib.img.video PlayVideo -- Uses Windows Media Foundation to play a video file. To ensure seek precision while editing, it enforces seeking if timeline playback is paused. If timeline playback is running, it will only seek if the video playback drift exceeds the resync threshold. If this threshold is too small, playback will stutter. If it's excessively large, syncing might be off.
  • lib.img.video PlayVideoClip

lib.io.audio

lib.io.file

  • lib.io.file FilesInFolder
  • lib.io.file LineTextPoints
  • lib.io.file LoadSvg -- Loads an SVG file as points so it can be rendered as points or lines. The supported SVG feature set is very basic, and depending on your exporting applications, elements could be missing or not correctly represented. Missing SVG features include: - Masking - Text - Fill - Effects - Stroke styles like dashes The "ImportAs Lines" mode inserts double points so closed shapes will be closed when rendering lines. To draw the SVG, you can convert the list to a GPU point buffer with [ListToBuffer] and then use [DrawLines]. Also see: [PrepareSvgLineTransition], [SvgLineTransitionExample]
  • lib.io.file ReadFile
  • lib.io.file UnsplashAPI -- Fetch image URLs from Unsplash API. Use [LoadImageFromUrl] to load the results.
  • lib.io.file WriteToFile

lib.io.input

lib.io.json

lib.io.midi

  • lib.io.midi LinkToMidiTime -- This helper uses MIDI time clock events to drive the playback time. This can be useful for live performances when you want to sync visuals to a clock provided by a DAW like Ableton or Traktor. Tip: When connecting the SyncTrigger parameter to a [MidiInput] and [HasValueIncreased], be sure to disable damping on the MidiInput.
  • lib.io.midi MidiClip
  • lib.io.midi MidiInput -- Provides input from connected MIDI devices. By default, the MIDI range from 0 to 127 is mapped to an output range from 0 to 1, which can be adjusted with the parameters. For smoothing the output, damping is enabled by default. Reduce the damping parameter to improve latency. If you want to react to a range for controls (i.e., to the range of keys on a keyboard), you can use the ControlRange parameter. If this is something other than [0, 0], we map its range to the OutputRange (e.g., you could map two octaves of your keyboard to output values from 0 to 1). To support controllers that have controllers and note buttons with overlapping control IDs (like the APC Mini), we distinguish between different event types.
  • lib.io.midi MidiOutput -- Send notes or controller change events to the selected device. This operator is experimental. The velocity is given as a normalized float value between 0 and 1.
  • lib.io.midi SelectFloatFromDict -- Parses a dictionary and converts a single value to a float.

lib.io.osc

  • lib.io.osc OscInput -- Receives OSC input from a connected server.

lib.io.time

  • lib.io.time ClipTime
  • lib.io.time ConvertTime -- Converts time between seconds and bars.
  • lib.io.time LastFrameDuration
  • lib.io.time RunTime -- Returns the application runtime in seconds. This is rarely useful. Consider using [Time].
  • lib.io.time SetCommandTime -- Overrides the animation time of a sub-command graph.
  • lib.io.time SetPlaybackSpeed -- An advanced option that allows you to slow down the playback (including audio). This might be useful in some situations, though some details might not work as expected.
  • lib.io.time SetPlaybackTime -- An advanced playback control that will move the current playhead to the defined time. This can be useful in complex VJ setups. Only use this operator if you know what you're doing. Setting the PlaybackTime frequently can interfere with user interactions like editing keyframes.
  • lib.io.time StopWatch -- A stopwatch that can stop, measure, and keep time and thus measure durations.
  • lib.io.time Time

lib.io.time.vj

  • lib.io.time.vj ForwardBeatTaps -- A helper op that forwards beat tapping to T3 interfaces.
  • lib.io.time.vj GetBpm -- Returns the current BPM rate
  • lib.io.time.vj SetBpm -- DANGER: Overriding the BPM rate will interfere with your playback and animation speed.
  • lib.io.time.vj SetSpeedFactors -- Speed factors are multiplied to most animation operators like [AnimValue] and [Counter].

lib.io.video

  • lib.io.video NdiInput -- NDI live video input
  • lib.io.video SpoutInput -- Spout live video input
  • lib.io.video SpoutOutput -- Spout live video output. We recommend using the R8G8B8A8_UNorm texture format for output. You can adjust the render format by using a [RenderTarget] like in this example: [TorusMesh]->[DrawMesh]->[RenderTarget]->[SpoutOutput].

lib.math.bool

  • lib.math.bool All -- Returns true if all of the connected booleans are true.
  • lib.math.bool And -- Returns True if both inputs are true. Consider using [All] if you want to test more than two booleans for true.
  • lib.math.bool Any -- Returns true if any of its inputs are true.
  • lib.math.bool Boolean -- Defines a boolean value that can be true or false. Also offers a convenient toggle control in the graph.
  • lib.math.bool BoolToFloat
  • lib.math.bool BoolToInt -- Returns different integer values depending on if a boolean is true or false. With its default values, it converts a boolean into 0 for false and 1 for true.
  • lib.math.bool DelayTrigger -- Delays the change of a boolean flag. This can be useful for implementing interactions where a value needs to stay true for a minimum duration. In "DelayTrue" mode, it will immediately switch to true but delay switching back to false. Note: This is NOT a queue. Frequent changes of the incoming signal can lead to the delayed state filtering out changes within the delay duration. In vvvv, this op is called a MonoFlop.
  • lib.math.bool FlipFlop -- Holds the "activated" state of a boolean. Also check [DelayTrigger].
  • lib.math.bool HasBooleanChanged -- Returns true if the connected input changed, either from False to True or vice versa. This can be useful to detect the moment of the mouse click or mouse release.
  • lib.math.bool HasTimeChanged -- Triggers a bool if time was scrubbed back in the timeline by the user or by looping. Also known as: DidTimeChange.
  • lib.math.bool HasValueChanged
  • lib.math.bool HasValueIncreased
  • lib.math.bool Invert
  • lib.math.bool Not -- Combines two boolean values with a not operation.
  • lib.math.bool Or -- Returns true if one of its inputs is true. Consider using [Any] if you want to test more than two booleans.
  • lib.math.bool Trigger -- Returns a boolean that gets reset to false on the next frame.

lib.math.curve

  • lib.math.curve CurvesToTexture -- Tip: Hold Shift for snapping. Press F to extend the view to the selection.
  • lib.math.curve SampleCurve

lib.math.float

  • lib.math.float Abs -- The absolute value of a number.
  • lib.math.float Add
  • lib.math.float AmplifyValues -- A helper that smooths or amplifies a value list over time. This can be used to extract beats in an audio spectrum.
  • lib.math.float Atan2 -- Returns the arctangent of a vector.
  • lib.math.float BlendValues -- Blends a number of incoming values with a float value.
  • lib.math.float Ceil -- Rounds to the next highest integer value.
  • lib.math.float Clamp -- This is the Min and Max thing you are looking for.
  • lib.math.float Compare
  • lib.math.float Cos
  • lib.math.float Damp -- Damps (i.e., smooths or filters) an incoming value with the following methods: Linear interpolation: Damping 0 -> instant ... 1 -> value frozen / Target will never be reached. Spring Damp: Uses a "critically damped spring" that will provide a very smooth interpolation that will never overshoot. The ideal damping value depends on your value range (lower spring for very large changes in value). The spring damp method is also used by Unity's SmoothDamp method. Have a look at the example.
  • lib.math.float DampAngle -- Damps the incoming float avoid flips when jumping from 359 to 1 degrees.
  • lib.math.float DampVec3 -- Damps the incoming vector.
  • lib.math.float DetectPulse -- Detects if rapid changes within an input signal exceed a threshold. This can be useful for detecting beats in OSC or audio signals.
  • lib.math.float Div
  • lib.math.float FloatToInt -- Converts a float value to an integer. This can be useful for using values for indices or random seeds. Note: positive values will be floored (0.9 becomes 0), negative values get ceiled (-0.9 becomes 0).
  • lib.math.float Floor
  • lib.math.float HasValueDecreased
  • lib.math.float IntsToBuffer
  • lib.math.float InvertFloat -- Negates a float value.
  • lib.math.float IsGreater
  • lib.math.float Lerp -- Blends between two values (lerp). Also see [BlendValues] to blend between more values and [Remap] to blend between two value ranges.
  • lib.math.float Modulo
  • lib.math.float Multiply
  • lib.math.float PeakLevel
  • lib.math.float PerlinNoise
  • lib.math.float PickFloat -- Picks a value from the connected float inputs.
  • lib.math.float PickFloatList
  • lib.math.float PickInt
  • lib.math.float Pow
  • lib.math.float Random
  • lib.math.float Remap
  • lib.math.float Round -- Advanced version of rounding. See https://www.desmos.com/calculator/rojg8taxot for more additional details.
  • lib.math.float Sigmoid -- Returns a sigmoid function 1/(1+e^x-1).
  • lib.math.float Sin
  • lib.math.float SmoothStep
  • lib.math.float Sqrt -- Computes the square root of a float value.
  • lib.math.float Sub -- Subtracts two float values.
  • lib.math.float Sum
  • lib.math.float Value
  • lib.math.float ValueToRate

lib.math.floats

  • lib.math.floats ComposeVec3FromList -- Composes a Vector3 by selecting floats from a list.
  • lib.math.floats DampPeakDecay -- Compares the current input value to the current damped value. If the input value is great, it is immediately used and no damping applied.
  • lib.math.floats DeltaSinceLastFrame -- Returns the change of the value during the last frame (or a given smoothing average).
  • lib.math.floats FloatListLength
  • lib.math.floats FloatsToList -- Combines connected float values into a List.
  • lib.math.floats KeepFloatValues -- Builds a list of float values (e.g., a Cycle buffer) but collects float values at the beginning of the list.
  • lib.math.floats PickFloatFromList -- Picks a float value from the connected float list.
  • lib.math.floats PlaybackFFT -- Returns the bass audio FFT buffer during soundtrack playback.
  • lib.math.floats RemapValues -- Takes in a list of Vector2 and picks the y component of the pair where X is closest to LookupValue.
  • lib.math.floats SmoothValues -- Smooths a list of values by applying a smoothing window.
  • lib.math.floats SumRange -- Takes a and sums up the values of the given index range' limits.
  • lib.math.floats ValuesToTexture

lib.math.int

lib.math.int2

lib.math.int3

  • lib.math.int3 Int3

lib.math.vec2

lib.math.vec3

  • lib.math.vec3 AddVec3
  • lib.math.vec3 BlendVector3 -- Blends (lerps) two vectors.
  • lib.math.vec3 EulerToAxisAngle -- Converts 3 Euler angles (heading, pitch, yaw) into an axis and angle representation.
  • lib.math.vec3 HasVec3Changed
  • lib.math.vec3 LerpVec3 -- Blends between two values (Lerp).
  • lib.math.vec3 Magnitude -- Returns the length of a Vector3.
  • lib.math.vec3 NormalizeVector3
  • lib.math.vec3 PerlinNoise3
  • lib.math.vec3 PickVector3 -- Selects one Vector3 from many, like a switch.
  • lib.math.vec3 RotateVector3 -- Rotates a vector around an axis.
  • lib.math.vec3 RoundVec3 -- Rounds the incoming Vec3 value by the given precision and method. This can be useful for snapping positions onto a grid.
  • lib.math.vec3 ScaleVector3
  • lib.math.vec3 SubVec3 -- Subtracts two vectors
  • lib.math.vec3 Vec3Distance -- Computes the distance between two vectors. (I.e. substract two positions)
  • lib.math.vec3 Vector3
  • lib.math.vec3 Vector3Components

lib.math.vec4

lib.point.combine

  • lib.point.combine BlendMeshVertices -- Blends between two sets of mesh vertices. This only yields meaningful (i.e., predictable results) for meshes with the same vertex count and topology.
  • lib.point.combine BlendPoints
  • lib.point.combine CombineBuffers -- Combines multiple buffers of the same type (like points).
  • lib.point.combine PairPointsForGridWalkLines -- Special effects operator that works nicely with [CollectSpawnPoints].
  • lib.point.combine PairPointsForLines -- Combines two point buffers so they can be drawn with connection lines between points.
  • lib.point.combine PairPointsForSplines -- Combines two lists of points into a buffer for rendering them as splines.
  • lib.point.combine PickPointList -- Switches between different point buffers.

lib.point.draw

  • lib.point.draw DrawBillboards -- Draws points and billboards or quads. This operator is very flexible and allows for a wide spectrum of effects.
  • lib.point.draw DrawConnectionLines
  • lib.point.draw DrawLines -- Draws a point buffer as lines. The lines will be aligned to the camera, but their width will shrink with distance to the camera. You can override this with the ScaleWithDistance parameter. We use the point’s W attribute as a scale factor for the line width. If the W attribute of a point is NaN (Not a Number), that point is not being drawn and acts as a separator between the adjacent line segments. This allows a point buffer to contain multiple disconnected line segments.
  • lib.point.draw DrawLinesBuildup -- Renders incoming points as growing strokes. The points' W attribute encodes the U progress of the extension of the strokes.
  • lib.point.draw DrawMeshAtPoints2 -- Similar to [DrawBillboards], this operator draws meshes instead of images.
  • lib.point.draw DrawPoints -- Draws a point buffer with the set camera, transform, and fog. The points are drawn as camera-facing billboards, ignoring the point orientation. The W attribute of the points is used for scaling. This can be controlled with the UseWForSize parameter.
  • lib.point.draw DrawPoints2 -- A new version of [DrawPoints] that uses are Radius parameter instead of Size.
  • lib.point.draw DrawPointsShaded -- Draws a point buffer as PBR-shaded spheres using the attributes defined by [SetMaterial].
  • lib.point.draw DrawRayLines -- A special line renderer that draws camera-facing 3D geometry lines without corner metering that can intersect the near plane.
  • lib.point.draw DrawRibbons
  • lib.point.draw DrawTubes -- Draws a shaded 3D mesh for connected lines points.
  • lib.point.draw VisualizePoints -- This helper operator visualizes points and their orientation. It is permanently visible, but you can toggle the default settings for these gizmos using the "Gizmo" toggle in the output window.

lib.point.generate

  • lib.point.generate APoint -- A single point. You can use [JoinLists] and [ListToBuffer] to convert to GPU points.
  • lib.point.generate DoyleSpiralPoints2
  • lib.point.generate GridPoints -- Creates a buffer of GPU points distributed on a rectangular or hexagonal grid.
  • lib.point.generate HexGridPoints
  • lib.point.generate LinePoints -- Define points from a source position to a direction.
  • lib.point.generate MeshVerticesToPoints -- A helper method to analyze meshes.
  • lib.point.generate PointsOnImage -- Uses the image brightness to emit points.
  • lib.point.generate PointsOnMesh -- Get evenly distributed points on a mesh. Note that the initial evaluation of the mesh is extremely slow and should not be done on every frame.
  • lib.point.generate PointTrail -- Keeps previous copies of points in a cycling buffer that can be used to draw trails and other effects.
  • lib.point.generate PointTrail2
  • lib.point.generate RadialPoints -- A versatile generator of circular point sets that can create a variety of circles, spirals, helixes, etc.
  • lib.point.generate RepeatAtGPoints -- Repeats a list of GPU points at positions provided by another list of points. The orientation of the target points can be applied, so this operator can be used to create point instanciation.
  • lib.point.generate RepetitionPoints -- Generate a list of points by repeating a transform operation.
  • lib.point.generate SpherePoints
  • lib.point.generate SubdivideLinePoints -- Inserts additional points between line points.

lib.point.helper

  • lib.point.helper CommonPointSets -- Provides a set of useful point lists that can be used to draw shapes or lines.
  • lib.point.helper FilterPoints -- Selects (i.e., picks) points based on the given criteria.
  • lib.point.helper LoadObjAsPoints -- Loads an OBJ point cloud file. These files can be generated with Blender or MeshLab and can contain color information.
  • lib.point.helper PointsToCPU -- Fetches a point list from GPU to CPU. This can be useful for later exporting to a file (e.g., with [ExportPointList]).

lib.point.modify

lib.point.particles

  • lib.point.particles AxisStepForce -- A force for the [ParticleSystem] that applies random accelerations toward an axis direction. This can lead to interesting results in motion design. If ApplyTrigger is true, a random selection ratio of particles is chosen and accelerated.
  • lib.point.particles DirectionalForce
  • lib.point.particles ImageForce -- Accelerate particles from a signed normal map. The map is stretched to the camera clip space.
  • lib.point.particles ParticleCollisionForce -- A simple similation of sphere collision between points. The radius of the points is the defined on emit by the [ParticleSystem]'s PointRadiusW factor.
  • lib.point.particles ParticleSystem -- Emits particles on emit points and applies the connected forces.
  • lib.point.particles PickParticleForce
  • lib.point.particles ReconstructiveForce -- Blends the simulation particle points toward the original matching emit points.
  • lib.point.particles SurfaceForce -- Repels particles from primitive volumes.
  • lib.point.particles TurbulenceForce -- Adds a turbulence force to a Particle Simulation.

lib.point.sim

  • lib.point.sim PointSimulation -- Creates a simulation buffer for applying simulation-like force fields, curl noise, or flocking simulation. It initially creates a copy of the connected source point buffer. You can then reset to this initial state or constantly blend towards this original state. This can be very helpful to "mix in" a valid state and thus keep a simulation under control.
  • lib.point.sim SamplePointSimAttributes -- Affects a point simulation by sampling a 2D texture.
  • lib.point.sim SimCentricalOffset -- Applies a directed force to points (acceleration stored in W). Use [SimForwardMovement] to move them as agents.
  • lib.point.sim SimDirectionalOffset
  • lib.point.sim SimForceOffset
  • lib.point.sim SimNoiseOffset -- Adds Perlin curl noise to a point buffer.

lib.point.sim.experimental

  • lib.point.sim.experimental ApplyRandomWalk -- Applies random steps to the position and rotation of points.
  • lib.point.sim.experimental GrowStrains -- Uses CollectedSpawnPoints and lines to animate W
  • lib.point.sim.experimental SimBlendTo
  • lib.point.sim.experimental SimFollowMeshSurface -- An updated version of [FollowMeshSurface] that applies the movement on the original buffer.
  • lib.point.sim.experimental SimPointMeshCollisions -- Simulates collisions with meshes.

lib.point.svg

  • lib.point.svg PrepareSvgLineTransition -- This will iterate over the length of all line segments and compute offsets into W.

lib.point.transform

  • lib.point.transform FindClosestPointsOnMesh
  • lib.point.transform OrientPoints -- Orients the rotation of points so that Z points towards a center.
  • lib.point.transform PolarTransformPoints -- Reprojects points from a rectangular space to a radial coordinate system.
  • lib.point.transform SnapToPoints -- Generate a new point buffer with points snapped to other points if the distance is below a threshold.
  • lib.point.transform SoftTransformPoints -- Transforms points inside a volume. Experimenting with different FallOff parameters can provide a wide variety of effects.
  • lib.point.transform TransformFromClipSpace -- Transforms Point positions from world to clip space.
  • lib.point.transform TransformPoints -- Transforms incoming points.
  • lib.point.transform TransformSomePoints -- Transform some points
  • lib.point.transform WrapPoints -- Wraps points within a boundary volume.

lib.sprite

lib.string

  • lib.string AString -- Can be used to define a text string that can be used later.
  • lib.string BuildRandomString -- Produces a wide selection of text writer effects that
  • lib.string ChangeCase -- Changes a case of string to upper or lower case.
  • lib.string CombineStrings -- Combines any number with strings with the provided optional separator.
  • lib.string FilePathParts -- Extracts directory, filename and extension from a filepath and checks if filepath exists.
  • lib.string FloatListToString -- Converts a list of float numbers to String
  • lib.string FloatToString -- Converts a float value into a string.
  • lib.string HasStringChanged -- Returns true if the connected a string attribute has changed.
  • lib.string IntToString -- Converts an [IntValue] to a string.
  • lib.string JoinStringList -- Joins the members of a string with a separator.
  • lib.string MockStrings -- A small selection of strings of different categories.
  • lib.string PickString -- Picks a string of multiple connected.
  • lib.string PickStringPart -- Gets a lines, words, or characters from the input string. Good for typewriter effects, etc.
  • lib.string RandomString -- Returns a random word per beat.
  • lib.string SearchAndReplace -- Looks for characters or strings within another string and returns a new string with the matches replaced.
  • lib.string StringRepeat -- Repeats a string multiple times.
  • lib.string WrapString -- Wraps a string a column width

lib.string.buffers

lib.string.datetime

  • lib.string.datetime CountDown -- Prints a formatted string counting down a duration or time to/since a fixed date.
  • lib.string.datetime DateTimeToFloat -- Converts a DateTime into different float values like normalized time of day (between 0 ... 1), day of the year, etc.
  • lib.string.datetime DateTimeToString
  • lib.string.datetime NowAsDateTime -- Returns the current system time.
  • lib.string.datetime StringToDateTime -- Tries to parse the incoming string as a DateTime.
  • lib.string.datetime TimeToString

lib.string.list

  • lib.string.list PickFromStringList
  • lib.string.list SplitString -- Splits a string by the provided separation character. Returns a List that can be parsed with [PickFromStringList].
  • lib.string.list StringLength
⚠️ **GitHub.com Fallback** ⚠️