Testing an AR or VR idea usually means choosing a platform first and accepting its constraints second: build for headset, or build for mobile, or build for desktop, rarely all three from the same source. The goal here was simpler to state than to build: prototype once, inside Unity, and run the result everywhere, desktop, mobile, headset, from a single output.

WebXR — system chain, one output across every platform

Context

Unity was the natural starting point: a solid bridge between 3D production and AR/VR systems, with a 3D pipeline already built for that purpose.

Needle Engine was what made it actually fast. It runs directly against a live server, no build step between a change and seeing it work, cutting prototyping time down to something closer to real-time iteration.

The Bottleneck

The bridge had a gap underneath it. Unity's own visual scripting layer wasn't compatible with the TypeScript that Needle Engine runs on, so the moment an interaction needed more than the basics, rapid prototyping was over. Writing TypeScript by hand, without being a developer, became the real cost of every new idea.

The fastest way to test an interaction is to never have to write it.

The System

The response was a visual scripting system built inside Unity, closer to PlayMaker than to a node-based editor: no graphs, no wires to connect. Interactions are built by stacking blocks in a column, one after another, read top to bottom like a simple list of steps. No more opening a script to change one number: stack a few blocks, and the interaction is already running.

At its core, the system works through reusable variables and events, and behaviours that can be attached to any object. Each behaviour is built from the same four stacked blocks:

Triggers

Mouse input, custom events, start, tick.

Conditions

Logic gates that decide whether an action runs.

Loops

For and for-each, to repeat actions across a set.

Actions

Setting variables, running math, editing transform or object properties, driving material channels and animator parameters, spawning or destroying objects, delaying execution.

Console feedback can be enabled directly from the panel, making it easier to trace what the system is doing at each step during prototyping.

The interface itself stayed deliberately barebones, closer to a 90s utility panel than a polished design tool. What mattered was that it worked reliably, not that it looked finished.

Code That Writes Code

The system itself was built with AI-assisted development, since writing TypeScript by hand was exactly the bottleneck it was designed to remove for everyone else. The only code left to write was the code that writes the rest.

Output

The result ships as a Unity package: something a designer or a product team can drop into a project and start authoring interactions with, without writing code or waiting on a developer to validate every idea.

Try It Yourself View Live Demo

What I Learned

Most no-code tools are built by developers, for people who don't code. Building one without being a developer myself meant feeling every rough edge a non-technical user would feel, and fixing it from the inside rather than guessing at it from outside. The tool is still early, and still rough in places, but it never stopped being usable, which mattered more than making it look finished.