lib - tixl3d/tixl GitHub Wiki

Lib.field.adjust

  • Lib.field.adjust NoiseDisplaceSDF -- Displaces the distance of an SDF with a perlin-like noise offset.
  • Lib.field.adjust PushPullSDF -- Makes the incoming SDF volumens thicker or thinner by pushes or pulls the surface by adding a constant value to the distance.
  • Lib.field.adjust SDFToColor -- Remaps an SDF function distance to colors or values.
  • Lib.field.adjust SetSDFMaterial -- Injects a Color provider into the shader graph.

Lib.field.analyze

  • Lib.field.analyze VisualizeFieldDistance -- Visualizes the distance a field by drawing a plane with contour lines.

Lib.field.combine

  • Lib.field.combine CombineFieldColor --
  • Lib.field.combine CombineSDF -- Combines two or more connected fields with the provided blend method.
  • Lib.field.combine StairCombineSDF -- A set of sdf combine operations that will turn intersections into stairs or bumps.

Lib.field.generate

  • Lib.field.generate SubDivPattern3d -- Generates a 3d pattern similar to [SubDivisionStretch].

Lib.field.generate.sdf

  • Lib.field.generate.sdf BoxSDF -- Generates a procedural cylinder field with rounded edges which can be rendered with [RaymarchField] and visualized with [VisualizeFieldDistance].
  • Lib.field.generate.sdf CappedTorusSDF -- Generates a procedural torus field with which can be capped (with rounded edges).
  • Lib.field.generate.sdf CapsuleLineSDF -- Generates a procedural capsule field by connecting two points.
  • Lib.field.generate.sdf ChainLinkSDF -- Generates a procedural chain link field which can be rendered with [RaymarchField] and visualized with [VisualizeFieldDistance].
  • Lib.field.generate.sdf CityFactalSdf2 -- A port of a shader toy scene by XOR.
  • Lib.field.generate.sdf CustomSDF --
  • Lib.field.generate.sdf CylinderSDF -- Generates a procedural cylinder field with rounded edges which can be rendered with [RaymarchField] and visualized with [VisualizeFieldDistance].
  • Lib.field.generate.sdf FractalSDF -- Generates a procedural MandelBox field which can be rendered with [RaymarchField] and visualized with [VisualizeFieldDistance].
  • Lib.field.generate.sdf PlaneSDF --
  • Lib.field.generate.sdf PrismSDF -- Generates a prism SDF (I.e. a n-sided cylinder).
  • Lib.field.generate.sdf SphereSDF -- Generates a procedural sphere field which can be rendered with [RaymarchField] and visualized with [VisualizeFieldDistance].
  • Lib.field.generate.sdf TorusSDF -- Generates a procedural torus field which can be rendered with [RaymarchField] and visualized with [VisualizeFieldDistance].
  • Lib.field.generate.sdf TriangularPrismField -- Obsolete version. Please use [PrismoSDF].

Lib.field.generate.texture

  • Lib.field.generate.texture Raster3dField -- Uses TiXL's Raymarching integration to generate a procedural raster 3D Texture that can be mapped onto meshes via [DrawMesh].

Lib.field.render

  • Lib.field.render RaymarchField -- Renders the connected shader graph SDF.
  • Lib.field.render Render2dField -- Renders a 2d color field into a texture.

Lib.field.space

  • Lib.field.space BendField -- Bends / curves the incoming field along the given axis.
  • Lib.field.space PolarRepeat -- Mirrors and rotates the incoming field in the desired number around a central axis.
  • Lib.field.space ReflectField -- Folds / kinks / reflects the incoming field through a plane.
  • Lib.field.space RepeatField3 -- Infinitely repeats the incoming field in every direction.
  • Lib.field.space RepeatFieldAtPoints -- Repeats the incoming field at the connected points.
  • Lib.field.space RepeatFieldLimit -- Repeats the incoming field in the defined direction.
  • Lib.field.space RepeatWithMirror -- Infinitely mirrors and repeats the incoming field along the defined axis.
  • Lib.field.space TransformField -- Transforms, rotates and scales the incoming field in 3D space.
  • Lib.field.space Translate -- Transforms the position of the field in 3D space.
  • Lib.field.space TwistField -- Twists the input field along the given axis.

Lib.flow

  • Lib.flow BlendScenes -- Uses a float index to alpha blend between draw scenes.
  • Lib.flow ExecRepeatedly -- Controls how frequently the sub graph is being executed.
  • Lib.flow 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.flow ExecuteOnce -- Executes the subgraph only once. This can be useful for initializing buffers or resetting states.
  • Lib.flow LoadSoundtrack -- This operator has no function other than to point out that, unlike meshes, images and other assets, audio files are integrated via the "Playback Settings" menu.
  • Lib.flow LogMessage -- Prints a message to console log.
  • Lib.flow Loop -- Executes the sub graph multiple times. This can be very useful for iterating a drawing functions.
  • Lib.flow Once -- Briefly indicates whether the incoming Boolean value has changed.
  • Lib.flow ResetSubtreeTrigger --
  • Lib.flow Switch -- Switches between connected graphs. Can be used to "cut" between scenes.
  • Lib.flow TimeClip -- Creates a time clip bar within the DopeView of the Timeline, similar to how Video editing apps show clips.

Lib.flow.context

  • Lib.flow.context ExecuteRawBufferUpdate --
  • Lib.flow.context GetFloatVar -- Fetches a float variable from the context.
  • Lib.flow.context GetForegroundColor -- Gets the current foreground color from the context.
  • Lib.flow.context GetIntVar -- Reads a variable from the context.
  • Lib.flow.context GetMatrixVar -- Retrieves a matrix as an array for Vector4 from the evaluation context.
  • Lib.flow.context GetPosition -- Gets the current position, rotation, and scale in the world so it can be applied to other transforms.
  • Lib.flow.context SetFloatVar -- Writes a float value to the context's float variable dictionary.
  • Lib.flow.context SetIntVariable -- Sets or overwrites an int variable that can be retrieved by [GetIntVar] further down (left in) the graph.
  • Lib.flow.context SetMatrixVar -- Stores a matrix as an array of vector4 on the evaluation context.

Lib.image.analyze

  • Lib.image.analyze CompareImages -- A simple helper to verify an image effect before and after. It shows both images divided by a movable border which also acts as a comparison monitor.
  • Lib.image.analyze GetImageBrightness -- Analyzes the brightness of a 2d input and outputs the brightness as a float value.
  • Lib.image.analyze ImageLevels -- Visualizes the image brightness distribution of an image.
  • Lib.image.analyze OpticalFlow -- Implements an optical flow effect that generates a motion vector field, which can be used to drive particle effects. The effect requires successive image frames as input, which can be generated by using [KeepPreviousFrame]. The motion vectors are stored in the red and green channels of the result. The blue channel is used for the magnitude of the detected motion. Parameters: OutputMethod: Switch between grayscale (neutral values: R 0.5, G 0.5, B 0) or signed (with ranges from -1 to 1). Amount: Controls the magnitude of the detected motion. Lod: Specifies which MipMap level of the input textures should be sampled. This results in a blurring of the effect. ClampRange: Can be used to clamp and normalize the results, preventing values from becoming too small or excessively large. The shader implements the Lucas-Kanade flow algorithm: https://en.wikipedia.org/wiki/Lucas%E2%80%93Kanade_method It builds upon a previous shader implementation by mds2 on Shadertoy: https://www.shadertoy.com/view/XlBcRV Also check the example.
  • Lib.image.analyze WaveForm -- Visualizes the color and intensity distribution within an image by overlaying a Waveform and a Vectorscope.

