Capabilities

A general instrument.

Incept is one tool that spans sound and picture rather than a single-purpose app. Everything below runs on the same graph engine, on the same Apple-native stack — so any output can drive any other.

Composable node graphs

Patch it, don't program it.

A patch is a directed graph of typed nodes. Wires carry one of four kinds of signal: data (a value replaces a port's base), modulation (a value is summed into a port), audio (a live stream), and image (a per-frame frame). The kind is part of the port, so the editor only lets you make connections that actually mean something.

Press ⌘K and type to fuzzy-insert any of 122 nodes at the viewport center. There is no separate "audio app" and "visual app" — a Sampler and a Gaussian blur live in the same graph.

Why four wire kinds matter.
Because data and modulation are distinct, an LFO can fan out to a filter's cutoff and a blur's radius from one source — the correspondence is a wire, not a special case. Audio and image wires stay as live handles the runtime materializes, so the graph describes signal paths without forcing scalar conversions.
Triggers are pulses, not states.
A StepSequencer or Euclidean node emits an instantaneous rising-edge trigger on each active step. That edge fires a one-shot Sampler — it does not hold a gate open. Sustained behavior (note length, envelopes) is a separate, explicit signal. The distinction is honored everywhere triggers flow.
Modulation

Every port is animatable.

Each parameter is an AnimatableValue: a base value, optional keyframes with easing, and a modulation slot that sums in live contributions. Wire an LFO, Tween, Envelope, DampedSpring, or any math node into it and it moves.

Hardware MIDI (notes, gates, CC) drives parameters today; OSC input is on the roadmap. Continuous controllers map through a min/max range with smoothing, and MIDI-Learn binds a physical knob to any control.

On-device neural

Generation without a cloud.

Neural nodes run through CoreML on the local GPU. Diffusion generates images (SDXL Base and Turbo, SD 1.5). StemSeparator splits a track into drums, bass, vocals, and other with HTDemucs. MusicGen synthesizes audio.

Because they're nodes, their inputs are modulatable: drive a diffusion seed from audio onsets, or gate stem separation from the transport. Nothing leaves the machine.

Models, on first use.
Weights download once and cache locally — HTDemucs is ~234 MB, for example. After that, inference is offline. A unified MLX backend (model registry, GPU scheduling, memory-pressure eviction) is in progress to make the neural family faster and easier to extend.
Live & rendered

Capture the world in; render the result out.

capture

Live camera & mic

Real-time audio and camera capture as graph sources, with device and frame-rate selection. Record A/V straight to .wav and .mov.

render

Real-time + offline

Play live, or bake to .mov offline for sample-accurate, zero-CPU loops. Deterministic subgraphs pre-render; the rest stays live.

spatial

3D & WebXR

Scene3D, meshes, lights, materials, billboards, and SpatialAudio with binaural + ambisonic output. Cast a side-by-side stereo scene to a headset.

export

Multi-format bounce

One sheet exports Movie (H.264 + AAC), 360° stereo video with ambisonic audio, audio (WAV/AAC/AIFF), B-format ambisonic, or a still PNG.

analysis

Audio & vision analysis

RMS level, onset detection, and spectrum taps from audio; person masks, depth, optical flow, and text/barcode detection from images.

perform

Performance console

Lay out a bespoke control surface to play a patch live. The graph stays in Wire; Performance mode (⇧⌘P) is the instrument face — panner, mixer, sequencers, scopes.

Extend

JavaScript or Swift. Your call.

Drop a .js script node in your Plugins folder and press ⌘R — it's hosted through JavaScriptCore via InceptJS. For native performance, ship a Swift Package.

Plugin authors depend only on InceptCore — Node, Port<T>, Graph, Time, AnimatableValue. The same primitives the built-in nodes use.

InceptCore — Node · Port<T> · Graph · Time · AnimatableValue
InceptNodes — 122 Apple-native primitives
InceptRuntime — LiveRuntime + OfflineRuntime (.mov · 360°)
InceptJS — JavaScriptCore script-node bridge
InceptEditor — SwiftUI graph editor + Performance mode
incept-serve — standalone HTTPS host for WebXR scenes
~1,800 tests in CI · swift build · swift test

See the full node set.

Every built-in node, grouped by category, with a one-line description of what it does.

Node reference →