File Management
ArcBrush saves projects as .arcb files: human-readable JSON holding the node graph, connections, groups, sticky notes, and canvas state. Images are referenced by path, not embedded, so how those paths are stored decides whether a project still works after you move or share it. Collect Files and Package as .zip are the two ways to make a project fully portable.
Projects
Section titled “Projects”File menu
Section titled “File menu”| Action | Shortcut |
|---|---|
| New | Ctrl+N |
| Open… | Ctrl+O |
| Open Recent | File menu (your 10 most recent projects; an unreachable one shows grayed out) |
| Open Recipe from Image… | File menu |
| Append Document… | File menu, below Restore from Auto-Save (see Appending another project) |
| Save | Ctrl+S |
| Save As… | Ctrl+Shift+S |
| Save As Template… | File menu |
| Revert to Saved | File menu (asks before discarding unsaved changes) |
| Restore from Auto-Save… | File menu |
| Missing Files… | File menu (checks the project’s files again; see Missing Files) |
| Collect Files | File menu |
| Package as .zip… | File menu |
| Convert Document to 8-bit… | File menu |
| Export All | Ctrl+Shift+Alt+E (runs every Export Image and Export Batch node) |
| Export Node Graph Image… | File menu |
Open and save dialogs start in the folder of the open project. Opening, saving, and collecting run in the background, so a slow drive or network share never freezes the window. Any of these can be given a shortcut under Settings > Keyboard.
Open Recipe from Image reopens the graph stored inside an exported image. Choose the command or drop such an image on the canvas.
Appending another project
Section titled “Appending another project”File > Append Document… brings a whole other project into the one you have open: its nodes and wires, groups, sticky notes, Project variables, and document palettes. It has no shortcut by default; give it one in Settings > Keyboard. You can also drop a project file onto the node graph: ArcBrush asks Open or Append?, and Open (the default) replaces the current project as before. In a new, untitled window with nothing on the canvas and no unsaved changes there is nothing to append into, so the file just opens.
- One undo step. Undo removes everything the append added, variables and palettes included, and Redo brings it back.
- Placed below your graph. The appended block keeps its own layout and lands below everything already on the canvas, left edges aligned, so nothing lands on an existing node, group, or sticky note. On an empty canvas it keeps its own positions. The whole block arrives selected and framed.
- File paths keep working, by the same rules as Save As, with the appended project as the old location: a relative path that only resolved next to it becomes the full path it pointed at, and a full path inside your project’s folder becomes relative to your project.
- Collected files are copied. Files in the appended project’s sidecar folder are copied into yours. A file that is already there byte for byte is reused, and a different file with the same name takes a numbered name. Appending into an untitled project copies nothing; Collect Files gathers the files once you save.
- Variables and palettes merge. A Project variable your project lacks is added, and one with the same name and value is shared. One with the same name and a different value is added as
name_2, and the appended nodes are rewritten to use it, so neither project’s nodes change meaning. A palette identical to one you already have is skipped. - Node IDs are kept. Each appended node keeps its Node ID (such as
ImageIn1). Only a node whose Node ID your project already uses takes the next free number, and every Export Data column that named it by Node ID follows the new one. - Your color mode and working space stay. If the appended project used different ones, the report says so.
A toast names the file and counts what arrived. When anything was rewritten, renamed, skipped, or could not be loaded, the Append Report opens and lists each change. A project saved by a newer ArcBrush is refused with the same message Open shows.
Recipes in exported images
Section titled “Recipes in exported images”Turn on Embed Recipe on Export Image, Export Batch, or Export Texture and every PNG, WebP, JPEG, or TIFF it writes carries the graph that made it. Private Paths, under Embed Recipe, decides what the recipe says about your files. It is on by default.
In a TIFF the recipe has a private tag of its own, so the XMP field other apps read stays free. A TIFF exported by 1.7.0, which kept its recipe in that XMP field, still opens with its recipe.
- On: the recipe keeps file names only, never the folders they live in, and leaves out export folders and any Project variable that holds a folder or file path. This is the right choice for anything you post or share publicly. Whoever opens the recipe sees which files it used and relinks them on their own machine.
- Off: the recipe keeps the full path to every input file and export destination, plus your Project variable values. A path relative to the project is stored as the full path it points to, and a path with a
{token}in it is kept as written. Turn it off when the image stays on your own machine or goes to people in a trusted studio who share your drives, so a reopened recipe finds every file without relinking.
Opening a recipe with full paths asks first. The dialog says This recipe includes full file paths (N files). and offers a Keep file paths checkbox, checked by default. Leave it checked to open the recipe with its paths, so every file that exists on this machine is found. Clear it to empty every full path, including any full path in a Project variable, so those nodes open with no file set and need relinking; a path written with a {token} is kept as written. A recipe opened this way also has Private Paths turned back on, so your next export does not share your own paths unless you turn it off. A recipe saved with Private Paths on opens as it always has, with no question.
Safe writes
Section titled “Safe writes”Every image export writes to a temporary file and swaps it into place only when complete, so a cancelled export, a full disk, or a crash never leaves a truncated file where a good one was. Saving a project works the same way, and the new file is flushed to the disk before it replaces the old one, so a power loss or crash right after saving still leaves a good file; your preferences are written the same way. If the final swap fails (another program briefly holding the old file, say), ArcBrush retries, and if every retry fails the previous file is left exactly as it was.
An export destination that resolves outside the folder you chose (a filename template can climb out with ..) asks once per destination before writing. Only one export runs at a time; starting a second while one is running is refused.
Export conflicts
Section titled “Export conflicts”Export All, exporting several selected nodes, and Export Batch’s own Export button first resolve every output path (including each batch frame’s templated filename). If two writes would land on the same path, or a file already exists, you choose:
- Add Suffix: write conflicting files under a numbered name (
name_1.png), overwriting nothing. - Overwrite: replace the existing files.
- Skip: leave files already on disk untouched.
An Export Image node’s own Export button overwrites its previous output without asking.
Project Templates
Section titled “Project Templates”A template (.arcbt) is a project you start from: a shot setup, a house grade, a batch export rig wired up except for the input.
- Create one with File > Save As Template: the ordinary Save As dialog with the template type selected. The template becomes the open document, marked
[Template]in the title bar. - Open one like any project: double-click, drop it on the window, File > Open, Open Recent, or Open With along with the images it should start on. Auto-save covers templates too, and the installer registers
.arcbtwith the project icon. - Saving a modified template never overwrites it.
Ctrl+Sopens Save As with the project type selected and the template’s name suggested as.arcb; the new project becomes your document and the template stays as it was. To update the template itself, pick the template type in that dialog and save over it. Saving an unchanged template does nothing.
The extension is the only difference: a .arcbt is byte for byte a project file, so renaming changes which one it is. Save As path handling (below) applies in full, so a template kept beside its reference art starts projects in other folders that still find everything.
Project file compatibility
Section titled “Project file compatibility”Documents saved by this version carry each frame’s name and tags (see the Tag node) and cannot be opened by ArcBrush 1.6, which refuses them with a message naming the version that wrote the file. Files from 1.6 and earlier open normally and upgrade the next time you save.
The Sidecar Folder
Section titled “The Sidecar Folder”Each saved project has a companion folder, {filename}.arcb_data/, next to the .arcb file. It holds:
- Clipboard pastes: images pasted onto the canvas
- Collected files: everything gathered by Collect Files
Files in the sidecar folder are stored as bare filenames, so the project works on any machine and operating system as long as the .arcb file and its .arcb_data/ folder stay together. Before a project’s first save, pastes go to a temporary folder and move into the sidecar folder when you save.
File Path Resolution
Section titled “File Path Resolution”A path in a node’s file field is stored in one of these forms:
| Form | Example | Resolves against | Portable? |
|---|---|---|---|
| Bare filename | hero.png | The sidecar folder | Yes, with the sidecar folder |
| Relative path | assets/logo.png | The .arcb file’s folder | Yes, if the files move with the project |
| Token path | {project_dir}/plates/shot.png | Whatever the variable resolves to | Depends on the token |
| Absolute path | C:\Users\...\image.png | Nothing: used as is | No, breaks if the file moves |
Relative paths work in Image In and SVG Import (assets/texture.png), Export Image (export/sprite.png), and Export Batch (output for a folder next to the project). A hint under the field shows the resolved absolute path, and export folders are created automatically.
- Convert a path in place: right-click a file or folder field and choose Convert to Relative Path or Convert to Absolute Path. Unavailable until the project is saved, or when the file is on a different drive.
- Reload: Image In, Image Folder, and SVG Import have a Reload button that re-reads the file or folder, so external edits show up without reopening.
- Browse opens at the file’s current location, even for relative or
{token}paths. - Home folder (macOS and Linux): path fields on Image In, SVG Import, Text (custom font), Export Image, and Export Batch accept and store
~/.... Files picked in the dialog are stored that way automatically, so projects move cleanly between user accounts. - Data folder: a file you pick with Browse from inside the project’s data folder is stored relative to that folder, the same way a collected file is, so moving or copying the project folder keeps it.
Choosing a file the project already uses
Section titled “Choosing a file the project already uses”Every input path row in the Parameters panel (Image In, Image Folder, Texture Folder, SVG Import, Apply LUT, Cryptomatte, Text’s font, 3D Render, UV Layout, and Model Textures) has a small arrow between the field and its Browse button. Click it to open In this document: the files this project already uses that the row can take. Pick one and the row reads that file, without browsing to it again.
- Only what the row can read. A model row lists the project’s models and an image row its images, each limited to the file types that row’s Browse dialog offers. A folder row lists the folders other folder rows use. Export paths and export folders have no arrow, since they write rather than read.
- Sorted by file name, then folder, with a count of how many nodes use each file. Point at an entry to see its full path.
- The row’s own file is in the list, dimmed with a check mark, so you can see where it sits among the others.
- A missing file is listed dimmed with “(missing)” and cannot be picked. Relink it from File > Missing Files… (see Missing Files).
- The path is copied exactly as the other row stores it. A relative path stays relative, a file in the project’s data folder stays there, and a path with a
{token}keeps its token, so both rows go on moving together. - One undo step, the same as Browse or a drop.
When nothing else of that kind is in the project, the arrow is grayed out. The list covers this project only; it is not a list of recent files. While ArcBrush is still checking which files exist, the list shows what it knew a moment ago with “Checking files…” under it, and updates in place.
What Save As does to your paths
Section titled “What Save As does to your paths”Save As treats each kind of path differently, so the copy keeps working from its new location:
- Sidecar files are copied into the new project’s own
.arcb_datafolder and point at the copy. Collected image folders and cached Cloud results travel too, and anything that could not be copied is named. {token}paths are never rewritten. The token is the instruction.- Absolute paths need nothing.
- Relative paths are rewritten to the absolute path they were already pointing at, but only when they would otherwise stop resolving from the new location. Up to three rewrites are reported in a toast; four or more open a dialog listing each node’s old and new value. Saving where the relative paths still resolve changes nothing and says nothing.
Save As never touches the original file on disk, never invents new relative paths, and never rewrites export destinations. Every input path follows the same rule, so a LUT, an SVG, a Cryptomatte EXR, or a collected folder is handled like an Image In path. For a copy that moves as a unit instead of pointing back at the original’s assets, run Collect Files before saving.
Missing Files
Section titled “Missing Files”When a project opens and some of its files are not where it expects them, a Missing Files dialog lists each one, with a count when several nodes use it. The nodes still load. The same dialog appears for a recipe recovered from an image whose files are not present. Close it and you can bring it back any time with File > Missing Files…, which checks the project’s files again and opens the dialog, or says Every file in this document is found.
- Locate… beside an entry opens a file picker on the folder closest to where the file used to be. Pick the file where it is now, and every node that used it reads the new file in one step. For a folder entry (Image Folder, Texture Folder) the picker chooses a folder. The picker starts on the missing file’s own type, and All Files lets you pick a different one, such as a
.pngthat replaced a.jpg; a node that cannot read the new file says so, as it would after Browse. - Locate Folder… at the bottom of the dialog relinks every missing file it finds in a folder you choose. It searches that folder and its subfolders, up to four levels down, skipping hidden folders and app packages and never following symbolic links, and stops after 50,000 entries, so pick the folder the files moved to rather than a whole drive. The line under the list reports what happened, such as
Relinked 4 of 6 files from Textures., adds2 files had no clear match and were left to Locate.when some could not be told apart, andStopped after looking through 50,000 files.when the search hit its limit. - The closest match wins. Each missing file is matched by the end of its path, so for
textures/oak/albedo.pnga file atoak/albedo.pnginside the chosen folder beats one atother/albedo.png. When the folder cannot tell files apart (two equally good candidates for one file, or two missing files that would land on the same file), those entries are left as they were with their own Locate…, so nothing is relinked to the wrong file. - Relinked entries stay in the list, each shown with a check mark, the old path, an arrow, and the new path, so you can see what changed and what is left. The dialog stays open until you press OK.
- A path with a
{token}has no Locate. It readsFix the variable to relink this file.: change the variable and every path built from it follows. - Paths are stored the way Browse would store them. On macOS and Linux a file inside your home folder is stored with
~/, and a file inside the project’s data folder is saved relative to it. - Every Locate and every Locate Folder is one undo step, so
Ctrl+Z(Cmd+Zon macOS) after OK takes a relink back.
Missing fonts keep their own Missing Fonts dialog: the Text nodes that use one draw with a fallback font, and go back to the original as soon as it is installed again.
Collect Files
Section titled “Collect Files”File > Collect Files copies every externally referenced file into the sidecar folder, making the project portable. It collects:
- Images from Image In, folders from Image Folder, and SVGs from SVG Import
- Custom fonts from Text, and the installed fonts your Text nodes use (see Keeping a font with the document)
- LUTs from Apply LUT and EXRs from Cryptomatte
- Custom meshes from 3D Render, UV Layout, and Model Textures (a
.gltfbrings the.binbuffers and the image files it names, and an.objits.mtl; the images an.objor.fbxnames are not copied, so copy those beside the collected model yourself)
Because it copies files and saves the document, it asks for confirmation first. Then:
- Each file is copied into
{project}.arcb_data/under its original name. An Image Folder’s images go into a subfolder named after the original folder (frames); nodes reading the same folder share one copy, and a second, different folder with the same name becomesframes_2. - Node paths are updated to the sidecar copies, as one undoable step (
Ctrl+Zrestores every original path). - The project is saved.
Files already in the sidecar folder are skipped, and a previously collected folder is reused when it still matches what the nodes import (checked in the background behind a cancellable progress dialog). A different file of the same name never overwrites one in the sidecar folder. A file that could not be copied (locked or unreadable) is reported by name, and its node keeps pointing at the original.
Package as .zip
Section titled “Package as .zip”File > Package as .zip… bundles the project and every file it references into one archive that opens on any machine without missing files. Unlike Collect Files, it leaves your working project untouched: use it to send a snapshot to a collaborator or attach one to a bug report.
The archive carries the project’s own variables plus the value of every global or external variable it uses, so a Text node reading {client} still resolves for the recipient. Files referenced through a {token}, by a bare name next to the project, or by a relative path are all collected. When it finishes, Reveal in Explorer / Finder opens the file manager with the .zip selected.
Clipboard
Section titled “Clipboard”Pasting Images and Files
Section titled “Pasting Images and Files”Press Ctrl+V on the canvas:
- Image data (from a browser, screenshot tool, or another app) becomes an Image In node labeled “Pasted from Clipboard” at the cursor, saved as a PNG in the sidecar folder (such as
clipboard_2026-03-18.png) with alpha preserved. - Copied files (from Explorer, Finder, or a Linux file manager) become one Image In node per image, one SVG Import node per SVG, and one 3D Render node per glTF, OBJ, or FBX model, staggered so they do not overlap. Supported image formats are PNG, JPEG, BMP, TGA, WebP, TIFF, PSD and PSB (as the flattened picture), OpenEXR, and Radiance HDR.
Pasting Nodes
Section titled “Pasting Nodes”Nodes copied inside ArcBrush (Ctrl+C) paste at the cursor as duplicates with new IDs, keeping the connections between them. A wire from outside the copy comes along too, when its source node is still in the same document. When it cannot, the pasted node keeps the size that wire gave it and the Layer or Collect rows that kept their wires, as in Duplicate without wires.
Nodes pasted from another saved project, in this window or another ArcBrush window, keep finding their files: a path relative to that project, or a file in its sidecar folder, is rewritten to the full path it pointed at (the same rules as Save As), and a toast counts the paths it updated.
Copying a Node’s Output
Section titled “Copying a Node’s Output”Right-click any node with an image output and choose Copy to Clipboard as PNG. Alpha is preserved, so it pastes cleanly into image editors, office and chat apps, and browsers. The copy is prepared in the background, and starting another copy replaces the first.
Drag and Drop
Section titled “Drag and Drop”Drop files from your file manager onto the canvas:
| Dropped | Creates |
|---|---|
| Images (PNG, JPEG, BMP, TGA, WebP, TIFF, PSD and PSB, OpenEXR, Radiance HDR) | Image In nodes |
| SVG files | SVG Import nodes |
| 3D models (glTF and GLB, OBJ, FBX) | 3D Render nodes with Mesh set to Custom and the model loaded, plus a wired Model Textures node when the model has its own textures; pasting a copied model file does the same. Dropped on an existing 3D Render node, a model replaces that node’s model instead |
Palette files (.gpl, .ase, .pal, .aseprite) | Palette nodes with every color and name |
| Folders | An Image Folder node with the path filled in. A folder whose file names read like a texture set first asks Which Folder Node? (Image Folder or Texture Folder); photos and image sequences never ask. |
.arcb projects | Dropped on the node graph, asks Open or Append? (Appending another project); dropped anywhere else, opens the project (asking to save unsaved changes first) |
| Images exported with Embed Recipe | Asks whether to open the stored graph (replacing the current document) or import it as an image (see Recipes in exported images) |
Several files at once each get their own node, staggered. An unsupported type shows a toast naming the extension. Dropped files are referenced where they are, not copied; use Collect Files to bring them into the project.
- Drop onto a path field in the Parameters panel to set that path without the file browser.
- Cloud-synced files that are not downloaded yet are read in the background; a read longer than a second names the file it is waiting for.
Browser Image Drops
Section titled “Browser Image Drops”Drag an image straight out of a browser tab: Chrome, Edge, Brave, or Vivaldi on Windows; Firefox, LibreWolf, Chromium, or Safari on macOS and Linux. ArcBrush downloads the image into the project’s cache, so the node survives a save and reopen after the browser’s temp file is gone. Google Images and Bing Images thumbnails follow through to the full image, and hosts that block non-browser requests (Imgur direct links, Pinterest CDN, image URLs with a query string) work too. A dropped link to a PSD or PSB file opens its flattened picture the same way.
Open With
Section titled “Open With”ArcBrush can appear in your system’s Open with list for images (PNG, JPEG, BMP, TGA, WebP, TIFF, PSD and PSB, OpenEXR, Radiance HDR, and SVG) and for 3D models (glTF and GLB, OBJ, and FBX), so you can right-click a file and send it into the project you already have open. It never becomes the default app for an image or model type, and turning it off or uninstalling never removes another application’s entries. Palette files are not offered; drag one onto the graph instead.
Files arrive exactly as a drop at the center of the Node Graph panel: images become Image In nodes, SVGs become SVG Import nodes, a model becomes a 3D Render node with the model loaded, a folder becomes an Image Folder (asking Which Folder Node? when it looks like a texture set, offering Texture Folder), and a project or template opens as a project.
- The open project is kept, nothing asks you to save, and the window comes forward.
- A multi-file selection is one action: twelve images arrive as one staggered run of nodes and one undo step. A project file in the selection opens first and the images land inside it.
- If ArcBrush was not running, it starts a new untitled project with those nodes and skips Reopen last file on startup for that launch.
- Unreadable files are skipped and the rest still arrive; if nothing can be opened, a message names the format.
| System | How it works |
|---|---|
| Windows | Right-click an image or a model, Open with > ArcBrush. Right-click a folder, Open in ArcBrush (under Show more options on Windows 11). Images, models, and the folder entry are separate optional installer checkboxes, unchecked by default, and can be added or removed later in Settings > Defaults > File Association. |
| macOS | Right-click in Finder, Open With > ArcBrush, or drag images, models, or a folder onto the Dock icon. The file types come with the app; ArcBrush registers as an alternative, never the preferred app. |
| Linux | The desktop entry lists the image and model types, so file managers offer ArcBrush under Open With once it is installed (by your package, the AppImage, or the association button in Settings > Defaults). FBX is not offered, since it has no registered file type there; drag an FBX onto the graph instead. Folders are never listed; drag one onto the window. |
From a terminal, arcbrush accepts any mix of files and folders in one launch. If ArcBrush is already running, the paths go to the running copy. Each user signed in to the same Windows PC runs a copy of their own.
Export Node Graph Image
Section titled “Export Node Graph Image”File > Export Node Graph Image… renders the node graph at full size into a PNG, readable where a zoomed-out screenshot is not: for docs, bug reports, or messages. It is disabled on an empty canvas.
| Option | Choices |
|---|---|
| Scope | Entire Graph (every node, group, and sticky note), Selection (offered when something is selected), or Current View (the viewport as panned now) |
| Scale | 25% to 200%, default 100%. 150% and 200% are crisper for print or high-DPI screens. |
| Background | Grid (like the canvas), Solid (theme fill), or Transparent (PNG with alpha, best for docs and slides) |
| Distant nodes | When far-off clusters would shrink the image a lot, a checkbox leaves them out of the capture. The graph itself is never moved. |
A readout shows the output size and memory footprint. It warns past about 32 megapixels and blocks Export past 16384 px on either side, with a Use N% button for the largest scale that fits. A full 16384 x 16384 image (about 268 megapixels, about 1 GiB in memory) still exports.
The image is rendered fresh at the chosen scale, so layout can differ slightly from your zoom. Nothing is evaluated: nodes with no cached result show their placeholder thumbnail. Cancel leaves no partial file, and your last scale and background are remembered. There is no clipboard or vector (SVG, PDF) export.
Reveal in Explorer / Finder
Section titled “Reveal in Explorer / Finder”Right-click a file-referencing node (Image In, SVG Import, Export Image, Export Batch) and choose Reveal in Explorer / Finder to open your file manager with that file selected. The Graph Overview header has the same button for the saved .arcb itself. Both can be given a shortcut in Settings > Keyboard.
Auto-Save & Crash Recovery
Section titled “Auto-Save & Crash Recovery”ArcBrush saves a backup of your work every 2 minutes by default. The snapshot is built in the background, so a heavily painted Paint node or a graph of thousands of nodes does not pause the window while it saves. If the app closes unexpectedly, it offers to restore the last auto-save on the next launch, including work in untitled documents you never saved, and keeps that snapshot until you decide. File > Restore from Auto-Save… restores a snapshot on demand. Reverting a document or opening another clears that document’s auto-save, so a crash right afterwards never offers back edits you just discarded.
Backups are kept in the system application data folder, not beside the project. Set the interval (30 to 600 seconds) and number of snapshots (1 to 10) under Settings > Defaults > Auto-Save.