Lib.image.color

  • Lib.image.color AdjustColors -- Adjusts various color properties of the incoming image and adds a slight vignette.
  • Lib.image.color ChannelMixer -- Adjusts the color of an incoming image.
  • Lib.image.color ColorGrade -- Adjusts the color grading of the incoming image for the Gain (highlights), Gamma (mid-tones), and Lift (shadows).
  • Lib.image.color ColorGradeDepth -- A advanced color grade that uses a depth buffer based gradient look for additional effects.
  • Lib.image.color ConvertColors -- Converts between different color spaces.
  • Lib.image.color 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.image.color KeyColor -- A simple color keyer.
  • Lib.image.color 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 or color cycling effects.
  • Lib.image.color Tint -- Tints the bright and dark colors of an image. This can be an easy method for subtle color corrections the achive a wide variety of conversion effects, like grayscale or threshold.
  • Lib.image.color ToneMapping -- Tone mapping is the process of converting high dynamic range (HDR) imagery to a displayable format, adjusting the contrast and brightness to make it visually appealing while preserving details in both highlights and shadows.

Lib.image.fx.blur

  • Lib.image.fx.blur Bloom -- An more versatile and faster version of [Glow].
  • Lib.image.fx.blur Blur -- Blurs the incoming image
  • Lib.image.fx.blur DirectionalBlur -- Blurs the incoming image along a directional angle.
  • Lib.image.fx.blur Sharpen -- Sharpens the incoming image.

Lib.image.fx.distort

  • Lib.image.fx.distort 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', 'Magnifying glass'
  • Lib.image.fx.distort ChromaticDistortion -- Simulates an imaging error of optical camera lenses that manifests itself as blurring or discoloration at the outer edges.
  • Lib.image.fx.distort Displace --
  • Lib.image.fx.distort DistortAndShade -- Uses two images to distort (create a bevel / emboss effect) that can look like textured glass
  • Lib.image.fx.distort EdgeRepeat -- Repeats (stretches) pixels of the input image along a line.
  • Lib.image.fx.distort KochKaleidoskope -- This effect is based on Koch snowflake fractal curve.
  • Lib.image.fx.distort PolarCoordinates -- Applies a polar coordinate transformation that converts between circular and rectangular coordinates. In other words, it wraps and unwraps round images.

Lib.image.fx.feedback

  • Lib.image.fx.feedback 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.image.fx.feedback AdvancedFeedback2 -- An improved feedback effect based on OKLab space.
  • Lib.image.fx.feedback AfterGlow -- Creates an afterglow effect for moving images just like the newer version [AfterGlow2]
  • Lib.image.fx.feedback AfterGlow2 -- Creates an afterglow effect for moving images
  • Lib.image.fx.feedback FluidFeedback -- An example of how feedback combined with displacement can lead to a variety of effects.
  • Lib.image.fx.feedback SimpleLiquid -- A port of 'simple detailed fluid' from 'https://www.shadertoy.com/view/sl3Szs' by Lomateron.
  • Lib.image.fx.feedback SimpleLiquid2 -- This Simple Detailed Fluid effect is a port of 'https://www.shadertoy.com/view/sl3Szs' by Lomateron.

Lib.image.fx.glitch

  • Lib.image.fx.glitch GlitchDisplace -- Takes the incoming image and applies an image effect that glitches and displaces parts of the image to mimic lossy signals, broken videofiles, codec glitches etc.
  • Lib.image.fx.glitch RgbTV -- Creates a vintage TV-glitch effect.
  • Lib.image.fx.glitch SortPixelGlitch -- An interesting image glitch effect.
  • Lib.image.fx.glitch SubdivisionStretch -- A powerful image generation effect that splits an image into smaller and smaller fragments. The splits occur horizontal or vertical within the giving split range.

Lib.image.fx.stylize

  • Lib.image.fx.stylize AsciiRender -- Draws the incoming image as shaded ASCII characters, similar to 'The Matrix'.
  • Lib.image.fx.stylize ChromaticAbberation -- Simulates an imaging error of optical camera lenses that manifests itself as blurring or discoloration at the outer edges.
  • Lib.image.fx.stylize DetectEdges -- Detects edges in the incoming image.
  • Lib.image.fx.stylize Dither -- Applies Floyd-Steinberg dithering to an image to convert it to black and white colors.
  • Lib.image.fx.stylize FakeLight -- Applies fake shading to the image.
  • Lib.image.fx.stylize Glow -- Adds a bloom effect to the incoming image. It uses multiple resolution passes and is reasonably fast.
  • Lib.image.fx.stylize HoneyCombTiles -- Creates a hexagonal pattern based on an incoming image.
  • Lib.image.fx.stylize LightRaysFx -- Based on "Simpler God Rays" by akufishi
  • Lib.image.fx.stylize MosiacTiling -- Subdivides the incoming image into recursive tiles.
  • Lib.image.fx.stylize Pixelate -- TilesAmount parameter works only if Divisor = 0, if Divisor is greater than 0 it will divide the resolution of your image and try to keep the tiles close to a square shape.
  • Lib.image.fx.stylize ScreenCloseUp -- Uses the incoming 2D image and puts it on a virtual LCD / screen in a 3D scene that looks as if it is being filmed by a real camera (including depth of field etc)
  • Lib.image.fx.stylize Steps -- A versatile effect that uses the value of the input image to draw 'steps'. These can be shaded and animated.
  • Lib.image.fx.stylize VoronoiCells -- Creates a Voronoi cell pattern based on an incoming image.

Lib.image.generate

Lib.image.generate.basic

  • Lib.image.generate.basic Blob -- Generates ellipses, circles, blobs, vignettes, and similar shapes.
  • Lib.image.generate.basic BoxGradient -- A box gradient using the signed distance field "Box - Exact" desbribed in the "2D distance functions" article on Inigo Quilez's website.
  • Lib.image.generate.basic CheckerBoard -- Generates a modular chessboard pattern
  • Lib.image.generate.basic LinearGradient -- Renders a linear color ramp defined by a gradient. This can be very useful in combination with [Steps].
  • Lib.image.generate.basic NGon -- Renders a polygon shape similar to [Blob] or [RoundedRect].
  • Lib.image.generate.basic NGonGradient -- Renders a polygon shape similar to [NGon], [Blob] or [RoundedRect].
  • Lib.image.generate.basic RadialGradient -- Generates an image with a radial gradient.
  • Lib.image.generate.basic 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.image.generate.basic RoundedRect -- Generates a rounded rectangle.

Lib.image.generate.fractal

Lib.image.generate.load

  • Lib.image.generate.load ImageSequenceClip -- Loads an image sequence from a folder and adds it as a time clip bar within the DopeView of the Timeline, similar to how Video editing apps show clips.
  • Lib.image.generate.load LoadImage -- Loads an image file as a Texture2D.
  • Lib.image.generate.load LoadImageFromUrl -- Loads an image file with the specified URL. This process does not use caching.

Lib.image.generate.misc

  • Lib.image.generate.misc JumpFloodFill -- Generates a distance field based on an images Alpha channel
  • Lib.image.generate.misc 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.image.generate.misc SlidingHistory -- Generates a waveform image by feeding in a horizontal texture line at the bottom of the texture.

