Changelog

What's new

Every release of R3NE, in reverse chronological order. Auto-update ships these to the desktop app via Sparkle.

0.5.0

June 8, 2026

0.5 - Splats, point clouds and signals. Gaussian splatting lands, depth becomes 3D, and the Sine Wave grows up into an LFO.

Added
  • Gaussian Splatting (.ply / 3DGS). Load a real splat cloud with full SH degree-3 view-dependent colour, GPU-sorted every frame, auto-framed on load. Two rasterizers to choose from: the capped tile rasterizer (fast) and a global-sort one (no per-tile cap). Relight the splats with the scene lights (diffuse plus specular), and crop the cloud by wiring a cube or sphere into the clip port. A Splat Quality dial trades resolution for FPS.
  • Point-cloud view for splats - see the cloud as flat coloured dots instead of gaussians, with adjustable point size and a density dial to thin it out.
  • Depth Point Cloud node (3D) - feed it a colour texture plus a depth map and it builds a real 3D point cloud (depth-displaced, tinted by the colour), orbitable in the scene and depth-tested against your geometry.
  • Depth Key node (Video) - mask a video by an EXTERNAL depth map: isolate a depth band (near/far, target/width/falloff) and output a masked, cutout, or grayscale result. Drive one clip's mask from another clip's depth.
  • Depth Glitch node (Post-FX) - a stylistic block-tear effect with black edges and background bleed, for faking the look of broken depth.
  • LFO node (the renamed, grown-up Sine Wave). 10 shapes - Sine, Square, Triangle, Sawtooth, Pulse plus White, Sample and Hold, Smooth, Fractal and Brown noise - with seed and slew/smoothing for the noise types, and a live scope in the inspector that traces the real output value.
  • Custom shaders now have an editable Output Resolution (presets plus custom width x height) in the inspector.
  • Preview viewport zoom: a Fit / slider / 100% control with scroll bars, plus Cmd-scroll to zoom.
Changed
  • The Node Library is reorganized into collapsible groups: 3D (Scene / Geometry / Lights / Camera / Material / Modifiers / Effects), Post-FX (Blur and Sharpen / Color / Stylize / Distort / Glitch / Light / Key and Composite), Modifiers (Signal / Value / Audio) and Generators (Noise / Pattern). Vision and Vector nodes are now reachable from the library too.
  • Fullscreen output (F9) is now truly edge-to-edge with square corners, and you can drive the 3D camera (orbit / pan / dolly) directly in fullscreen. Frame the output with Cmd-scroll zoom, arrow-key pan, A to cycle Fit / Fill / 1:1, R to rotate 180 degrees, H/V to flip, M to mirror the preview's zoom, 0 to reset.
Fixed
  • Integer parameters now round-trip through save / load. Custom shader resolution, star sides, fractal octaves, voronoi points, Text 3D segments and others were silently resetting to defaults on reopen.
  • Changing a node's output resolution no longer crashes the feedback nodes (Frame Buffer, Temporal Filter, Frame Delay) - their internal textures now resize in step with the input.
  • Global-sort splats: fixed coarse depth keys that caused a blocky depth glitch; the cap rasterizer's per-tile limit was raised so dense clouds drop fewer splats.

0.4.3

June 3, 2026

0.4.3D, a kind of Unreal update. We focused on making 3D better.

Added
  • Local / Global gizmo space. A toolbar toggle (or the X key) flips the move / rotate / scale handles between world axes and the object's own axes, so you can nudge a rotated object along its own forward or up.
  • Fly the viewport camera with WASD / QE, and tune the fly speed with the scroll wheel. F frames the selected object and widens the camera's near / far clip planes so large objects aren't sliced by the frustum.
  • Keyframe object transforms straight from the timeline. With REC on, dragging a gizmo or flying the camera drops keyframes automatically.
  • HDRI / Environment node drives image-based lighting, and can show as the scene background.
  • Wireframe display with an adjustable line width, plus a textures-off toggle, in the Scene3D inspector.
  • Audio Input can capture specific input channels (multichannel).
  • Timeline rubber-band marquee selects keyframes across channels in any direction, and Delete removes the selection. Unified undo now covers inspector fields, timeline keyframes, gizmo moves, and camera navigation.
Changed
  • 3D scenes render with a transparent background by default, so the layer composites over any 2D source beneath it.
  • Redesigned move gizmo with cone arrowheads and slimmer, shorter handles. Cameras and lights now draw shape-distinct editor icons (a camera body with a lens, a light bulb), and gizmos hide during playback.
  • Numeric inspector fields are directly typeable.
Fixed
  • HDRI environment no longer flickers back to the procedural sky.
  • Scene3D reconnects correctly after a node is deleted, camera ports target reliably, and an empty scene clears to transparent instead of magenta.
  • Keyframed transforms no longer fight manual control when the playhead is parked.
  • Fullscreen output hides the menubar fully so it covers the whole screen.

0.4.2

June 2, 2026

Blob Tracker , track moving or bright blobs with bounding boxes

