Getting started
StreamBridge Documentation
StreamBridge is a live DCC-to-Unity sync plugin. Geometry, skinning, vertex colors, hierarchy, and transforms from Blender or 3ds Max appear in the Unity Editor as you edit — no manual export, no stale previews.
What StreamBridge is — and isn't
StreamBridge consists of two parts: a Unity Editor package and a DCC plugin (Blender or 3ds Max). They open a persistent TCP connection and stream scene previews from your DCC into the Unity Editor.
Objects you see in Unity while connected are live previews of your DCC scene — not Unity project assets. When you're happy with a model, export it from your DCC to commit it to the project.
What's actually streamed
No PBR channel data, textures, light properties, camera FOV/clipping, blend shapes, or UV1. Lights and cameras sync as transforms only. Material assignment is by name match against existing Unity materials — your shader graphs stay intact, but no PBR values cross the wire.
Requirements
Software
Operating systems
Render pipelines
StreamBridge is pipeline-agnostic — synced objects use a standard MeshFilter + MeshRenderer, so the same workflow applies to all three pipelines.
How it works
StreamBridge uses a client-server model over TCP. Unity acts as the server; the DCC plugin is the client.
Blender / 3ds Max
CLIENT
TCP · port 8190
mesh · skin · xforms
Unity Editor
SERVER
Unity
Unity package
The Unity package hosts the StreamBridge server and creates GameObjects from incoming data.
Install the package
Add StreamBridge to your Unity account
Open the StreamBridge listing on the Unity Asset Store and click Add to My Assets.
Import in your project
Window → Package Manager → My Assets. Find StreamBridge, click Download, then Import.
Open the StreamBridge window
Window → StreamBridge. You're ready to start the server.
StreamBridge window
The window has three areas: connection status, server settings, and a log. Click Start Server — Unity opens TCP 8190 on localhost and the status indicator turns yellow. When a DCC connects it turns green, and synced objects appear under a root GameObject (typically StreamBridge) mirroring the DCC hierarchy.
The server runs while the Unity Editor is in Edit Mode. Entering Play Mode pauses the sync; exiting Play Mode resumes it.
Live preview & export
Synced GameObjects use instance meshes that live inside the scene. Saving the scene persists the geometry, but there's no .mesh or .asset under Assets/ — it can't be prefabbed, referenced from another scene, or managed through the Asset Database. For that, export from your DCC and let Unity's FBX importer handle it.
Iterate live
Sculpt, paint vertex colors, re-skin, re-parent — everything shows up in Unity in real time. Validate scale, lighting and material slots against your real scene.
Export when you're happy
From the DCC, export an FBX (or use the tagged-file export) into your Unity project folder. Unity's standard FBX importer turns it into project assets.
Replace the preview with the imported asset
Drop the imported prefab where the preview lives, transfer Unity-side components (colliders, scripts), then disconnect StreamBridge.
Material slot routing
StreamBridge does not send PBR data. What it sends per submesh is the material name. Unity looks for a material asset with that name and assigns it to the slot. No match → the slot falls back to the Default Material on the StreamBridge Server GameObject. Name your DCC materials to match the Unity assets you've already authored; your URP / HDRP shader graphs stay intact.
Receiving DCC exports
A tagged export from the DCC ships the file over the same connection; Unity writes it into your project (default Assets/StreamBridge/) and reimports it. Take over that flow two ways:
Subscribe to the StreamBridgeServer event from any editor code — good for prototyping, logging, one-off post-processing.
[InitializeOnLoad]
static class StreamBridgeExportHook
{
static StreamBridgeExportHook()
{
var server = Object.FindFirstObjectByType<StreamBridgeServer>();
if (server == null) return;
// fires after the file is written + AssetDatabase.ImportAsset()
server.OnFileTransferReceived += (fileName, assetPath) =>
{
Debug.Log($"[StreamBridge] received {fileName} → {assetPath}");
var asset = AssetDatabase.LoadAssetAtPath<GameObject>(assetPath);
if (asset != null) PrefabUtility.InstantiatePrefab(asset);
};
}
}
Both DCC plugins define tagged export presets: Blender under Edit → Preferences → Add-ons → StreamBridge; 3ds Max directly in the StreamBridge dialog. Each preset name is sent as the import tag and matched to the right handler — falling back to the default if nothing matches.
Settings reference
On the StreamBridge Server GameObject's Inspector (created by Window → StreamBridge → Create Server). The editor panel itself only shows status and Start/Stop/Clear. No pipeline-specific setup is needed — a default material is auto-generated using the best shader for your pipeline (URP Lit → HDRP Lit → Standard).
TCP port Unity listens on. Must match the port set in the DCC plugin. Change if 8190 is occupied.
Off binds to 127.0.0.1 — only same-machine clients connect. On for cross-machine setups over LAN or VPN.
Fallback when a submesh material name doesn't match any project material. Auto-set to Assets/StreamBridge/DefaultMaterial.mat (URP Lit → HDRP Lit → Standard); replace with your own if you like.
Re-converts incoming transforms on the Unity side. The DCC plugins already convert Z-up RH to Y-up LH — leave off unless your DCC sends Unity-space coordinates.
Optional parent Transform. Synced GameObjects are created as its children, keeping them grouped under your own root.
Extra project folders the material-by-name lookup searches. Narrow or extend the search to specific asset libraries.
On: hiding an object in the DCC also hides the GameObject. Off keeps Unity-side visibility independent.
Blender
Blender add-on
Ships as a standard add-on for Blender 4.2+ through 5.0+ on Windows and macOS. Native Python modules for 3.11 / 3.12 / 3.13 are bundled — no extra Python install.
Install the add-on
The add-on is bundled with the Unity package — no separate download. The Unity-side installer copies it into Blender's user folder and picks the right native module automatically.
Install the Unity package first
If you haven't already, follow Unity → Install the package.
Run the installer from Unity
Edit → Preferences → StreamBridge → Install Blender Addon. Unity copies the add-on and the matching native module into Blender's user add-ons folder.
Start Blender and enable the add-on
Edit → Preferences → Add-ons, search "StreamBridge", tick the checkbox. Confirm via Window → Toggle System Console: "[StreamBridge] Addon registered successfully".
Open the panel
In the 3D Viewport press N for the side panel, then click the StreamBridge tab.
Your Blender's Python version doesn't match a bundled native module. Shipped: Python 3.11 (Blender 4.2–4.4), 3.12 (4.5 / 5.0), 3.13 (5.1+). Use a supported Blender release.
Panel settings
IP or hostname of the machine running Unity. localhost / 127.0.0.1 for same-machine sync.
Must match the port set in the Unity StreamBridge window.
Responsive pushes updates as you edit (~0.1s throttle). Performance batches on a configurable interval (100–5000 ms) — pick this for heavier scenes.
On: hiding/unhiding in Blender's outliner also hides the matching GameObject in Unity.
Workflow
Start the Unity server
In Unity, click Start Server in the StreamBridge window.
Connect from Blender
In the N-panel, leave Host/Port at defaults (or adjust for LAN) and click Connect. The status indicator turns green on handshake.
Send the scene
Click Sync All to push the current scene, or just start editing — in Responsive mode the depsgraph picks up each change automatically.
Iterate
Move, sculpt, sub-d, paint vertex colors, re-parent in the outliner — every change streams to Unity.
Export when ready
When the model is finished, FBX-export it into your Unity project to commit it as a real asset.
What's synced from Blender
Limitations
3ds Max
3ds Max plugin
Mirrors the Blender feature set. Supports 3ds Max 2023+ on Windows (x64) only.
Same feature set as the Blender add-on, but less real-world testing. Please report anything unexpected via the bug report form.
Install the plugin
Install the Unity package first
If you haven't already, follow Unity → Install the package.
Run the installer from Unity
Edit → Preferences → StreamBridge → Install 3ds Max Plugin. Point it at your Max install if prompted.
Start (or restart) 3ds Max
The plugin registers MacroScripts under the StreamBridge category. No toolbar or menu entry appears on its own. Confirm via a [StreamBridge] line in the MaxScript Listener.
Add a toolbar or menu button (required)
Customize → Customize User Interface → category StreamBridge → drag StreamBridge_OpenPanel onto a toolbar. Other actions (Connect, SyncSelected, SyncAll, ToggleAutoSync, ExportSelected, ClearScene) can be added the same way.
Workflow
Start the Unity server
In Unity, click Start Server in the StreamBridge window.
Open the StreamBridge dialog
Click the StreamBridge_OpenPanel button you added during install. The dialog opens as a floating window.
Connect from 3ds Max
Leave Host/Port at defaults (or adjust for LAN) and click Connect.
Send the scene
Sync All pushes the scene; Sync Selected pushes picked nodes. Toggle Auto-Sync to stream changes as you edit — the plugin polls on a configurable interval and pushes deltas.
Iterate
Edit modifier stacks, paint vertex colors, re-parent in the Scene Explorer. Use Performance Mode for heavy scenes (100–5000 ms batching).
Export when ready
FBX-export into your Unity project to commit the final asset.
What's synced from 3ds Max
Limitations
Reference
Network setup
Same machine (default): no configuration. Host localhost, port 8190. The server binds to 127.0.0.1 only — not exposed to your network, safe by default. VPN / remote works the same way as LAN with the VPN-assigned IP.
Different machines (LAN)
Enable "Listen on all interfaces" in Unity
In the StreamBridge window. The server now accepts connections from other machines.
Find the Unity machine's IP
Windows: ipconfig → IPv4 Address (e.g. 192.168.1.45). macOS: System Settings → Network → Details.
Allow the port through the firewall
Windows: Defender Firewall → Advanced Settings → Inbound Rules → New Rule → allow TCP 8190. macOS: allow incoming connections to the Unity Editor.
Connect from the DCC machine
Set Host to the Unity machine's IP, keep Port 8190, click Connect.
Troubleshooting
"Cannot connect" / connection refused+
Make sure you clicked Start Server in Unity first. Unity must be in Edit Mode — the server pauses in Play Mode. Host and port in the DCC must match Unity (default localhost / 8190). Connecting from another machine? Confirm "Listen on all interfaces" is on and the firewall allows TCP 8190 inbound.
Sync is slow / DCC is laggy+
Switch Sync Mode from Responsive to Performance and raise the batch interval (start at 500 ms). Hide objects you're not actively editing — they're skipped. Very high-poly meshes (millions of verts) are noticeable on every edit: iterate at a lower subdivision level and crank it up before exporting.
Materials look wrong in Unity+
Assignment is by name match — make sure a Unity material with the same name as the DCC slot exists. The auto-generated DefaultMaterial.mat uses the best shader for your pipeline at creation time; if you've switched pipelines since, swap its shader, delete it and re-create the server, or point Default Material at your own. No PBR values, textures, or shader nodes transfer — that's expected, not a bug.
Objects appear at the wrong scale+
In Blender, apply object scale (Ctrl+A → Scale) before syncing. In 3ds Max, reset XForm if scale was non-uniformly transformed. Match your DCC scene units to Unity's — 1 unit = 1 metre.
3ds Max installer fails+
Close every 3ds Max instance before running the installer. Antivirus occasionally blocks plugin writes — temporarily exclude the install folder if needed.
Colors differ between live sync and exported FBX+
If vertex colors or tints look right in your DCC and in the exported FBX but the live preview looks washed-out or shifted, it's most likely an open bug with sRGB ↔ linear conversion on the live-sync path. Please open a bug report with: DCC + Unity versions, pipeline, color space in Player Settings, what the color looks like in each of the three places, and a side-by-side screenshot.
Still stuck? Pop into the Discord first — most setup hiccups get sorted in a few messages. If that doesn't crack it, open a bug report with your Unity version, DCC version, OS, what you did, what happened, and the StreamBridge log contents.
FAQ
Is it a one-time purchase or a subscription?+
One-time purchase on the Unity Asset Store. All future updates within the major version are included.
Does it work in Play Mode?+
No. The server only runs in Edit Mode. Entering Play Mode pauses the sync; exiting resumes it.
Can multiple artists connect at once?+
One DCC client per Unity instance at a time.
Will my custom shaders work?+
Yes — StreamBridge doesn't touch shaders. It assigns Unity materials to mesh slots by name, so whatever shader those materials use stays in place.
Does it sync textures or PBR maps?+
No. Only the material name is sent. Authoring the look stays on the Unity side; iteration on geometry/skinning stays on the DCC side.
Does it work on Linux?+
No. Windows and macOS only.