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 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 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 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.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 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 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.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.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.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 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 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 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 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 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 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.data.utils GetListItemAttribute -- Fetches a float from a list item attribute via Reflection. This is slow.
Lib.numbers.data.utils GetPointDataFromList -- Returns Position, Rotation and W from a point.
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 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.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.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 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 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.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 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 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 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