Added
  • Blob Tracker node (Vision), built for EDUMEX , tracks moving (frame-diff) or bright (luma) blobs in any texture and draws a bounding box around each one, with optional connecting lines (mesh / nearest / chain) and centroid dots. Persistent per-blob IDs, adjustable threshold / size filters / detection rate, and blobCount + blob1X/Y/Size outputs. Runs fully async (GPU downscale plus a non-blocking readback) so it never stalls the render.
  • "4. Blob Tracker" example project (File → New from Example) , Plasma → Blob Tracker → composite, showing the boxes drawn over the source.
Fixed
  • Inspector sliders now use sensible ranges. Frame Feedback (decay / zoom / rotation) and other nodes whose parameters fell back to a guessed range , which could pin the slider at its edge and feel unadjustable , now seed their range from the timeline's parameter registry.

0.4.1

June 1, 2026

Drag any value onto an inspector field, audio-reactive transforms

Added
  • Parameter links, drag the link dot next to any numeric inspector field onto a node's output to drive that value from it. Wire a Sound Modifier to Position / Rotation / Scale (or any float param) so audio, LFOs, or any scalar animate the transform.
  • A ghost line follows the cursor while dragging a link, and compatible outputs highlight green.
  • Linked parameters show a green cable on the canvas plus a synthetic input row on the target node, so the routing reads like a normal connection.
  • Click a linked dot to open a scale / offset editor (value = source × scale + offset) with an Unlink button.
Changed
  • Parameter links are sampled every frame after evaluation, so they drive both 3D transforms and 2D / PostFX float params live, and are saved with the project.

0.4.0

May 29, 2026

Live audio input, OSC remote control, real extruded Text 3D, viewport picking, scene hierarchy, and a faster engine

Added
  • Audio Input node, live Core Audio capture with device picker, gain, dBFS level meter, and optional system passthrough; analyzers (Audio Bands, Beat Sync) now read from any audio source upstream.
  • Remote Parameters panel (Cmd+Shift+P) listing every animatable port with its OSC / MIDI / MCP address, so external controllers can drive the graph over OSC.
  • Real extruded Text 3D geometry, CoreText glyph outlines triangulated into front/back caps and side walls (winding-agnostic, so CFF and TrueType fonts both render), replacing the old alpha-mask quad. Includes a font picker popover with live preview.
  • Straight-skeleton Text 3D bevels, large, self-intersecting bevels that meet in the center on curved typography, with a custom bevel profile curve editor (draggable Catmull-Rom spline) alongside Chamfer / Round / Concave / Step presets and a Classic / Skeleton mode toggle.
  • 3D viewport picking, click a mesh, camera, or light in the composition to select it (cameras and lights get a synthetic pick volume tied to their marker).
  • Scene Hierarchy panel above the inspector, groups every 3D node by family with eye-toggle visibility and click-to-select.
  • Multi-select and group transforms, Shift / Cmd click in the viewport or hierarchy; the gizmo applies one world delta to the whole selection.
  • Floating gizmo toolbar on the viewport (translate / rotate / scale) with 1 / 2 / 3 shortcuts.
  • Bug reporter (Help → Report a Bug…) with auto-attached diagnostics, plus Help-menu links to Releases and Documentation.
  • Timeline export to H.264 and ProRes with quality presets.
  • Library tabs (Nodes / Media) in the left sidebar.
Changed
  • Skeleton is now the default Text 3D bevel mode; the inspector is reorganized into Geometry / Bevel shape / Tessellation groups with the profile picker on its own full-width row.
  • Default workspace split is 50/50 between the composition viewport and the node graph, and the node graph auto-fits all nodes when a project opens.
  • Shader code editor rewritten with a custom scroll / line-number container so MSL source renders reliably inside R3NE's layer-backed window.
  • Composition viewport is drag-resizable; the right inspector was widened so long sliders fit their value labels.
  • Sidebar panels no longer draw under the window titlebar, and the window title / status bar now show the real app version.
Fixed
  • Timeline keyframes now drive the input ports the renderer actually reads, animating blur radius, generator, and most PostFX parameters was previously frozen.
  • Fullscreen output on a secondary monitor now reliably puts pixels on screen (standard window path + pull-mode rendering that survives capture boxes / converters).
  • Glyphs with holes (O, B, P, R, A) now triangulate completely, fixed an ear-clipping stall on bridge-merge duplicate vertices.
  • Round and Concave bevel profiles were inverted; high-quality bevels no longer produce holes or corner spikes.
  • Text 3D (depth, bevel, profile, segments, custom curve) and Audio Input settings are now persisted on save.
Performance
  • Separable two-pass Gaussian blur (≈16× fewer samples).
  • Cached downstream adjacency and O(n) topological evaluation for dirty propagation; O(inputs) port propagation.
  • Per-frame scratch-buffer reuse in the Scene3D render path and a value-type Text 3D mesh key (no per-frame string allocation).
  • Autosave JSON encode + write moved off the main thread; PersonSegmentation per-pixel diagnostics gated behind debug builds.

0.3.5

May 17, 2026

