The EsSync plug-in (Rhino and Grasshopper)
It reads the model and the geometry of your definitions, sends it to the viewers and applies what comes back. It brings the Es… commands and the E-SPACE tab in Grasshopper.
What happens behind E-SPACE: which parts make it up, how they connect, how the model is placed in real space and how accurate it can be.
Your models are not stored in any cloud: everything runs on your computer and your local network. The only thing checked over the internet is your account, to verify the license:
It reads the model and the geometry of your definitions, sends it to the viewers and applies what comes back. It brings the Es… commands and the E-SPACE tab in Grasshopper.
It is the bridge between Rhino and the viewers and lives only inside your network. It opens by itself when you connect Rhino and closes with it (it comes inside the package). The first time, Windows asks you to allow it on private networks.
The Quest app, the phone app and the web viewer. All three speak the same language with the session.
Every time you connect Rhino with the EsSync command a session opens with its own code, and Rhino shows a page with a QR code holding the data to join. The viewer reads it with its camera, tries the possible network addresses and connects by itself. There are no addresses to type.
| From Rhino to the viewer | From the viewer to Rhino |
|---|---|
| Geometry: meshes, curves, texts and labels, with their material and layer | The movements you make: move, rotate and scale pieces (only those that allow it) |
| The layers and whether they are on | Which layers you switch on or off |
| The Grasshopper parameters you enabled (sliders, toggles, lists, buttons) | The new value of each parameter you touch |
| The document QR markers (name and position) | The position and orientation of the viewer, gaze, hands, pointers and the QR codes it sees |
| The zoom level, the view and the per-piece interaction settings | Gestures (tap, drag, hold) and hover events |
Everything travels in meters with the Z axis up (the plug-in converts the units of your document). Changes are grouped in very short intervals so that moving a slider or a piece does not overwhelm Grasshopper.
For the model to match the real place, E-SPACE needs to know where the model is relative to the viewer's space. There are three ways:
In Rhino you place markers with EsMarker: each one is a point (the corner of the QR) with a name (ES-01, ES-02…). You print them with EsMarkerPrint and stick them on those same points in the real place. When the viewer sees a QR, it knows that point of reality:
Without scanning anything: with the controller tip or your index finger you tap the real corner of each marker, in order. Holding a point pressed corrects it; when finished, the model stays anchored and fixed.
No markers: the viewer detects the horizontal surfaces of your room (on the Quest with the room scan; on the phone with ARCore) and you rest the model where you point. For a table, you measure its height by resting the controller or your finger on it. You can rotate the model in 15° steps and choose any scale (1:1 to 1:100), ideal for scale models.
The placement error is estimated as ≈ 1 cm of QR reading + 1 % of the distance to the closest marker, multiplied by a factor that goes down when you are inside the triangle of the three closest markers and goes up far from them. In practice:
The Anchoring tab shows the current error and a confidence indicator (green, amber or red) that combines the points' error with the meters you walked since the last reading. And in Rhino, the EsPrecision command draws a 3D accuracy map before you go on site, to decide where to stick the QR codes.
EsInteract you can also move ordinary Rhino objects from the viewer (not just Grasshopper ones). Each gesture is a single undo step.The session exists so that only your viewers connect to your Rhino. This is what E-SPACE does to protect it:
It opens when you connect Rhino and closes with it. While you are not using it, nothing is left open.
Every session has a random 6-character code (the one in the QR). Without it nobody gets in, and after several failed attempts from the same device they are blocked for a few minutes.
A session can only be created by Rhino from the same computer: nobody else on the network can open one.
You do not need to open ports on your router or publish anything on the internet. Allow it only on private networks and avoid public or unknown Wi-Fi.
If you will use it on a sensitive project or in an institution with security requirements, write to us and we will go through it with your IT team.
Your models are not stored on any server, and E-SPACE has no advertising or usage analytics. The only thing checked over the internet is your account, to verify the license (every plan uses one, including the free one). Camera images are only used on the spot to read QR codes and are not stored. Communication between Rhino and the viewers is with your own computer over your local network. It is explained in the privacy policy.
We prefer to tell you what is still unresolved:
| Topic | What happens today |
|---|---|
| Accuracy with distant QR codes | In a test with 5 widely spaced QR codes the error was 4 to 8 cm (the limit of reading at 3–4 m with 150 mm QR codes). With close, well-placed QR codes it gets lower. It still needs validating on a real wall with a tape measure or laser. |
| Delay with heavy geometry | If the definition uses Breps, Grasshopper's recalculation can take about 1 second. It is best to mesh before the Sync. |
| Number of pieces | With about 4000 pieces the phone's memory is tight. For the Quest, grouping fixed pieces into one mesh is part of what is coming (see What's next). |
| Occlusion | The model is not hidden behind real objects. That is why the Wireframe and Edges modes exist, which let you see the real thing through the model. |
| Language | The apps' interface is in Spanish. |
| Requirements | Rhino 8 for Windows (8.35 or newer) and the PC and the viewer on the same Wi-Fi network. |