Skip to content

Node Graph Basics

ArcBrush uses a node graph to represent image processing workflows. Instead of applying effects destructively to a single image, you wire together nodes that describe your entire pipeline.

A typical ArcBrush graph: two image sources flow through processing nodes, combine in a Transform node, and finish through Curves into Export Image.
Screenshot of the ArcBrush node canvas: an Image In node loading a blue abstract painting connects through a Drop Shadow node into a Transform node's image input, while a second Image In node loading a bedroom photo connects through a Crop node into the Transform node's background input. The Transform node's output flows into a Curves node and then an Export Image node. Each node shows a thumbnail of its result, its output dimensions, and its evaluation time, connected by curved orange wires with labeled input and output pins.

A node graph is a visual programming environment where:

  • Each node represents a single operation (load image, blur, color adjust, export).
  • Wires connect node outputs to inputs, defining data flow.
  • The graph evaluates automatically when any parameter changes.
  • Nothing is destructive. Every parameter stays editable forever.

There are several ways to add nodes to the canvas:

  • Right-click the canvas to open the Add Node menu. A search field at the top lets you filter by name, so just start typing.
  • Press Tab for instant access to the same menu, centered at your cursor.
  • Search is ranked. Typing in the Add Node popup or the Node Library search box orders results by how well they match, and finds a node by a close alias, one of its parameters, or its description as well as its name. It tolerates a small typo or a couple of letters out of place. While a query is active the Node Library drops its category headers and shows one flat ranked list, so the best match is always the first row. Arrowing onto the search field drops you straight into typing, with the cursor at the end of your query.
  • Drag from a pin by dragging a wire from any node’s output or input pin and releasing on empty canvas. The Add Node menu opens filtered to compatible node types, and the new node is automatically connected.
  • Drag from the Node Library panel on the left side of the editor.
  • Drag and drop files from your file manager onto the canvas. Image and SVG files automatically create the appropriate input node.
  • Paste images from your clipboard with Ctrl+V to create an input node from the pasted image.

ArcBrush uses smart evaluation:

  • Only nodes downstream of a change re-evaluate.
  • Adaptive debounce waits for you to stop dragging before processing heavy nodes.
  • Nodes with no changes are cached and skipped.

Workflows are saved as .arcb files:

  • Human-readable JSON format.
  • Stable on disk. Saving an unchanged document twice produces the same file both times, so diffing two versions of a project or tracking one in version control shows only what actually changed.
  • Use Collect Files to copy all referenced assets alongside the project for portability.
  • Version-migrated automatically when opened in newer versions, including nodes nested inside a subgraph. A project saved by a newer ArcBrush cannot be opened by an older one.
  • Opening a project containing node types this version does not have names them in the warning (for example, Unknown node types: BRUSH), so you can tell a file from a different build apart from a damaged one.
  • Cross-platform: open on Windows, macOS, or Linux.
  • Auto-save periodically writes a backup while you work (configurable interval). If the app closes unexpectedly, crash recovery restores your last auto-saved state on next launch.
  • Node Groups are backdrop boxes to visually organize sections of your graph.
  • Sticky Notes are freeform text annotations on the canvas.
  • Scrub-zoom by holding right-click and dragging, in both the node graph and the image preview. A quick right-click still opens the context menu (and still copies a color in the preview).
  • Panning past the edge of the canvas wraps the pointer around and returns it to where you grabbed, instead of leaving it stranded at the screen edge.
  • Minimap provides bird’s-eye navigation for large graphs (toggle with M).
  • Graph Search lets you find any node by name with Ctrl+F.
  • Wire Styles include curved, straight, rounded, or right-angle wires (cycle with W). Curved is the default. Wires take a direct path unless you turn on Wire Auto-Routing in Settings → Interface → Node Graph, which routes rounded and right-angle wires around nodes.
  • Snapping aligns dragged nodes to their neighbors. The Snap Mode selector in Settings → Interface chooses Snap to Nodes (the default, aligning edges to nearby nodes with dashed guide lines), Snap to Grid (a fixed grid), or None. Hold Ctrl while dragging to move freely.

Select one or more nodes and press Ctrl+G to create a group. Groups are visual backdrop boxes that help you organize sections of your graph. They do not affect evaluation or data flow.

  • Move a group by dragging it. All nodes inside move with it.
  • Resize a group by dragging its edges.
  • Rename a group by double-clicking its title, or by choosing Rename from its right-click menu, which starts the same in-place edit.
  • Select the group and all contained nodes by double-clicking the titlebar outside the title.
  • Nodes that fall inside the group boundary automatically belong to it.
  • Deleting a group removes only the backdrop; the nodes inside are kept.
  • Right-click a group for a context menu with 6 color presets, a Delete option, Select All Nodes (selects the group plus every contained node), and Bypass Group / Enable Group (toggles bypass on every contained node at once).

Right-click the canvas and select Add Sticky Note to create one. Click the note to edit its text content, and drag to reposition it anywhere on the canvas. Right-click a sticky note to change the text size (Small or Large) or pick a color.

Sticky notes are useful for documenting complex sections of your graph, leaving TODOs, or explaining pipeline logic to collaborators who open your .arcb file.

Press Ctrl+F to open the search dialog. Type a node name to find it, then press Enter to navigate to the result and center it on screen. This is especially helpful in large graphs where scrolling to find a specific node would be tedious.