Lib.image.generate.noise

  • Lib.image.generate.noise FractalNoise -- Generates a procedural fractal noise image effect also known as Pink noise or fractional noise that can be used to create visual patterns that look like cloud, smoke, dust and scratches on film and similar
  • Lib.image.generate.noise Grain -- Adds animated image pixel noise similar to that of an analog TV or film grain.
  • Lib.image.generate.noise ShardNoise -- A port of @ENDESGA's SHARD NOISE shader
  • Lib.image.generate.noise WorleyNoise -- Also called Voronoi noise and cellular noise.

Lib.image.generate.pattern

  • Lib.image.generate.pattern FraserGrid -- The basis for the Fräser spiral illusion.
  • Lib.image.generate.pattern NumberPattern -- Renders columns for values that can be driven by an input texture. This can create a nice effect as an overlay.
  • Lib.image.generate.pattern Raster -- Generates a wide range of patterns of dots and lines.
  • Lib.image.generate.pattern Rings -- Generates a procedural rings texture that can produce a wide variety of radial patterns. Please try the presets.
  • Lib.image.generate.pattern 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.image.generate.pattern 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.image.generate.pattern SinForm -- Generates a sine curve with various parameters
  • Lib.image.generate.pattern ZollnerPattern -- Creates an image for a optical illusion.

Lib.image.transform

  • Lib.image.transform Crop -- Crops an image or adds a frame.
  • Lib.image.transform MakeTileableImage -- Makes an incoming image tileable based on linear edge Falloff.
  • Lib.image.transform MakeTileableImageAdvanced -- Makes an incoming image tileable based on linear edge Falloff combined with a tweakable noise pattern that can also be animated.
  • Lib.image.transform MirrorRepeat -- Shifts, slices or mirrors the incoming image to create endless textures or kaleidoscopic patterns when combined with itself
  • Lib.image.transform TransformImage -- Rotates, offsets, and scales the incoming image.

Lib.image.use

  • Lib.image.use Blend -- Blends two images.
  • Lib.image.use BlendImages -- Blends the connected input images with cross-fading and using a float index.
  • Lib.image.use BlendWithMask -- Blends two images by the brightness of a 3rd mask image.
  • Lib.image.use Combine3Images -- A node to combine 3 input images into the RGBA channels of a new one.
  • Lib.image.use CombineMaterialChannels -- Combines roughness, metallic, and ambient occlusion texture maps that are loaded with [LoadImage] into a single texture for [SetMaterial] to create PBR Materials.
  • Lib.image.use CombineMaterialChannels2 -- Combines roughness, metallic, and ambient occlusion texture maps into a single texture for [SetMaterial].
  • Lib.image.use CustomPixelShader -- Creates a custom shader from a source parameter. This can be useful for prototyping.
  • Lib.image.use DepthBufferAsGrayScale -- Converts the provided depth buffer into a grayscale texture.
  • Lib.image.use FirstValidTexture --
  • Lib.image.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.image.use NormalMap -- Converts the brightness of an image into a normal map that can be used with [SetMaterial].
  • Lib.image.use PickTexture -- Picks one of the connected textures. Only the selected connection will be updated.
  • Lib.image.use RenderWithMotionBlur -- This will render multiple instances of the incoming op each pass with slightly offset local time.
  • Lib.image.use SwapTextures -- A helper that swaps texture buffers. This can be useful for implementing buffer buffering in compute shader effects.
  • Lib.image.use UseFallbackTexture -- Automatically replaces a non-loadable texture with a predefined backup.
  • Lib.image.use UseTextureReference -- Used a reference to a [RenderTarget] to implement feedback effects.

Lib.io.audio

  • Lib.io.audio AudioReaction -- Creates audio reaction from audio inputs.

Lib.io.file

  • Lib.io.file FilesInFolder -- Scans a folder for all existing files and creates a list that can be used with [PickFromStringList]
  • Lib.io.file ReadFile -- Reads a file on the local disk and outputs the content as a string
  • Lib.io.file WriteToFile -- Writes the incoming string into a predefined file on the local disk

Lib.io.input

  • Lib.io.input Gamepad -- # Gamepad input using XInput. It supports up to four gamepads.
  • Lib.io.input KeyboardInput -- Allows the real-time manipulation of any value using a key on the keyboard.
  • Lib.io.input KeyboardInputAsInt -- Returns integer values from 0 to 9 for pressed numeric keys.
  • Lib.io.input MouseInput -- Allows the real-time manipulation of any values using the mouse / trackpad

Lib.io.json

  • Lib.io.json GetAttributeFromJsonString -- Loads a Json string from a URL and outputs the defined part as a string.
  • Lib.io.json RequestUrl -- Loads a URL and outputs the source text as a string.

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 -- Creates a time clip bar within the DopeView of the Timeline, similar to how Video editing apps show clips.
  • Lib.io.midi MidiControlOutput -- Send 7 bit ControlChange or Channel Pressure events to the selected device. The value is given either as an integer value between 0 and 127 or as a normalized float value between 0.0 and 1.0.
  • 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.
  • Lib.io.midi MidiNoteOutput -- Send Midi notes to the selected device on the given channel. The velocity is provided either as an integer between 0 and 127 or as a normalized float value between 0.0 and 1.0
  • 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 MidiPitchbendOutput -- Send 14 bit pitchbend events to the selected Device on the given Channel. The value can be provided either as an integer value between -8192 and 8191 or as a normalized float value between -1.0 and 1.0.
  • Lib.io.midi MidiRecording -- An experimental implementation to record MIDI input signals.
  • Lib.io.midi MidiTriggerOutput -- Send ProgramChange or Sequencer commands to the selected Device on the chosen Channel. The ProgramChangeNumber is given as an integer between 0 and 127.

Lib.io.osc

  • Lib.io.osc OscInput -- Receives OSC input from a connected server.
  • Lib.io.osc OscOutput -- Send out OSC signals to a receiver.

Lib.io.video

  • Lib.io.video NdiInput -- NDI live video input
  • Lib.io.video NdiOutput -- NDI live video output. R8G8B8A8_UNorm texture format or R8G8B8A8_Typeless is required for output. You can adjust the render format by using a ConvertFormat op or [RenderTarget] like in this example: [TorusMesh]->[DrawMesh]->[RenderTarget]->[SpoutOutput].
  • Lib.io.video PlayAudioClip -- This a work around to playback audio clips without syncing.
  • Lib.io.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.io.video PlayVideoClip -- Implementation to load and play Videofiles with similar options like a [TimeClip]
  • Lib.io.video ScreenCapture -- Loads and renders the content of the entire screen, similar to screen capturing software like OBS (Open Broadcaster Software).
  • 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.mesh.draw

  • Lib.mesh.draw DrawMesh -- Uses PBR rendering to draw incoming geometry and meshnodes according to the desired settings.
  • Lib.mesh.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.mesh.draw DrawMeshChunksAtPoints --
  • Lib.mesh.draw DrawMeshHatched -- Draws incoming geometry and meshnodes in an abstract shading style.
  • Lib.mesh.draw DrawMeshUnlit -- Draws incoming geometry and meshnodes without any shading and according to the desired settings.
  • Lib.mesh.draw DrawMeshWithShadow -- Is used together with [SetShadow] and a [SetPointLight] to render incoming geometry with a shadow map.
  • Lib.mesh.draw VisualizeUvMap -- A draw helper to check the UV maps of a given mesh

