Skip the part where you rebuild the design.
The graph is the app. The document, the interaction and the 3D are one thing — so there is no flat mock to reimplement, and nothing drifts between design and build.
One system, and you can see all of it.
No design-to-code hand-off
The document is a first-class part of the graph — real elements, real CSS, real semantics. What a designer builds is what ships. You stop being the person who rebuilds a picture of the thing, and the pixel-comparison round disappears with it.
Deterministic, typed and inspectable
Strictly typed wires refuse mismatched connections instead of silently coercing them. The per-frame cook recomputes only what changed, and you can read what changed and why. It behaves like a system you can reason about, not a black box.
Escape hatches where you want them
Expressions on parameters, scripted operators and shader work are there for when the node palette runs out. The ceiling is not set by what someone else anticipated — it's set by what you're willing to write.
The export is an ordinary web page
A static semantic-HTML shell plus a runtime tree-shaken to only the families the project actually uses. A pure-DOM project carries no 3D payload. No proprietary player, no runtime lock-in, no vendor script between your page and the browser.
Agent- and script-reachable
It speaks MCP, so graphs can be driven, built and read from whatever agent or tooling you already use. Nodes are addressable by name, parameters are readable and writable, and the whole thing is scriptable from outside the canvas.
Where the work actually goes.
Today
You receive a flat mock of an interactive idea and rebuild it in code. Every revision round means reconciling two versions of the same thing that were never the same thing.
With nooodles
The interactive piece is authored once, by whoever is best placed to author it, and you spend your time on the parts that genuinely need engineering.
The same graph ships the piece and the assets around it.
A scene is the interactive piece itself — a page or a widget an end user opens and uses. A workflow is the other way out of the same graph: it renders the flat files the campaign around that piece needs. Same nodes, same parameters, two outputs.
So the social cutdowns, the stills and the banner set don't get rebuilt in a second tool from a screenshot of your work. They come out of the graph that already knows the geometry, the type and the colour.
The interactive piece
A scroll page, a configurator, an embedded widget. It runs in the browser and responds to whoever is using it.
- Mode
- Scene
- Output
- A web page you host
- Who opens it
- The end user
The flat assets
Stills, cutdowns and size variants rendered from the same nodes, in whatever counts the brief asks for.
- Mode
- Workflow
- Output
- Image and video files
- Who opens it
- You and your team, who then place them
Start from something that already works.
These ship with the beta — open them, run them, or take them apart.
Scroll Story
SceneDrive a 3D narrative page from scroll.
by Jacques ParysEmbed Widget
SceneDrop a live scene into an existing site.
by Jacques ParysAgent Hook
WorkflowDrive a graph by name over MCP from your own tooling.
by Jacques ParysVariant Matrix
WorkflowRun the full product × message × market grid.
by Jacques ParysThe ones worth asking.
What does it actually export?
A folder. Semantic HTML, CSS and JavaScript, plus the assets the project uses. The runtime is tree-shaken to the operator families present in the graph, so a DOM-only project ships no 3D code. Put it behind any static host or drop it into an existing build — it's a web page, and it's yours.
Can I version-control a graph?
Partly, and we'd rather be straight about it. A scene is a file on disk, so you can commit it, branch it and see that it changed. What you can't do yet is read the diff the way you read a source diff — the serialised form is structural, not line-oriented, so a review tells you which nodes and parameters moved rather than telling you a story. A more readable on-disk format and a proper graph diff are being worked on. Until then, treat graph merges the way you'd treat binary assets: lock, don't merge.
Is there an API?
Today it's MCP. A running graph exposes a tool surface over the protocol: list and create nodes, connect them, read and set parameters, set expressions and flags, read back geometry, tables and channels, and trigger events. Anything that speaks MCP — an agent, a script, your own tooling — can drive a graph by node name. A conventional HTTP API for headless workflow runs is on the list and is not built.
Can I write my own operators?
Yes. Scripted operators let you write the cook body yourself and place the result in the graph like any other node, and shader operators take shader source you write. What doesn't exist yet is a plugin ecosystem — there's no package registry, no way to publish an operator for someone else to install, and no stable public extension API to write against. Custom work today lives inside your own project.
What about performance?
The cook is gated: each frame recomputes only the nodes whose inputs or parameters actually changed, so a static branch costs nothing to keep on screen. GPU work stays on the GPU rather than round-tripping through the CPU between operators. And the shipped project carries only the families it uses, so the download reflects what you built rather than everything the tool can do. It is a browser, though — the ceiling is the browser's, and a heavy scene is still a heavy scene.
Am I locked in?
Not on the output. What you export is an ordinary web page you host wherever you like, with no licence key, no phone-home and no player to keep paying for. It keeps working if we don't. The honest caveat is the other direction: the graph itself is our format, so to keep authoring in this model you keep using this tool. The thing you ship doesn't depend on us — the thing you edit does.
Bring the build you're dreading.
Tell us what you've been handed and how you'd normally implement it. We'll show you what it looks like as a graph, with your project rather than a demo.
Working with a team?
Tell us where to reach you and we'll set up a walkthrough.
No spam. A real reply from a human.