Select one or more nodes and press Ctrl+C to copy them. Press Ctrl+V to paste at the current cursor position.

  • Connections between copied nodes are preserved in the paste.
  • Pasted nodes receive fresh unique IDs, so there are no conflicts with the originals.
  • Copy and paste works across ArcBrush windows, so you can copy nodes in one project and paste them into another.

Right-clicking a node opens a context menu with quick actions:

  • Copy to Clipboard as PNG (nodes with an image output) copies the node’s current output to the system clipboard with intact transparency. Paste into image editors, office and chat apps, or browsers.
  • Reveal in Explorer / Finder (file-referencing nodes: Image In, SVG Import, Export Image, Export Batch) opens your OS file manager with the referenced file selected.
  • Delete Node (or Delete Nodes when multiple are selected) removes the selected nodes with the same auto-reconnect behavior as the Delete key.

Select one or more nodes and press Delete or Backspace to remove them, or right-click and choose Delete Node. When you delete a node, ArcBrush automatically reconnects compatible upstream and downstream connections, preserving the signal chain. This means you can remove a node from the middle of a pipeline without manually rewiring.

Hold Alt and drag any node to duplicate it. Alt+drag also works with sticky notes, groups, and mixed selections.

Select one or more nodes and press D to bypass them. A bypassed node passes its primary input straight through to its output without processing. This is useful for quickly comparing before/after results or temporarily disabling part of your pipeline without rewiring.

Click the ? button in the Parameters panel header to open the selected node’s documentation page on arcbrush.com. This gives you quick access to parameter details, usage tips, and related nodes without leaving the app.

Hold Y and drag across wires to cut them. This is a fast way to disconnect nodes without clicking on individual pins; just slice through any wires you want to remove.

Double-click any wire to insert a reroute dot at the click point. You can also add a Reroute from the Node Library or the Add Node menu and wire it up afterward, so you can place a routing dot before connecting it. Reroute dots are compact pass-through nodes that let you guide wires along clean paths without affecting the signal. Chain multiple dots to route around obstacles, and fan out from one reroute output to several downstream nodes at once. They carry no parameters and add zero evaluation overhead. A reroute is fully transparent to pin type, so a mask or single-channel signal passes through unchanged rather than being flattened to a white image. Dragging a reroute aligns it to nearby pin rows and other reroutes with guide lines, and it follows grid snapping like any node.

Drag a node from the Library panel (or drag an existing node) over a connection. The wire under the cursor lights up. Releasing inserts the node between the wire’s source and target with both halves rewired automatically, all as a single undo step. The highlight follows the wire’s actual shape: straight, curved, right-angle, or rounded.

A wire only highlights when the dragged node can actually be inserted there, and the release rechecks the wire under the pointer. If the node has no compatible pin for the splice, the operation is refused with a toast and the node falls back to a normal placement. The lock-on distance is consistent at every zoom level, so it does not get fussy zoomed far out or overly broad zoomed in, and it keeps the same wire selected where connections cross.

A node dragged in from the Node Library and spliced this way starts with your Canvas defaults and its type’s default preset, the same as every other way of adding a node. Splicing an existing node into a wire is unchanged: it keeps its settings.

With several nodes selected, drag from one of their output pins onto an array input (such as a Layer or Collect pin). Every selected node fans out into consecutive pins in one drop, saving the manual work of wiring each node individually. This is especially useful when building layer stacks or batch collections from many sources at once.

Nodes that take a variable number of inputs (Layer, Collect, Arrange, Scatter) accept connections in a specific order, and that order is editable from the canvas rather than only from the node’s panel.

  • Drop a wire exactly where you want it. Dragging a wire onto one of these nodes shows an insertion rail, so a new connection lands between two existing rows instead of always being appended at the end.
  • Reorder by dragging a connected wire. Lift a wire off an array input pin and drop it elsewhere on the same rail to move that layer, frame, or stamp. Drop it on a different array node to transfer it there instead. Either way it is a single undo step.
  • Move items from a menu. Right-click an array input pin, a Layer row, or a Collect frame row for Move Up, Move Down, Move to Start, and Move to End.

The Layer node additionally has a Reverse Order button that flips the whole stack top to bottom in one click, carrying each row’s blend mode, opacity, visibility, and transform with it.

Hold Shift and drag off an output pin that already has connections to lift all of its wires at once, then drop them onto another output pin. Every downstream input reroutes to the new source in a single motion, instead of pulling out a fresh wire. It works with a single connection too, so you can relocate one wire to a different node.

While dragging a single node, give the mouse a few quick back-and-forth flicks. Every wire attached to the node disconnects in one motion. Where the upstream and downstream nodes can be reconnected directly, ArcBrush bridges them automatically. The whole gesture (move, shake, continue dragging, drop) collapses into a single undo step, so one Ctrl+Z restores the node’s start position and every wire that was attached.

Select exactly two nodes and press Ctrl+R (or use Edit > Swap Selected Nodes). The pair trades canvas positions and every connection that touched the first-clicked node is rewired onto the second, mapping pins by name first and then by Nth-of-type. Wires that have no compatible pin on the destination are dropped. A single Ctrl+Z rewinds the entire swap including wires, positions, and any dropped connections.

Enable View > Hide Thumbnails (Lazy Eval) to switch the graph into lazy mode. On-canvas thumbnails disappear and only the currently selected (or preview-locked) node and the chain leading to it auto-evaluate. Nodes outside that chain stay dirty until you select them. A “Lazy Mode” indicator appears in the status bar while the toggle is on. This is a big performance win on large graphs and large images, and the Preview panel remains the single preview surface.