Lib.mesh.generate

  • Lib.mesh.generate CubeMesh -- Generates a procedural three-dimensional mesh which can be rendered with [DrawMesh] , [DrawMeshUnlit] and [DrawMeshHatched] among others.
  • Lib.mesh.generate CylinderMesh -- Generates a procedural three-dimensional mesh which can be rendered with [DrawMesh] , [DrawMeshUnlit] and [DrawMeshHatched] among others.
  • Lib.mesh.generate ExtrudeCurves -- Generates a mesh by extruding a set of points along a set of other points.
  • Lib.mesh.generate LoadObj -- Loads a a mesh from an obj. file by generating Vertex and Index buffers which can be rendered with [DrawMesh] , [DrawMeshUnlit] and [DrawMeshHatched] among others.
  • Lib.mesh.generate NGonMesh -- Generates a procedural flat circular mesh with a joined center vertex which can be rendered with [DrawMesh] , [DrawMeshUnlit] and [DrawMeshHatched] among others.
  • Lib.mesh.generate QuadMesh -- Generates a procedural three-dimensional tesselated mesh which can be rendered with [DrawMesh] , [DrawMeshUnlit] and [DrawMeshHatched] among others.
  • Lib.mesh.generate RepeatMeshAtPoints -- Creates a new mesh that repeats the incoming mesh at each point.
  • Lib.mesh.generate SphereMesh -- Generates a procedural three-dimensional UV sphere mesh which can be rendered with [DrawMesh] , [DrawMeshUnlit] and [DrawMeshHatched] among others.
  • Lib.mesh.generate TorusMesh -- Generates a procedural three-dimensional torus mesh which can be rendered with [DrawMesh] , [DrawMeshUnlit] and [DrawMeshHatched] among others.

Lib.mesh.modify

  • Lib.mesh.modify 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.mesh.modify CollapseVertices -- A simple effect the snaps the position of vertices to a grid.
  • Lib.mesh.modify CombineMeshes -- Combines the connected mesh buffers into a new mesh
  • Lib.mesh.modify DeformMesh -- Spherize, Taper and Twist. It works better if your mesh has a high density of vertices.
  • Lib.mesh.modify DisplaceMesh -- Distorts the input mesh by displacing its vertices by an amount controlled by the connected input texture.
  • Lib.mesh.modify DisplaceMeshNoise -- Displaces a Mesh with perlin noise.
  • Lib.mesh.modify FlipNormals -- Reverses the normals of the input mesh. This can be useful for drawing shader "inside" surfaces of a mesh.
  • Lib.mesh.modify MeshFacesPoints -- Set points at the "Inscribed Circle Center" of the mesh's faces, as the W attribute gets the radius the size of wach of the faces defines the size of the points.
  • Lib.mesh.modify MeshProjectUV -- Overwrites the existing UV coordinates with planar mapping.
  • Lib.mesh.modify MoveMeshToPointLine -- Deforms a mesh in world space origin along a line defined by points.
  • Lib.mesh.modify PickMeshBuffer -- Switch between different mesh buffers
  • Lib.mesh.modify RecomputeNormals -- Recalculates the normals (smoothing groups) of the surfaces of a mesh. For example, if these are changed by [DeformMesh] and similar operators
  • Lib.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.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.mesh.modify SplitMeshVertices -- This can be relevant to "scatter" smooth shaded geometry or change shading to flat.
  • Lib.mesh.modify TextureDisplaceMesh -- Uses a projected texture with a normal map to displace the mesh.
  • Lib.mesh.modify TransformMesh -- Generates a new set of transformed vertices for a mesh.
  • Lib.mesh.modify TransformMeshUVs -- Manipulates the existing UV coordinates of a mesh to change the mapping of textures.
  • Lib.mesh.modify Warp2dMesh -- Uses a set of reference points to warp a mesh geometry. This can be useful for adjusting project mapping.

Lib.numbers.anim.animators

  • Lib.numbers.anim.animators AnimValue -- Generates a repetitive LFO-like signal synced to the current BPM rate. It supports various shapes, modes and forms.
  • Lib.numbers.anim.animators AnimVec2 -- Generates a repetitive LFO-like signal synced to the current BPM rate. It supports various shapes, modes and forms.
  • Lib.numbers.anim.animators AnimVec3 -- Generates a repetitive LFO-like signal synced to the current BPM rate. It supports various shapes, modes and forms.
  • Lib.numbers.anim.animators OscillateVec2 -- A helper that combines 2 sin waves into a vector
  • Lib.numbers.anim.animators OscillateVec3 -- A helper that combines 3 sin waves into a vector
  • Lib.numbers.anim.animators SequenceAnim -- Creates a visual sequencer that can be controlled by adding a string of numbers
  • Lib.numbers.anim.animators TriggerAnim -- Generate interactive animation values than can be triggered with a boolean value.

Lib.numbers.anim.time

  • Lib.numbers.anim.time AbletonLinkSync -- An experimental implementation of the AbletonLink synchronization.
  • Lib.numbers.anim.time ClipTime -- Returns the current time in Bars.
  • Lib.numbers.anim.time ConvertTime -- Converts time between seconds and bars.
  • Lib.numbers.anim.time DateTimeInSecs -- Returns the seconds since 1970.
  • Lib.numbers.anim.time GetFrameSpeedFactor -- This is set when rendering updates not at 60fps. This can happen for...
  • Lib.numbers.anim.time HasTimeChanged -- Triggers a bool if time was scrubbed back in the timeline by the user or by looping. Also known as: DidTimeChange.
  • Lib.numbers.anim.time LastFrameDuration -- Measures how long it took to render the last frame in miliseconds
  • Lib.numbers.anim.time RunTime -- Returns the application runtime in seconds. This is rarely useful. Consider using [Time].
  • Lib.numbers.anim.time SetCommandTime -- Overrides the animation time of a sub-command graph.
  • Lib.numbers.anim.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.numbers.anim.time SetPlaybackTime -- An advanced playback control that will move the current playhead to the defined time.
  • Lib.numbers.anim.time StopWatch -- A stopwatch that can stop, measure, and keep time and thus measure durations.
  • Lib.numbers.anim.time Time2 -- A cleaned up version of Time adds mode to clarify if time is returned in bars or seconds

Lib.numbers.anim.utils

  • Lib.numbers.anim.utils 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.numbers.anim.vj

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

Lib.numbers.bool.combine

  • Lib.numbers.bool.combine All -- Returns true if all of the connected booleans are true.
  • Lib.numbers.bool.combine And -- Returns True if both inputs are true. Consider using [All] if you want to test more than two booleans for true.
  • Lib.numbers.bool.combine Any -- Returns true if any of its inputs are true.
  • Lib.numbers.bool.combine Or -- Returns true if one of its inputs is true. Consider using [Any] if you want to test more than two booleans.

Lib.numbers.bool.convert

  • Lib.numbers.bool.convert BoolToFloat -- Allows the conversion of a Boolean value into a float value with predefined values
  • Lib.numbers.bool.convert 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.numbers.bool.logic

  • Lib.numbers.bool.logic FlipBool -- Toggles (flips) a boolean between true/false everytime it is triggered.
  • Lib.numbers.bool.logic FlipFlop -- Holds the "activated" state of a boolean. Also check [DelayTrigger].
  • Lib.numbers.bool.logic 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.numbers.bool.logic Not -- Creates and / or inverts a single Boolean value
  • Lib.numbers.bool.logic PickBool -- Picks a bool from the connected inputs.
  • Lib.numbers.bool.logic ToggleBoolean -- When triggered toggles from true to false and back.
  • Lib.numbers.bool.logic Trigger -- Returns a boolean that gets reset to false on the next frame.
  • Lib.numbers.bool.logic WasTrigger -- Returns true if one of the trigger variables have been set.
  • Lib.numbers.bool.logic Xor -- Combines two boolean values with a not operation.

