# SubjectiveZero

> An open-source, native macOS agentic node editor for creative coding and realtime VFX, where AI coding agents turn prompt nodes into live, hot-reloading Metal code.

SubjectiveZero (SubZ) is a native macOS application built by SXP Studio that lets creative coders describe visual ideas as prompt nodes in a graph, then dispatches AI coding agents to implement each node as real, editable Swift and Metal code. It is currently in beta at v0.2.1, distributed as a signed and notarized DMG outside the App Store, and licensed under AGPL-3.0.

## What It Is

SubjectiveZero is an agentic creative-coding and realtime-VFX harness for macOS. Rather than picking operators from a fixed library like TouchDesigner or vvvv, you describe what you want in natural language. A Director Agent reads your prompt, splits it into typed nodes, wires them together, and dispatches a separate coding agent to each node simultaneously. Each node becomes an isolated, inspectable Swift file with a `node-contract.json` describing its typed inputs and outputs. The result compiles, hot-reloads on save (polling roughly every 300 milliseconds), and renders in a live Metal viewport — all without a WebView or Electron layer.

## The Core Agentic Loop

The workflow follows four stages the product page describes as describe, iterate, combine, and own:

- **Describe**: A Director Agent reads your prompt, plans the graph, and dispatches one coding agent per node in parallel. Each node's UI — title, icon, typed inputs and outputs — drafts itself before a line of code exists.
- **Iterate**: Every node has a chat tab that works the way Claude Code and Codex already do. You can attach files by dropping or pasting, @mention any node or the whole project, and ask for a control; the node builds its own interface alongside the code.
- **Combine**: Prompt nodes (nodes that don't exist yet) can be wired into already-rendering nodes. Compile isolation means a node that fails to build never takes the rest of the graph down.
- **Own**: Every node is editable source. Change a constant, save, and it hot-reloads. The agent and your manual edits operate on the same files.

## Architecture and Native Stack

SubZ is built entirely in Swift with SwiftUI for the interface and Metal for the renderer — no Electron, no WebView. The codebase is split into independent Swift packages: `SZApp` (the app bundle), `SZCore` (shared state and JSON serialization), `SZAI` (provider wrapping and orchestration), `SZRuntime` (Metal rendering engine), and `SZUI` (SwiftUI/AppKit panels). State is stored as JSON for portability. An embedded MCP server lets agents interact with the app — notifying status, reading state, requesting UI updates, and querying the built-in node library — with a 1:1 mapping to key UI interactions.

## Agent Providers and No-Subscription Model

SubjectiveZero ships no model and resells no tokens. It drives the coding agent CLI you already have installed and authenticated: Claude Code (`claude` CLI) and Codex (`codex` CLI) are supported today, with OpenCode and Pi listed as coming soon. The app surfaces available models and thinking levels from a static capability manifest per provider. Because SubZ uses your own account and rate limits, there is no additional subscription required beyond what you already pay your AI provider.

## Media, Audio, and Graph Capabilities

Beyond VFX shaders, the graph supports:
- Live microphone input feeding an audio-FFT node with ten band outputs that can drive any parameter
- Camera input wired into the graph
- Drag-and-drop images or video onto the canvas, arriving as source nodes
- Split and merge: ask for one node to become two, or two to fold into one; agents work out where the seam goes

## Update: v0.2.1 Beta

The latest release is v0.2.1, published on 2026-07-10, distributed as a DMG with in-app updates via Sparkle. The GitHub repository was created on 2026-07-10 and last updated on 2026-07-11, indicating this is a very early and actively moving project. The README notes that interfaces, project formats, and the node ABI can still change between versions. Planned features include behavior-tree orchestration for agents, video export, and standalone app export from effects. Cross-platform support (Windows, Linux) is deferred and described as dependent on community interest.

## Features
- Agentic node editor with Director Agent and per-node coding agents
- Live Metal viewport with hot-reload on save (~300ms polling)
- Prompt nodes: describe an effect in natural language, agents implement it
- Per-node chat tab compatible with Claude Code and Codex workflows
- Compile isolation: a failing node never takes the rest of the graph down
- Audio input: microphone → FFT → 10-band outputs drive any parameter
- Camera input wired as a source node
- Drag-and-drop images and video onto the canvas as source nodes
- Split and merge nodes: agents work out the seam
- Built-in node library with 3-tier token-efficient access (index, cards, full source)
- MCP server for agent-to-app communication and automated testing
- Native SwiftUI + Metal stack, no Electron or WebView
- In-app updates via Sparkle
- AGPL-3.0 open source; your created work is explicitly yours

## Integrations
Claude Code (claude CLI), Codex (codex CLI), OpenCode (coming soon), Pi (coming soon), Metal (Apple GPU framework), Sparkle (in-app updates)

## Platforms
WINDOWS, MACOS, LINUX, IOS, WEB, API, CLI

## Pricing
Open Source

## Version
v0.2.1

## Links
- Website: https://sxp.studio/apps/subz
- Documentation: https://github.com/sxp-studio/subjective-zero/blob/main/docs/ARCHITECTURE.md
- Repository: https://github.com/sxp-studio/subjective-zero
- EveryDev.ai: https://www.everydev.ai/tools/subjectivezero
