ViewAR app iconViewAR app icon

ViewAR

Your Blender scene, live in the room.

A Blender add-on and an iPhone app that stream the scene you have open into augmented reality over your local network. Move an object, add a modifier or change a material, and the AR view updates within a fraction of a second.

Blender

Checking a model in AR usually means exporting, sending and reopening it after every change. ViewAR keeps Blender open and sends only what changed, so the model on the table is always the model in the file.

Up to60transform updates per second
Up to10mesh updates per second, per object
3desktop platforms: Windows, macOS and Linux
0extra Python packages to install

Get the highlights.

  • Live, as you work. Move, rotate or scale in Blender, and the object follows on the table.

  • Modifiers applied. What the viewport shows, evaluated geometry included, is what lands in AR.

    Blender
  • Instances and scatters. Collection, particle and Geometry Nodes instances stream too, up to a limit you set.

  • Several phones, one scene. Phones can join at any time; a late arrival receives the whole scene.

  • Pick what to stream. Everything visible, only the selection, or one collection, with any object kept out of AR.

    Blender
  • Found on its own. Blender appears in the app under Nearby over Bonjour, and a manual IP works too.

Everything streams.

What the add-on sends, and how it keeps phones smooth.

  • Live streaming. Object transforms at up to 60 updates a second; meshes re-sent when geometry or materials change.

  • Only changes travel. A full scene goes out only when a device connects, a file opens, the unit scale changes, or you press Resync.

  • Modifiers applied. Evaluated geometry, exactly as the viewport shows it.

  • Instances. Collection, particle and Geometry Nodes instances, up to a limit you set.

  • Choose what to stream. Everything visible, the selection or one collection; hide any object from AR.

  • AR origin. The world origin or the 3D cursor lands where you tap, so far-off models are easy to place.

  • Pause updates. Hold the stream during heavy edits; phones catch up when you resume.

  • Basic materials. Base Color, Metallic, Roughness and Alpha from the Principled BSDF.

  • Automatic discovery. Bonjour on every network interface, or paste the IP by hand.

  • Multiple devices. Several phones at once, each with its own data count and a disconnect button.

  • Remembers your settings. Port, update rate and limits are kept, and the server can start with Blender.

  • Protects slower phones. Triangle and instance budgets per object, and automatic resync for devices that fall behind.

How it works.

Blender’s data is only ever read on its main thread; only finished byte frames cross into the network threads.

  1. Watch the scene

    A depsgraph handler marks every object that changed.

  2. Build frames

    A timer on Blender’s main thread turns removals, meshes and transforms into byte frames.

  3. Send to each phone

    One sender thread per device carries the finished frames.

  4. Find each other

    Bonjour advertises the server as _viewar._tcp; manual IP works too.

  5. Place it

    Meshes arrive in RealityKit’s Y-up space; tap a surface to place the scene.

One frame on the wire

Length4 bytes · big-endian
Kind1 byte · 1 JSON, 2 mesh
PayloadJSON: hello, clear, transforms, remove, ping · Mesh: positions, normals, UVs, triangle indices and per-triangle materials, little-endian

Protocol version 1 has no instancing: each instance goes out as an ordinary object with a stable id such as Trees/Pine#0.12, and a mesh shared by many instances is triangulated once per update.

Made for older iPhones too.

The panel counts triangles and instances as you go, warns before a scene gets heavy, and lists anything it skipped.

Default port51515TCP, plus mDNS on UDP 5353
Triangles per object300,000objects above this are skipped
Instances500beyond this, instances are not sent

Updates per second

30 by default; 15 to 20 for heavy animated scenes.

Scene size

Keep the whole scene under about a million triangles; the panel warns above that.

While previewing

Lower viewport subdivision levels, hide what you don’t need, or stream one collection.

While sculpting

Pause updates, then let the phones catch up.

Connect in a minute.

Computer and phone on the same network, Blender allowed through the firewall, and the app finds it.

  • Windows

    Allow Blender on private networks.

  • macOS

    Let Blender find devices on your network.

  • Linux

    Open two ports if you run a firewall.

  • Any network

    A home router or a phone hotspot works best.

  • Troubleshooting

    Fixes for the usual snags.

Tech specs

Add-on
Blender 4.2 or newer, tested on 5.2 LTS, on Windows, macOS or Linux. No extra Python packages; the Bonjour libraries ship as wheels.
App
The ViewAR iOS app on an ARKit-capable iPhone or iPad
Network
Computer and phone on the same Wi-Fi or LAN, without client isolation
Streamed
Mesh, curve, surface, metaball and text objects, and instances of them, with per-corner normals and the active UV map
Materials
Base Color, Metallic, Roughness and Alpha from the Principled BSDF
Not yet
Lights, cameras and image textures
Privacy
The server starts only when you press Start Server, listens only on your local network, and never contacts the internet

More artifacts

Windows

When Windows Defender Firewall asks, allow Blender on Private networks. If your Wi-Fi profile is set to Public, change it to Private.

There is no need to install Apple Bonjour; discovery is built in.

macOS

Allow Blender to find devices on your local network when asked. You can change this later in System Settings › Privacy & Security › Local Network.

Linux

If you use a firewall such as ufw, open TCP 51515 and UDP 5353 (mDNS).

Any network

Guest networks and many office or university networks block device-to-device traffic. A home router or a phone hotspot works reliably.

If discovery fails, enter the computer’s IP address in the app; the panel lists every address it listens on.

Troubleshooting

Could not open port. Another program or a second Blender is using it. Choose a different port in Settings and enter it in the app.

The app never finds the computer. Usually the firewall or the network. Try a manual IP first to tell discovery problems from connection problems.

Connected, but nothing appears. Tap a surface to place the scene. Check that objects are visible in the view layer, that the stream isn’t limited to an empty selection, and that updates aren’t paused. Then press Resync.

The model is far from where I tapped. It is far from the world origin. Set AR Origin to 3D Cursor and snap the cursor to the model.

Wrong colors. Only unlinked Principled BSDF values are read; a textured Base Color uses the material’s viewport display color.