Lib.numbers.bool.process

  • Lib.numbers.bool.process DelayBoolean --
  • Lib.numbers.bool.process 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.numbers.bool.process KeepBoolean -- Keeps the state of flag until it is reset.

Lib.numbers.color

  • Lib.numbers.color BlendColors -- Blends two colors with the defined blendmode
  • Lib.numbers.color BlendGradients -- Blends two color gradients with the defined blendmode
  • Lib.numbers.color DefineGradient -- Defines a Gradient from a set of Colors and positions.
  • Lib.numbers.color GradientsToTexture -- Generates a texture from a gradient
  • Lib.numbers.color HSBToColor -- Creates an RGBA color from HSB settings
  • Lib.numbers.color PickColorFromImage -- Gets the color of a certain position in the texture
  • Lib.numbers.color SampleGradient -- Defines a gradient that can then be sampled into a color or used further by [GradientsToTexture] or other operators.

Lib.numbers.curve

  • Lib.numbers.curve CurvesToTexture -- Tip: Hold Shift for snapping. Press F to extend the view to the selection.
  • Lib.numbers.curve SampleCurve -- Creates a window in the 'graph' in which a curve editor with a single curve is created.

Lib.numbers.data.utils

Lib.numbers.float.adjust

  • Lib.numbers.float.adjust Abs -- The absolute value of a number.
  • Lib.numbers.float.adjust Ceil -- Rounds to the next highest integer value.
  • Lib.numbers.float.adjust Clamp -- Clamps an input float between two values.
  • Lib.numbers.float.adjust Floor -- Rounds to the next lower integer value.
  • Lib.numbers.float.adjust InvertFloat -- Negates a float value.
  • Lib.numbers.float.adjust Remap -- Remaps a value range to a new value range. Optionally applies bias, clamping or modulo.
  • Lib.numbers.float.adjust Round -- Advanced version of rounding. See https://www.desmos.com/calculator/rojg8taxot for more additional details.
  • Lib.numbers.float.adjust Sigmoid -- Returns a sigmoid function 1/(1+e^x-1).

Lib.numbers.float.basic

  • Lib.numbers.float.basic Add -- Adds two float values and outputs the result as a float
  • Lib.numbers.float.basic Div -- Divides two float values and outputs the quotient / result as float
  • Lib.numbers.float.basic Log -- Calculates the result of a logarithmic function
  • Lib.numbers.float.basic Modulo -- Modulo for floats.
  • Lib.numbers.float.basic Multiply -- Multiplies two floats.
  • Lib.numbers.float.basic Pow -- Calculates the result of an exponential function
  • Lib.numbers.float.basic Sqrt -- Computes the square root of a float value.
  • Lib.numbers.float.basic Sub -- Subtracts two float values.
  • Lib.numbers.float.basic Sum -- Allows to connect any amount of floats whose sum is output

Lib.numbers.float.logic

  • Lib.numbers.float.logic Compare -- Compares two float values, outputting a boolean.
  • Lib.numbers.float.logic HasValueChanged -- Tests whether the incoming value has changed by a defined threshold and outputs this as a Boolean
  • Lib.numbers.float.logic HasValueIncreased -- Tests whether the incoming value has increased by a defined threshold and outputs this as a Boolean
  • Lib.numbers.float.logic IsGreater -- Tests whether the incoming value has is higher than the threshold and outputs the result as a Boolean
  • Lib.numbers.float.logic PickFloat -- Picks a value from the connected float inputs.
  • Lib.numbers.float.logic TryParse -- Tries to parse a string to a float number, if failing, the default value is used instead.
  • Lib.numbers.float.logic ValueToRate -- Converts a value to a rate.

Lib.numbers.float.process

  • Lib.numbers.float.process Accumulator -- Accumulates a value with the incoming rate.
  • Lib.numbers.float.process BlendValues -- Blends a number of incoming values with a float value.
  • Lib.numbers.float.process Damp -- Damps (i.e. smoothens or filters) an incoming float value.
  • Lib.numbers.float.process DampAngle -- Damps (i.e. smoothens or filters) an incoming float value. Avoids flips when jumping from 359 to 0 degrees.
  • Lib.numbers.float.process 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.numbers.float.process Ease -- Note: The input value should evolve by steps (e.g., sudden changes) to fully utilize the easing effect.
  • Lib.numbers.float.process FreezeValue -- Keeps the current input value as long as Keep is true.
  • Lib.numbers.float.process HasValueDecreased -- Tests whether the incoming value has decreased by a defined threshold and outputs this as a Boolean
  • Lib.numbers.float.process Lerp -- Blends between two values (lerp). Also see [BlendValues] to blend between more values and [Remap] to blend between two value ranges.
  • Lib.numbers.float.process PeakLevel -- Analyzes the incoming value changes and outputs information about the peaks
  • Lib.numbers.float.process RemapValues -- Takes in a list of Vector2 and picks the y component of the pair where X is closest to LookupValue.
  • Lib.numbers.float.process SmoothStep -- Smoothes an incoming animated value
  • Lib.numbers.float.process Spring -- Adds a bounce effect to the incoming value.

Lib.numbers.float.random

  • Lib.numbers.float.random FloatHash -- Generates a psydorandom integer from a float value
  • Lib.numbers.float.random PerlinNoise -- Generates a continuously and randomly changing value in the predefined range based on Perlin Noise / Gradient Noise.
  • Lib.numbers.float.random Random -- Generates a static random value based on a seed in the predefined range.

Lib.numbers.float.trigonometry

  • Lib.numbers.float.trigonometry Atan2 -- Returns the arctangent of a vector.
  • Lib.numbers.float.trigonometry Cos -- Creates a cosine wave also known as cosinusoidal wave or cosinusoid.
  • Lib.numbers.float.trigonometry Sin -- Creates a sine wave also known as sinusoidal wave or sinusoid.

Lib.numbers.floats.basic

  • Lib.numbers.floats.basic FloatListLength -- Needs a [FloatsToList] Operator connected.
  • Lib.numbers.floats.basic FloatsToList -- Combines connected float values into a List.
  • Lib.numbers.floats.basic SetFloatListValue -- Manipulate a value in a float list

Lib.numbers.floats.conversion

  • Lib.numbers.floats.conversion ComposeVec3FromList -- Composes a Vector3 by selecting floats from a list.

Lib.numbers.floats.io

  • Lib.numbers.floats.io PlaybackFFT -- Returns the bass audio FFT buffer during soundtrack playback.

Lib.numbers.floats.logic

  • Lib.numbers.floats.logic PickFloatFromList -- Picks a float value from the connected float list.
  • Lib.numbers.floats.logic PickFloatList -- Picks a FloatList from the connected list inputs.

Lib.numbers.floats.process

  • Lib.numbers.floats.process AmplifyValues -- A helper that smooths or amplifies a value list over time. This can be used to extract beats in an audio spectrum.
  • Lib.numbers.floats.process DampFloatList -- Damps (i.e. smoothens or filters) every value in an incoming float list.
  • Lib.numbers.floats.process 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.numbers.floats.process DeltaSinceLastFrame -- Returns the change of the value during the last frame (or a given smoothing average).
  • Lib.numbers.floats.process KeepFloatValues -- Builds a list of float values (e.g., a Cycle buffer) but collects float values at the beginning of the list.
  • Lib.numbers.floats.process SmoothValues -- Smooths a list of values by applying a smoothing window.
  • Lib.numbers.floats.process SumRange -- Takes a and sums up the values of the given index range' limits.
  • Lib.numbers.floats.process ValuesToTexture -- Converts a list of values into pixels of a texture in real time.

