The asset library

Reusable media and graphs shared across projects, with portable paths and live reloading.

The library holds what you reuse across projects: images, video, audio, 3D models, splats, and your own saved subgraphs. Browse it in the Asset Browser.

The default location is ~/NodeTool Assets, created on first run. Add further folders to scan with + Add Folder in the Asset Browser's sidebar. They are remembered between sessions.

Identity and renaming

An imported file gains a companion beside it, the whole filename with .ntmeta appended, so photo.png gains photo.png.ntmeta. It records a permanent id, which importer read the file, that importer's version, and a checksum of the bytes at import time. Edit the file in place and the checksum no longer matches, so it re-imports under the same id and everything keyed to that id stays valid. There is no central database to keep in sync: the folder on disk is the source of truth.

That identity does not rescue a renamed or moved file. A project stores each asset as a path, and the id is only ever found by reading the companion file at that path, so there is no way back from the id to a new location. Renaming photo.png in Finder also leaves photo.png.ntmeta behind under the old name. Either way the reference breaks and the node's path has to be reset by hand.

Portable paths

Inside a .dna project, assets are referenced with symbolic shortcuts rather than hard-coded absolute paths, so a project zips up and opens cleanly on another computer.

ShortcutPoints to
$PROJECTThe folder your .dna project lives in
$ASSET_LIBRARYYour asset library root
$HOME / ~Your home folder

Saving writes the shortest shortcut available, in that order, and opening expands it back to a real path. Media kept either inside the project folder or in the asset library is the surest route to a portable project. See Package and collect for gathering everything in one move.

Live reloading

Scanned folders are watched for change, polled twice a second. Edit an image in another app and save it, drop a new file into a watched folder, or delete one, and the cached copy is dropped so the next cook reads the new bytes. New files appear in the Asset Browser on their own. There is no preference for any of this and no manual reload action: the only thing you can trigger by hand is Retry on a row in the Missing Assets panel.

Missing and failed assets

A file that cannot be found does not stop the project loading. A missing image renders as a magenta-and-black checker placeholder and is listed in the Missing Assets panel along with the state it is in, and each row carries Retry, Reveal and Copy. Only images reach the panel; video, 3D models and splats load through an older path-based route that does not report into it.

A failed asset differs from a missing one. The file was found and could not be read: a corrupt image, an unsupported variant. The panel shows the error text beside the path.

See also