All updates
Oliver Edis

Your Coding Agent Can Now Run ViroReact Scenes, Not Just Write Them

Post title next to a code-brackets motif, announcing scene execution in the ViroReact MCP Server

Every XR developer knows the loop. Write the scene. Build to a device. Find out the model is sitting behind your head, or the tap does nothing, or the screen is just black. Change one line. Build again.

AI coding agents were meant to make that faster. Mostly they made it busier. An agent can write a ViroReact scene in seconds, and it has no idea whether any of it works. It cannot see the screen. So it hands you confident code and you go and find out, which makes you QA for something that writes faster than you can check.

Six new tools in the ViroReact MCP Server fix that. Your agent can now run what it writes.

It can see its own work

The MCP server can now execute a scene in a real renderer and hand back what appeared on screen. Not a description of what should have appeared. The actual frames.

It can also reach into the scene and use it: tap an object, wait for the animation, capture the result. Which means the question changes from "does this look correct?" to "does this work?".

Here is what that looked like in testing. We asked for a scene with a crate you could tap and a label that changed when you did. The generated code was clean. Every component real, every prop valid, nothing a linter would ever object to.

It rendered nothing at all. The scene had been exported without a navigator wrapper, and because nothing was actually misspelled, nothing could have flagged it. In the old workflow you would have found that out on a device, ten minutes later.

Instead the agent saw the blank result, fixed it, ran it again, tapped the crate, and read the label back:

"Tapped!"

Not "the code looks right". It ran, and it worked.

Studio and code, in both directions

Building visually in ReactVision Studio and building in code have always been two separate tracks. They now connect. A Studio scene converts into a ViroReact TSX scene, and a TSX scene converts back into something you can keep editing in the browser.

Assets, transforms, materials, animations and scene variables all make the trip. The parts that cannot, like Studio's visual scripting, come back as a clear list of what was left behind, so you are never handed something that only looks finished.

Catching problems before your users do

Three more tools do the unglamorous work.

One compares two renders and tells you exactly what changed between them, so a refactor that quietly moves your model somewhere else gets caught immediately rather than in a bug report.

One reads your 3D models and flags the ones too heavy for the headset you are targeting, before they become stutter that someone else has to diagnose.

And one takes an error, exception or crash log and tells you what it actually means. That last one matters more than it sounds. XR errors are famously opaque, and the knowledge for decoding them has always lived in maintainers' heads and old Discord threads. It is now something any agent can look up.

What it adds up to

Far more of the work finishes before it reaches you.

Your agent builds a scene, runs it, looks at the result, works out why it failed, fixes it, and checks again. You review something that has already been tested rather than being the first person to ever run it. The device build stops being the moment you discover problems and becomes the moment you confirm you do not have any.

Try it

Add https://mcp.reactvision.xyz/viro to your coding agent and sign in with a ReactVision Studio account for free.

First of three posts on validation in the ViroReact MCP Server. Next, we get into the detail: which tool to run when, what it costs, and how to set your agent up to do it properly.