Lib.numbers.int.basic

  • Lib.numbers.int.basic AddInts -- Adds two integers
  • Lib.numbers.int.basic IntAdd -- Adds two integers
  • Lib.numbers.int.basic IntDiv -- Divides Integer A (Numerator) by Integer B (Denominator)
  • Lib.numbers.int.basic IntToFloat -- Converts an integer to a Float
  • Lib.numbers.int.basic ModInt -- Modulo for integers.
  • Lib.numbers.int.basic MultiplyInt -- Multiplies two Integers
  • Lib.numbers.int.basic MultiplyInts -- Multiplies all connected integer values. This can be useful to calculate the capacity or volume defined by an arbitrary number of axis.
  • Lib.numbers.int.basic SubInts -- Subtracts int B from int A.
  • Lib.numbers.int.basic SumInts -- Adds the connected integervalues

Lib.numbers.int.logic

  • Lib.numbers.int.logic CompareInt -- Compares two integers and gives out the result as a Boolean and / or an Integer
  • Lib.numbers.int.logic CountInt -- A helper operator that counts evaluations as an integer.
  • Lib.numbers.int.logic HasIntChanged -- Checks if the change of the incoming integer exceeded the given threshold.
  • Lib.numbers.int.logic IsIntEven -- Checks whether the incoming or defined Integer is Odd or Even and gives out a bool accordingly
  • Lib.numbers.int.logic PickInt -- Picks a value from the connected Int inputs.

Lib.numbers.int.process

  • Lib.numbers.int.process ClampInt -- Bounds the defined or incoming integer to the predefined upper and lower limit
  • Lib.numbers.int.process 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.numbers.int.process GetAPrime -- Computes a prime number
  • Lib.numbers.int.process IntsToBuffer -- Combines / converts any connected integer into a buffer
  • Lib.numbers.int.process MaxInt -- Outputs the maximum integer of the connected inputs.
  • Lib.numbers.int.process MinInt -- Outputs the minimum integer of the connected inputs.
  • Lib.numbers.int.process TryParseInt -- Tries to parse a string to an integer, if failing, the default value is used instead.

Lib.numbers.int2.basic

  • Lib.numbers.int2.basic AddInt2 -- Adds two int2

Lib.numbers.int2.process

  • Lib.numbers.int2.process Int2Components -- Converts an int2 to 4 single integers
  • Lib.numbers.int2.process MakeResolution -- Creates and int2 from two single ints
  • Lib.numbers.int2.process MaxInt2 -- Returns the larger of two integer values (also as an int2)
  • Lib.numbers.int2.process ScaleResolution -- Non-Uniformly scales / multiplies an int2 which is used for defining resolutions
  • Lib.numbers.int2.process ScaleSize -- Uniformly scales / multiplies an int2 which is used for defining resolutions

Lib.numbers.vec2

  • Lib.numbers.vec2 AddVec2 -- Adds two Vec2 variables together
  • Lib.numbers.vec2 DampVec2 -- Smooths the incoming Vector2.
  • Lib.numbers.vec2 GridPosition -- Converts an index to a grid raster position and sizes that can be used to draw a [Layer2d].
  • Lib.numbers.vec2 HasVec2Changed -- Checks if the change of the incoming vector exceeded the given threshold.
  • Lib.numbers.vec2 Int2ToVector2 -- Converts an [Int2] into a [Vector2]
  • Lib.numbers.vec2 PerlinNoise2 -- Generates a continuously and randomly changing value in the predefined range based on Perlin Noise / Gradient Noise.
  • Lib.numbers.vec2 PickVector2 -- Selects one Vector2 of many, like a switch.
  • Lib.numbers.vec2 RemapVec2 -- Remaps in incoming Vec2 from one value range to another. This can be useful for conforming vectors to a range for inverting components.
  • Lib.numbers.vec2 ScaleVector2 -- Multiplies two incoming [Vector2]'s with each other
  • Lib.numbers.vec2 Vec2ToVec3 -- Converts a vec2 and a single to a vec3
  • Lib.numbers.vec2 Vector2Components -- Converts a Vector2 into two individual values

Lib.numbers.vec2.process

  • Lib.numbers.vec2.process EaseVec2 -- [Ease] [SpringVec2] [DampVec2]
  • Lib.numbers.vec2.process SpringVec2 -- This is the vector 2 version of [Spring]

Lib.numbers.vec3

  • Lib.numbers.vec3 AddVec3 -- Adds two Vec3 variables together
  • Lib.numbers.vec3 BlendVector3 -- Blends (lerps) two vectors.
  • Lib.numbers.vec3 DampVec3 -- Damps (i.e. smoothens or filters) an incoming float value.
  • Lib.numbers.vec3 EulerToAxisAngle -- Converts 3 Euler angles (heading, pitch, yaw) into an axis and angle representation.
  • Lib.numbers.vec3 HasVec3Changed -- Checks if the change of the incoming vector exceeded the given threshold.
  • Lib.numbers.vec3 LerpVec3 -- Blends between two values (Lerp).
  • Lib.numbers.vec3 Magnitude -- Returns the length of a Vector3.
  • Lib.numbers.vec3 NormalizeVector3 -- Normalizes a Vec3
  • Lib.numbers.vec3 PerlinNoise3 -- Generates a continuously and randomly changing value in the predefined range based on Perlin Noise / Gradient Noise.
  • Lib.numbers.vec3 PickVector3 -- Selects one Vector3 from many, like a switch.
  • Lib.numbers.vec3 RotateVector3 -- Rotates a vector around an axis.
  • Lib.numbers.vec3 RoundVec3 -- Rounds the incoming Vec3 value by the given precision and method. This can be useful for snapping positions onto a grid.
  • Lib.numbers.vec3 ScaleVector3 -- Defines a value that is multiplied onto the incoming Vec3
  • Lib.numbers.vec3 SubVec3 -- Subtracts two vectors
  • Lib.numbers.vec3 Vec3Distance -- Computes the distance between two vectors. (I.e. substract two positions)
  • Lib.numbers.vec3 Vector3Components -- Converts a Vector3 into three individual values
  • Lib.numbers.vec3 Vector3Gizmo -- Creates a 3D Gizmo in the Output View (if gizmos are toggled on) and sends out the position data as a [Vector3].

Lib.numbers.vec3.process

  • Lib.numbers.vec3.process EaseVec3 -- [Ease] [SpringVec3] [DampVec3]
  • Lib.numbers.vec3.process SpringVec3 -- This is the vector 3 version of [Spring]

Lib.numbers.vec4

  • Lib.numbers.vec4 PickColor -- Selects and switches between any of the connected colors
  • Lib.numbers.vec4 RgbaToColor -- Creates a Color from 4 values (RGBA)
  • Lib.numbers.vec4 Vector4Components -- Converts a Vector4 (or RGBA Color) into three individual values.

Lib.particle.force

  • Lib.particle.force FieldVolumeForce -- Allows the use of a signed distance field as a force to manipulate a particle system.

Lib.point.combine

  • Lib.point.combine BlendPoints -- Creates different transitions between two different point setups
  • 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.combine SplinePoints -- Samples the incoming points into a set of spline points.

