Importing media
Bring images, video, audio, 3D models and splats into your graph — drop them in, and DNA loads them as live, cookable sources.
Any media you import becomes a source node on the graph. From there it flows downstream like anything else: sample its pixels, deform a model, drive a parameter from audio, render it in a scene. DNA keeps the heavy lifting (decoding, GPU upload) off to the side so playback stays smooth even with 4K footage.
The fastest way: drag and drop
Drag a file from your desktop or the The asset browser onto the canvas and DNA creates the right source node for you, matched to the file type. Drop it straight onto a node's input socket to wire it up in one move.
Imported files are referenced, not copied. DNA stores a small note pointing at the original on disk, so importing is instant and costs almost no space. The trade-off: if you move or rename the original, DNA needs to find it again — see Projects for how relinking works.
Each imported file gets a stable identity that survives renaming. Rename photo.png to hero.png and your graph keeps working, as long as you rename it through DNA's tools rather than behind its back in Finder.
Images
The image source node (image.load) reads PNG, JPEG, WebP, TIFF and EXR. DNA detects each file's colour space on load — sRGB for typical 8-bit photos, linear light for EXR and floating-point files — so colours come in looking correct without manual fiddling. (More on this in Colour management.)
An image isn't just a picture you can render — it's a Rasters (images) you can read into your graph. Sample its pixels as colour, brightness, alpha or a single channel to drive points, fields or parameters.
| Parameter | Type | Default |
|---|---|---|
file_path | String | "String::new()" |
interpolation | String | "Bilinear" |
wrap_mode | String | "Clamp" |
opacity | Number | 1 |
position | Vec3 | (0, 0, 0) |
rotation | Vec3 | (0, 0, 0) |
scale | Vec3 | (1, 1, 1) |
anchor | Vec3 | (0, 0, 0) |
Video
Point the video source node (input.video) at a clip and scrub or play it in time with your graph. DNA decodes frames on demand in the background, so even large files don't stall the interface.
A few things worth knowing:
4K playback is built for speed. On macOS, hardware decoding and on-GPU colour conversion mean high-resolution footage stays responsive.
HAP clips are ideal for many simultaneous videos. If you work with lots of clips at once, HAP
.movfiles stay compact in memory and decode efficiently — a good choice for VJ-style walls of video.Video is always referenced. Clips are too large to embed, so the original file must stay reachable.
| Parameter | Type | Default |
|---|---|---|
file_path | String | "" |
frame_mode | String | "Timeline" |
custom_frame | Number | 0 |
speed | Number | 1 |
loop_mode | String | "Loop" |
start_offset | Number | 0 |
interpolation | String | "Bilinear" |
wrap_mode | String | "Clamp" |
opacity | Number | 1 |
sequence | OneOf([RasterArray]) | — |
reload | OneOf([Boolean, Number]) | — |
position | Vec3 | (0, 0, 0) |
rotation | Vec3 | (0, 0, 0) |
scale | Vec3 | (1, 1, 1) |
anchor | Vec3 | (0, 0, 0) |
Audio
Import WAV, MP3, OGG and FLAC files as audio sources. Audio in DNA is just another signal — analyse its level or frequency content to drive movement, colour or anything else on the graph. See Numbers, signals & audio for how audio flows alongside numbers and signals.
The desktop app plays audio. The Web Player has no audio output — a graph that relies on audible sound won't produce any when exported to the web. See Web export.
3D models and splats
Import meshes (OBJ, glTF, FBX, STL) and point/splat files (PLY) as 3D sources. A model arrives as Geometry (meshes) you can transform, deform, scatter onto, or feed into a simulation; Gaussian splats arrive as points you can move, render and dissolve.
For rendering imported geometry and splats in a scene, see Points and the The render node.
When something's missing
If DNA can't find a file an imported node points at, it won't crash — the source shows a magenta-and-black checker placeholder and the file is listed in the Missing Assets panel, with a Locate button to point DNA at its new home. More on recovering moved files in Projects and When something breaks.