A whole new operator family lands in this release. SDF operators build shapes as signed distance fields and raymarch them on the GPU, so forms fuse, morph, and repeat without any geometry underneath. Alongside it: a full color correction suite on the Output node, a caching layer that makes an unchanging graph almost free to draw, and roughly a hundred smaller changes across particles, 3D, texture operators, and the node graph.
SDF, a new operator family
Twelve operators build and render signed distance fields. An SDF scene is a chain of fields rather than a mesh, so booleans are exact, blends are smooth at any scale, and infinite repetition costs nothing.
SDF Primitive: 26 shapes. Sphere, Box, Round Box, Torus, Ground Plane, Cylinder, Cone, Capsule, Octahedron, Chain Link, Box Frame, Ellipsoid, Hex Prism, Triangle Prism, Pyramid, Tetrahedron, Solid Angle, Cut Sphere, Rounded Cone, plus Gyroid, Menger Sponge, Mandelbulb, Apollonian, Julia Set, Kali IFS, and an FBM Rock.
SDF 2D Shape and SDF Convert: 13 flat shapes including Text, turned into solids by Extrude, Revolve, Helix Sweep, Cross Section, or Field to Solid.
SDF Combine: Union, Subtract, Intersect, XOR, Morph, Pipe, Engrave, Groove, Tongue. Each runs in Hard, Smooth, Round, Chamfer, Stairs, or Columns. Edge Glow lights the seam where two shapes meet, and Swap Inputs flips A and B without rewiring.
SDF Effector: 26 deformers grouped as Warp, Repeat, Mirror, Shell, and Remap. Twist, Bend, Elongate, Displace, Sine Warp, Mobius Sweep, Linear / Grid / Polar / Mirror / Shell / Helix Repeat, Kaleidoscope, Spiral Zoom, Onion Shell, Shear, Spherize, Quantize, Stretch Scale, Limit Bounds, Slice, and more.
SDF Field: 11 fields that drive displacement and per-cell variation. Noise, Ridged, Worley, Sine, Radial, Stripes, Checker, Ramp, Cell, a Texture Field, and a Particle Field that reads a live particle system as metaballs.
Mesh to SDF: an imported model becomes an SDF operand, so it can be booleaned and blended with procedural shapes.
SDF Material: PBR plus Toon, Matcap, Gooch, and Hologram shading. Iridescence, rim, subsurface, and raymarched reflections. Base Color, Roughness, Metallic, and Normal texture slots, with a Map Anchor that bakes the texture onto the shape so it does not swim when the shape moves.
SDF Light: Ring, Line, Orb, and Beam. Beam throws a real volumetric shaft that scene geometry occludes.
SDF Environment: HDRI lighting, skybox, rotation, intensity, and background brightness, matching the 3D Environment operator.
SDF Camera: orbit and Smooth Fly navigation with WASDQE while dragging, and a fisheye lens reaching 360 degrees.
SDF Render: quality presets, soft shadows, ambient occlusion, distance fog with height falloff, four tone mapping curves, and anti-aliasing by FXAA or 2×2 / 3×3 supersampling. Volume (Cloud) mode marches lit, self-shadowed density instead of a surface. Extra outputs carry Depth, Normal, Object ID, Step Heat, and World Pos.
Polygonize: SDF Render's 3D Mesh output turns the field into real geometry, at grid sizes from 32³ to 128³, updating live or on change. That mesh feeds every 3D operator, so an SDF form can be cloned, extruded, lit, and shadowed like any imported model.
Alt+G toggles the world grid inside the march, the same grid the main viewport draws.
3D and surfaces
Null: wire surfaces into a Null and its transform moves, rotates, and scales all of them at once while each keeps its own offset. Nulls nest, and a bare Null still publishes its frame, so it works as an invisible parent for any Origin Object input.
Mapping gains a Relative anchor. Whole System projections now evaluate from each clone's rest frame, so the texture stays baked to the object under a group transform and under effector displacement.
Merge Faces merges cylinders along both axes and across the UV seam, and handles cones, capsules, and sphere poles.
Extrude Faces gains Noise Extrude. Each piece's cap rides animated noise, computed in the vertex shader with no geometry rebuild.
Area Light splits diffuse and specular into separate toggles with their own amounts.
Material splits specular tint from diffuse color.
Environment gains independent Sun Rotation X, Y, and Z.
Cloners gain a Quantize effector that snaps clone position, rotation, and scale to fixed steps per channel, blended by the field weight.
Editor helpers blend into the live 3D scene instead of compositing 2D nodes behind them, and only draw for systems that actually reach the output. A disconnected 3D base no longer paints its grid over unrelated work.
The Box primitive defaults to a 1×1×1 unit cube.
Particles
Sub-particle systems: a Particle System now has a second output that drops straight into another system's Emitter input, so a child cloud spawns on the parent's particles and then lives its own life. The child has the same output, so a third system chains onto it, and so on.
Trail Renderer: GPU ribbon trails along each particle's simulated path, with thickness, taper, fade, Width Random, and dash patterns.
Quantized Motion effector: circuit-board travel on a 6 direction or 18 direction lattice, with per-particle switching, plane restriction, speed variation, and an Origin Influence that pulls particles toward or away from the effector's own origin.
Point Renderer takes a wired Sprite Sheet. The sheet cell replaces the round dot and keeps shadows, lighting, and color modes. Both flat renderers now share extended sheet controls: Loop, Ping-Pong, Play Once, and Random Cell playback, an animatable Frame Offset, and per-particle Rotation Random.
Sprite and Connection Renderers survive 3D chains, and Trail Renderer works behind Point, Mesh, and Point Geometry renderers.
Retuned Emitter, Point Renderer, and Point Geometry defaults, with a finer step on Point Size.
Generators
Worley: cellular noise with F1, F2, and F2 minus F1 output modes, euclidean, manhattan, and chebyshev metrics, and a jitter control that relaxes feature points off the lattice. In 3D mode, time evolves the cells in place rather than scrolling the field.
Noiserator: one card with a Noise dropdown covering the noise generators, so a patch can switch algorithm without rewiring. Every standalone generator stays in the palette.
Value shaping on every generator that outputs a monochrome field: Exponent, Amplitude, and Offset. The defaults reproduce previous output exactly.
Texture operators
Composite grows from four placement modes to 27 operations. Over, Under, Inside, Outside, Mask Mix, Add, Subtract, Multiply, Divide, Average, Difference, Exclusion, Screen, Overlay, Soft Light, Hard Light, Color Dodge, Color Burn, Linear Burn, Maximum, Minimum, Lighter Color, Darker Color, Hue, Saturation, Color, and Luminosity. Mask Mix chooses between Background and Foreground per pixel from the mask, white for Foreground and black for Background. On every other operation the mask gates the foreground's alpha, so a black mask lets the background through untouched.
Quantize: independent value and position stages, each with Round, Floor, or Ceiling, a step, and an offset so the grid can start off zero. Position step is per axis, so blocks need not be square.
Lookup applies its LUT. It reads .cube files and 2D LUT images, with a Flip Y toggle and a strength control.
Threshold outputs a true binary mask, and gains a Between comparator that passes a band of luminance. Author it as Min and Max, or as Width and Position where the position wraps around the luminance range. An Invert toggle covers the inverse of any comparator.
Ramp replaces Colour A and Colour B with the multi-stop gradient editor, and gains a Scale control. Radial and angular ramps now correct for the render aspect, so a radial ramp is round on a 16:9 target instead of a stretched ellipse. Note that a saved Ramp with custom A and B colors reopens as black to white and needs its gradient set again.
Transform gains a Hold edge-extend mode, and its rotation slider is zero centered.
Image and video operators gain six fit modes: Fill, Fit Horizontal, Fit Vertical, Fit Best, Fit Outside, and Native. Fill previously behaved identically to Fit Best.
Post effects
Pixel Sort: Reorder and Streak modes. Streak length reaches 4096 pixels, enough to cross a 4K frame. Split mirrors the travel direction across the centre line so both halves run opposite ways. Adds Pixel Size and a band mask. Streak polarity is corrected, so bright pixels seed the tails and each tail carries its own color instead of a white wash.
Time Warp: a mask's luminance decides how far back in the frame history each pixel samples, so parts of one image run at different points in time. Offsets are set in frames, seconds, index, or fraction.
RGB Delay: per-channel frame delay. Ghost mode adds trailing color only, so a red delay shows a red trail. Split mode replaces channels outright for classic fringing.
Bloom gains an Advanced Controls toggle. It switches to an iterative blur pyramid with Iterations, Blur Size, Gamma, Contrast, Bloom and Glow Levels, Glow Color, Input Level, Pre-Shrink, and Temporal Smooth. The default mode is untouched, so existing patches render identically.
Gradient Colorizer takes a Texture input as its ramp, with a Sample Row control. Texture Colorizer is retired, and any patch using it opens with a Gradient Colorizer carrying the same settings.
Color and output
A color correction suite now sits on the Output node, with every group collapsed so it stays out of the way until you want it. Basic Correction covers tone mapping, white balance, temperature, tint, exposure, contrast, brightness, gamma, highlights, and shadows. Creative covers sharpen, vibrance, saturation, and hue. There are also Curves, per-channel Red / Green / Blue gain, and a Lookup group taking .cube files or LUT images with a strength control.
The Output node's 3D controls are grouped and collapsed.
Master Opacity and Master Speed accept MIDI and audio-reactive control, and now apply correctly to the master output.
Modifiers and animation
Edit a bound parameter's base value without unbinding the modifier. A driven row is tinted in the modifier color; hover the track and the control swaps to your own base value, and edits there land on the base while the modifier keeps driving the output.
Each binding chooses Add or Replace, so one modifier can add to one parameter and replace another.
Lag modifier: lag and overshoot with rising and falling tuned separately, slope and acceleration ceilings, snap, and reset. Lag is a real time constant, so the same setting behaves the same at 30, 60, and 144fps.
LFO gains a Gaussian waveform, now the default, and an optional Phase input that replaces its time clock.
Cyclic parameters wrap under a driver instead of sticking at the end of their range.
Speed sliders are logarithmic. A control ranging 0 to 5 with a default of 1 now shows that default in the middle of the track.
Every symmetric rotation slider is zero centered, so the negative half is reachable by dragging rather than only by Alt-drag.
Node graph
Tab place and chain: Tab places the highlighted operator, connects it to the last one placed, and reopens the palette to the right with an empty query, so typing the next name and pressing Tab keeps building a row. Shift+Tab places below and unconnected, for a parallel branch.
Operator search sorts results by family priority, and a label match now outranks an alias match.
Multi-select fan out connects several selected nodes to one target in a single drag.
Dropping a wire on empty canvas filters the picker to operators that can actually accept it.
Ladder scrub on the value box. Press and drag: vertical position picks a decade, horizontal motion spends it, up to ×1000 and down to ×0.0001. A press that never travels still opens the type editor, so clicking is unchanged.
Every Composite operation is spawnable by name from node search.
Nodes opened with Tab or pasted with Ctrl+V land at the cursor rather than one palette width to the right.
Tab walks between value boxes again, and the ladder fade runs out to zero.
Base nodes carry inline previews like every other node, showing a freeze frame of the last rendered frame when previews are off. Graph drawing is faster with a high node count.
The add-operator popup opens at the node's upper-left corner.
Performance
Post FX and texture operators now use the same result caching that 3D and image nodes already had. When an operator's parameters and input are unchanged, redrawing it costs almost nothing, and a static scene renders essentially for free.
Fixes aimed at Firefox performance.
Patches and sharing
View-only patches: share a patch without revealing how it was built. Exposed parameters still work live, so the patch can be performed, while the graph stays private.
Saving a creation uploads a standalone image of the patch alongside the patch file itself, and the banner image is larger.
Saved patches no longer bake a modifier's instantaneous output into the parameter. One measured patch had accumulated a camera yaw of about 57,000 degrees across repeated save and load cycles.
Retired node types now map onto their replacements, so an older patch opens carrying the settings its author chose.
An About window shows version and copyright.
Fixes
The webcam turns on, and keeps retrying on a backoff ladder until it does. A stream that dies is detected and restarted.
OBJ files exported with loose edges no longer load as an empty model. This one silently broke every mesh consumer, including surface meshes, mesh emitters, and Mesh Attract.
Blend nodes composite 3D scenes correctly.
Point Renderer sprites render unlit.
Wiring an Origin Object parents the node, and Material slots accept material operators only.
Material and Mapping operators auto-wire to their own slot instead of the first free one.
Shift and hold only adds to a selection; shift and click still toggles.
Shift+Tab clears the placed node's real height rather than a fixed drop.
Alt+G survives form focus and ignores key repeat.
Snippet thumbnails are a true center crop of the viewport, and snippet deletion uses the app's own confirmation dialog.
Environment Rotation X, Y, and Z are reunited in one group.
Math operators that never did anything, the constants and remaps, are hidden from the palette.
Programmatic connections can wire a hub's Nth role slot, and report failure when they cannot.
30 step and default corrections from the submitted parameter audit, applied at the shared definition sites so every operator that spreads them picks up the change.