Lib.point.draw

  • Lib.point.draw ChunkInstancingExample -- Prepare draw mesh chunks at points
  • 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 -- Draws a point buffer as ribbons. The lines will distance to the camera. You can override this with the ScaleWithDistance parameter.
  • 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 BoundingBoxPoints -- Generates the bounding box containing the points used as input / Indices : Center - 0, Min - 1, Max - 8.
  • Lib.point.generate CommonPointSets -- Provides a set of useful point lists that can be used to draw shapes or lines.
  • Lib.point.generate DoyleSpiralPoints2 -- Generate a set of points that with decreasing to sizes that can be used to draw a Doyle spiral:
  • Lib.point.generate GridPoints -- Creates a buffer of GPU points distributed on a rectangular or hexagonal grid.
  • Lib.point.generate HexGridPoints -- Creates a buffer of GPU points distributed on a hexagonal grid.
  • Lib.point.generate LinePoints -- Define points from a source position to a direction.
  • Lib.point.generate MeshVerticesToPoints -- Creates a point at each vertex of the connected mesh.
  • 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 -- Same as [PointTrail] with added internal features for [DrawBillboards]
  • 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 -- Generates a sphere with evenly distributed points on its surface.
  • Lib.point.generate SubdivideLinePoints -- Inserts additional points between line points.

Lib.point.helper

  • 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.io

  • Lib.point.io LineTextPoints -- Loads a single line SVG-font generates a point buffer for a text. This can then be rendered as lines, particle effects or mesh.
  • Lib.point.io 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.point.io PrepareSvgLineTransition -- This will iterate over the length of all line segments and compute offsets into W.

Lib.point.modify

  • Lib.point.modify AddNoise -- Creates a new buffer by resampling the connected points. This can be useful for increasing resolution or smoothing out hard edges.
  • Lib.point.modify AttributesFromImageChannels -- Some test.
  • Lib.point.modify ClearSomePoints -- Override a fraction of points with seperators to insert gaps into lines.
  • Lib.point.modify CustomPointShader -- A very fast method of writing simple compute shaders to manipulate the connected points.
  • Lib.point.modify FilterPoints -- Selects (i.e., picks) points based on the given criteria.
  • Lib.point.modify LinearSamplePointAttributes -- A variation of [SamplePointAttributes] that uses the point index instead of texture mapping.
  • Lib.point.modify MapPointAttributes -- Sets the points attribute and color from input attributes. This can be very powerful to remap point attributes.
  • Lib.point.modify PointAttributeFromNoise -- Changes point attributes with a built in noise function.
  • Lib.point.modify RandomizePoints -- Smoothly randomizes various point attributes. It's an extremely versatile operator that provides a various options of applying the random modifications and can be smoothly animated.
  • Lib.point.modify ResampleLinePoints --
  • Lib.point.modify SamplePointAttributes_v1 -- Samples point attributes from the RGB channels of the connected operator.
  • Lib.point.modify SamplePointColorAttributes -- Use a texture to color the points. Same as [SamplePointAttributes] but for colors only
  • Lib.point.modify SamplePointsByCameraDistance -- Changes the W value / F value of existing points based on their distance to the active camera.
  • Lib.point.modify SelectPoints -- Simulates a selection of points by setting the W attribute.
  • Lib.point.modify SelectPointsWithField -- Allows to select and add values to points in 3D space via SDF Objects / Fields.
  • Lib.point.modify SetAttributesWithPointFields -- Sets various attributes points from the distance of a 2nd (small) set of points.
  • Lib.point.modify SetPointAttributes -- Sets various attributes of points
  • Lib.point.modify TransformWithImage -- Allows to modify various point attributes from an image.

Lib.point.particle

  • Lib.point.particle ParticleSystem -- Emits particles on emit points and applies the connected forces.

Lib.point.particle.force

  • Lib.point.particle.force 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.particle.force CollisionForce -- 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.particle.force DirectionalForce -- Generates a force acting on particles in a defined direction in space.
  • Lib.point.particle.force FieldDistanceForce -- Tries to keep particles within an SDF distance range.
  • Lib.point.particle.force FollowMeshSurfaceForce -- Contains particles close the a surface of a simple(!) mesh geometry.
  • Lib.point.particle.force ReconstructiveForce -- Blends the simulation particle points toward the original matching emit points.
  • Lib.point.particle.force SnapToAnglesForce -- Slowly align particle velocity with repeated angles steps on the xy-plane.
  • Lib.point.particle.force SwitchParticleForce -- Switches between connected forces for the ParticleSystem. Can be used to switch between forces.
  • Lib.point.particle.force TextureMapForce -- Accelerate particles from a signed normal map. The map is stretched to the camera clip space.
  • Lib.point.particle.force TurbulenceForce -- Adds a turbulence force to a Particle Simulation.
  • Lib.point.particle.force VerletRibbonForce -- A experimental ribbon force simulation.
  • Lib.point.particle.force VolumeForce -- Repels particles from primitive volumes.

Lib.point.sim

  • Lib.point.sim PointSimulation -- Creates a simulation buffer for applying simulation-like force fields, curl noise, or flocking simulation.
  • 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 -- Linearly offsets the incoming points along the defines axis.
  • Lib.point.sim SimDisplacePoints2d -- Applies a displacement to the currently point position.
  • Lib.point.sim SimForceOffset -- Creates a gizmo with a spherical force that can be used to affect points
  • 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.transform

  • Lib.point.transform BoundPoints -- Contraints points within a boundary volume
  • Lib.point.transform FindClosestPointsOnMesh -- Combines points and a mesh and finds the nearest neighbors between points and mesh.
  • Lib.point.transform MovePointsToCurveSpace -- An advanced op that transforms points into a curved space defined by another set of points.
  • 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 SnapPointsToGrid -- Rounds (floors) the position of points onto a grid, i.e., snaps them to the position of a grid.
  • 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 WrapPointPosition -- Can be used to wrap positions around a cubic volume, e.g., around the current camera position.
  • Lib.point.transform WrapPoints -- Wraps points within a boundary volume.

Lib.render.analyze

  • Lib.render.analyze GetScreenPos -- Returns the given position in screen space coordinates.
  • Lib.render.analyze GpuMeasure -- Measures the time in milliseconds that the GPU (graphics card) needs to render the current image.

Lib.render.basic

  • Lib.render.basic DrawScreenQuad -- Renders a rectangle that is locked to the cameraview and automatically adjusts to the right image aspect ratio.
  • Lib.render.basic DustParticles -- Creates a volume around the camera in which points that behave like dust or snow are spawned and repeated / wrapped infinitely.
  • Lib.render.basic FadingSlideShow -- Blends smoothly between image files read from a directory.
  • Lib.render.basic Layer2d -- Creates a 2D plane in 3D space onto which the incoming image is rendered.
  • Lib.render.basic ShadowPlane -- Creates a Plane that is transparent except for a realtime rendered Shadowmap.
  • Lib.render.basic Text -- Creates flat 2D Text as an Object in 3D Space from bitmap fonts.
  • Lib.render.basic TextOutlines2 -- Creates outlined text to use in combination with [Text]

Lib.render.camera

  • Lib.render.camera BlendCameras -- Smoothly blends between multiple cameras by using a floating point index.
  • Lib.render.camera Camera -- Sets the camera for the subgraph.
  • Lib.render.camera CameraWithRotation -- An alternative camera operator
  • Lib.render.camera CamPosition -- Returns the current camera properties. This can be very useful for positioning or emitting things in front of the camera.
  • Lib.render.camera CurrentCamMatrices -- Returns various matrices of the current context camera.
  • Lib.render.camera OrbitCamera -- Provides common camera movement utilities for an easy dynamic camera setup.
  • Lib.render.camera OrthographicCamera -- Set an orthographic project matrix for the operators following further down (I.e. to the left).
  • Lib.render.camera ReuseCamera -- Set the projection matrix to the properties provided by another camera.
  • Lib.render.camera ShiftCamera -- Shifts the clip space of the current context projection matrix.