3D gizmos, vector graphics, pose / audio tracking, scene snapshots, OSC

Added
  • 3D translate / rotate / scale gizmos in the viewport, colored axis bars with arrow caps, rotation rings, scale handles, hover highlight, shift-snapping (0.1 unit / 15° / 0.1 factor), and 1/2/3 mode shortcuts plus a floating toolbar.
  • Vector graphics pipeline, import SVG, modify with effectors (trim, repeat, distort), render flat or extruded to 3D meshes.
  • Pose Tracking node, Vision body keypoints with smoothed interpolation between detections.
  • Audio Bands + Beat Sync nodes, FFT-based multi-band amplitude plus tempo/beat triggers.
  • Scene Snapshots, 128-slot grid panel for storing and recalling full graph states.
  • OSC input, incoming OSC messages map to any animatable port over UDP.
  • Three Get Started example projects covering common patterns.
  • Scene3D transparent background, alpha-aware sky branch so 3D layers composite cleanly over the 2D pipeline.
Changed
  • Scene3D inputs are now dynamic like Root, one empty slot per family always available, trimmed on disconnect, capped at 32 / 16 / 16.
  • Scene3D node body collapses input rows to just colored dots (no labels) so the canvas stays readable as inputs grow.
  • Composition viewport is now drag-resizable from the splitter.
  • Gizmo overlay honors the letterboxed scene rectangle so handles align with the rendered texture at any window aspect.
  • Face Detection now streams the source video unchanged and renders boxes / mask as a separate overlay, full frame rate on live cameras.
Fixed
  • MaterialData.default no longer flagged with an unnecessary nonisolated(unsafe) attribute.
  • Custom shader filters can now receive multiple texture inputs.
  • Several save-persistence gaps (Tile, Tint, Plasma scale/complexity, gradient colors) closed by routing all writes through universal port defaults.

0.3.1

May 2, 2026

Auto-update fix, color picker overhaul, save reliability

Fixed
  • Sparkle auto-update never offered new versions because every build shipped with the same CFBundleVersion. Bumped build number tracking and the appcast now uses proper integer sparkle:version.
  • Color picker now updates continuously while the panel is open, replaced the SwiftUI ColorPicker / NSColorWell stack with a Button + KVO bridge to NSColorPanel.
  • Several node parameters (Plasma scale/complexity, Gradient colors, etc.) were not persisted on save, encoder now universally captures port defaults and decoder restores them.
  • Stale connection layer left drawn after replacing a connection on an occupied input.
  • Could not connect/reconnect to Root after disconnecting one of multiple inputs.
Added
  • Drag-and-drop from Finder onto the canvas, auto-detects image / video / sound by extension and spawns the appropriate node.
  • Drag-and-drop from the Media Library to the canvas.
  • Sound type in Media Library, with auto-registration from SoundLoader nodes.
Changed
  • Root node redesigned again: smaller (96×96) flat black square with magnet-style connection points centered on each side.
  • Nodes with parameters as ports (DepthEstimation et al.) now respect uiMin/uiMax/uiPrecision hints for crisp slider ranges.
  • Connection layer cleanup runs only when the graph structure changes, no more wasted sweeps during pan/zoom.

0.3.0

April 30, 2026

Real-time depth, unified inspector, and a faster canvas

Added
  • Depth Estimation node, DepthAnything V2 (CoreML) running async in the background, with animatable params (near, far, smoothing, invert, isolate band).
  • Drag-and-drop from the Node Library directly onto the canvas.
  • Universal copy / paste / cut for every node type (Cmd+C, Cmd+X, Cmd+V), round-trips through the project serializer so nothing is left behind.
  • Liquid Glass splash screen with the R3NE wordmark.
  • Inspector-side checkbox rendering for boolean ports.
  • Per-port UI hints (range, precision) so auto-generated sliders match the param's intent.
Changed
  • Inspector panels unified, numeric params now live in a single Inputs section instead of being duplicated above and below.
  • Root node redesigned as a flat black square with the R glyph in #e5e7eb.
  • Node placement cascades diagonally so freshly-created nodes don't pile up on top of each other.
  • Transport bar widened so the frame counter no longer clips on long compositions.
Fixed
  • Color picker stopped applying changes after the first edit while the panel was open.
  • Tint node lost its color on save.
  • Topological sort and PostFX attachment graph now cache and invalidate on structure change, significant CPU savings on large graphs.
  • Removed waitUntilCompleted GPU stalls (saves 2–5 ms per frame).

0.2.0

March 24, 2026

Auto-update, distribution

Added
  • MCP server bundled as the r3ne plugin.
  • Documentation site at r3ne.app/docs.

0.1.0

February 18, 2026

Public beta seed

Added
  • Initial node graph engine with 2D, generators, post-FX, shading, modifiers, sound, video, and a 3D scene with PBR.
  • Live shader authoring in MSL with @input annotations.
  • Timeline with keyframes, MIDI mapping, and headless export.
  • FFGL plugin for Resolume Arena and a TouchDesigner TOP plugin.