Lib.render.gizmo

  • Lib.render.gizmo DrawBoxGizmo -- Creates a 3D wireframe cube that can be used as a bounding box
  • Lib.render.gizmo DrawCamGizmos -- An attempt to draw camera gizmos.
  • Lib.render.gizmo DrawLineGrid -- Renders a grid of lines in the given scaling.
  • Lib.render.gizmo DrawSphereGizmo -- Creates a 3D wireframe globe that can be used as a bounding box
  • Lib.render.gizmo GridPlane -- A helper gizmo that can uses a fragment shader to draw smooth grid lines.
  • Lib.render.gizmo Locator -- Can be used to add a visible transform gizmo and its position in a scene (only visible if 'Toggle Gizmos and Floor Grid' are enabled in the Output window).
  • Lib.render.gizmo PlotValueCurve -- Plots a history curve of a value.
  • Lib.render.gizmo VisibleGizmos -- Only executes the subgraph if the set visibility matches the visibility of the evaluation context.

Lib.render.postfx

  • Lib.render.postfx DepthOfField -- Adds a depth of field effect.
  • Lib.render.postfx GodRays -- Uses the z-buffer to draw god rays.
  • Lib.render.postfx MotionBlur -- Applies a post processing motion blur to a RenderTarget texture and its DepthBuffer.
  • Lib.render.postfx SSAO -- Adds a Screen Space Ambient Occlusion (SSAO) effect to a 3D rendered scene.

Lib.render.scene

  • Lib.render.scene DrawScene -- Draw the connected SceneSetup.
  • Lib.render.scene LoadGltfScene -- Experimental op for loading complex scene setups using the glTF Format. Scenes have to be connected to a [DrawScene]-Op to be rendered.

Lib.render.shading

  • Lib.render.shading DefineMaterials -- Defines Materials for later use when drawing content or scenes.
  • Lib.render.shading Equirectangle -- Renders the input scene as an image with depth with equirectangular mapping (for 360/VR/fuldome video)
  • Lib.render.shading GetPointLightOccclusion -- Returns a float list with the visibility of the current point lights.
  • Lib.render.shading IntToWrapmode -- Picks a wrap mode with an index.
  • Lib.render.shading LenseFlareSetup -- Pre-made complex light flare setups with various styles.
  • Lib.render.shading LenseFlareSetupAdvanced -- Same as [LenseFlareSetup] but all elements can be tweaked seperately.
  • Lib.render.shading PointLight -- The standard point light with transform gizmo.
  • Lib.render.shading 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.render.shading SetFog -- Adds Fog to the incoming scene.
  • Lib.render.shading SetMaterial -- Sets the Physically Based 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 and / or by connecting a texture input by using a [LoadImage] operator].
  • Lib.render.shading SetPointLight -- Adds a point light into the scene which illuminated geometry using a combination of "Color", "Intensity" and "Decay".
  • Lib.render.shading SetRequestedResolution -- Set the requested resolution (similar to the Resolution drop down of the output windows).
  • Lib.render.shading SetShadow -- Renders a shadow pass for a directional light source.
  • Lib.render.shading TextureToCubeMap -- Converts a 2d texture ([loaded with [LoadImage]) into a cube map that can then be used by [SetEnvironment] for PBR image based lighting.
  • Lib.render.shading UseMaterial -- Applies the connected material definition to the context and it will be used by Draw operators further down (left) in the graph.

Lib.render.sprite

  • Lib.render.sprite DrawPointSprites --
  • Lib.render.sprite DrawPointSpritesShaded --
  • Lib.render.sprite TextSprites -- Creates Points and Sprites from a text that can be animated and then rendered with [DrawPointSprites] or [DrawPointSpritesShaded].

Lib.render.transform

  • Lib.render.transform Group -- Groups a sequence of incoming draw commands.
  • Lib.render.transform RotateAroundAxis -- Applies a rotation to the transform matrix.
  • Lib.render.transform RotateTowards -- Rotates the incoming scene / objects towards a specified target.
  • Lib.render.transform Shear -- Applies a shearing transformation to the transform matrix.
  • Lib.render.transform SliceViewPort -- Modifies the Viewport and projection matrix to help drawing grid cells.
  • Lib.render.transform SpreadLayout -- Spatially distributes the incoming graph elements.
  • Lib.render.transform Transform -- Moves, Scales and Rotates the sub graph.

Lib.render.utils

  • Lib.render.utils ConvertEquirectangle -- Transforms a 360° image that was captured using a mirror ball or a panorama camera via equirectangular mapping so that it can be projected onto a cube without being distorted.
  • Lib.render.utils DrawAsSplitView -- Renders the connected draw commands as vertical ViewRect slices with optional labels.
  • Lib.render.utils RepeatWithMotionBlur -- Repeats the connected subgraph with offset local time.
  • Lib.render.utils RequestedResolution -- Has the function of extracting the resolution from an operator that is initialized later (for example a [Rendertarget]) in order to use it at an earlier point in the node tree.

Lib.string.buffers.convert

  • Lib.string.buffers.convert StringBuilderToString -- Converts the 'Builder' Output of a [StringBuilder] or [BuildRandomString] to a string

Lib.string.buffers.transform

  • Lib.string.buffers.transform StringInsert -- Can replace and move characters to any position within a string

Lib.string.combine

  • Lib.string.combine BlendStrings -- Blends two strings with a scrambling animation similar to a airport flight display board.
  • Lib.string.combine CombineStrings -- Combines any number with strings with the provided optional separator.
  • Lib.string.combine FloatListToString -- Converts a list of float numbers to String
  • Lib.string.combine StringRepeat -- Repeats a string multiple times.

Lib.string.convert

  • Lib.string.convert FloatToString -- Converts a float value into a string.
  • Lib.string.convert IntToString -- Converts an [IntValue] to a string.

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 -- Uses [NowAsDateTime] output to convert it into a string
  • 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 -- Converts [Time] float output and similar to a string

Lib.string.list

  • Lib.string.list JoinStringList -- Joins the members of a string with a separator.
  • Lib.string.list KeepStrings -- Collects the input string to a list.
  • Lib.string.list PickFromStringList -- Can switch between different strings if the 'Fragments' output of a [SplitString] operator is used as an input
  • 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 -- Counts the characters in a string and outputs the amount as a float

Lib.string.logic

  • Lib.string.logic FilePathParts -- Extracts directory, filename and extension from a filepath and checks if filepath exists.
  • Lib.string.logic HasStringChanged -- Returns true if the connected a string attribute has changed.
  • Lib.string.logic PickString -- Picks a string of multiple connected.
  • Lib.string.logic PickStringPart -- Gets a lines, words, or characters from the input string. Good for typewriter effects, etc.

Lib.string.random

  • Lib.string.random AnimRandomString -- Returns a random word per beat.
  • Lib.string.random BuildRandomString -- Produces a wide selection of text writer effects that
  • Lib.string.random MockStrings -- A small selection of strings of different categories.

Lib.string.search

  • Lib.string.search IndexOf -- Searches the original string for a search pattern and outputs the position at which the pattern was found
  • Lib.string.search SearchAndReplace -- Looks for characters or strings within another string and returns a new string with the matches replaced.
  • Lib.string.search SubString -- Returns a subString of the connect string.

Lib.string.transform

  • Lib.string.transform ChangeCase -- Changes a case of string to upper or lower case.
  • Lib.string.transform WrapString -- Wraps a string a column width
⚠️ **GitHub.com Fallback** ⚠️