Skip to content
E-SPACE

How it works

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.

The three parts

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:

Your computer Rhino 8 + EsSync Grasshopper (components) Private session (opens on connect) Wi-Fi Viewers (same network) Meta Quest 3 mixed reality · hands free · controllers Android phone augmented reality · ARCore · fingers PC browser preview without mixed reality
Rhino sends the model; the viewers display it and send back what is moved or touched.

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.

The private session

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 viewers

The Quest app, the phone app and the web viewer. All three speak the same language with the session.

The session and the QR

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.

  • If the connection drops, Rhino retries by itself and keeps the same code.
  • If the viewer cannot connect within about 15 seconds, it goes back to looking for the QR.
  • The viewer camera only turns on when you tap “Link” and is used to read QR codes.

What travels between Rhino and the viewers

From Rhino to the viewerFrom the viewer to Rhino
Geometry: meshes, curves, texts and labels, with their material and layerThe movements you make: move, rotate and scale pieces (only those that allow it)
The layers and whether they are onWhich 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 settingsGestures (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.

Anchoring and orientation: how it knows where to put the model

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:

With QR markers

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:

  • With a single QR the position is fixed; the rotation depends on how the QR is placed.
  • With two or more QR codes the rotation comes from the positions, regardless of how each QR is turned or whether it is on the floor or a wall. With two or more, the model is always at 1:1.
  • Every QR seen is remembered. If you look at one again, the position is corrected (the old one is replaced, not averaged) and the viewer's tracking drift is corrected.
  • The correction uses the three markers closest to where you are, so the local error stays small.

By hand (points)

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.

On the floor or a table

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.

Accuracy

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:

  • To ask for ±1 to 2 cm, put one QR every 1.5 to 2 m on the wall itself, placed accurately (for example with a tape measure or laser).
  • The viewer does not read a 150 mm QR well beyond about 3 to 4 m: look at markers up close (about 40–60 cm).
  • Do not read while moving: if you move too fast, the app says “Move your head more slowly”.

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.

It is a model, not a measurement. The values on the map and the indicator are estimates; compare them with the real “Error ≈” that the app shows on a measured wall.

Interactivity: what can be moved

  • Every Grasshopper piece says what can be done with it in the viewer: Move, Rotate and/or Scale (checkboxes on the component). With nothing checked it stays fixed: that is normal for installations and closed walls. Selecting or tapping a piece does not depend on being able to move it.
  • Pieces can depend on each other (parent and child): if the parent moves, the child follows.
  • With EsInteract you can also move ordinary Rhino objects from the viewer (not just Grasshopper ones). Each gesture is a single undo step.
  • What you move in the viewer adds to what Grasshopper says, and the “Reset all” button returns every piece to the position that Grasshopper calculates.

How the session is protected

The session exists so that only your viewers connect to your Rhino. This is what E-SPACE does to protect it:

Private and temporary

It opens when you connect Rhino and closes with it. While you are not using it, nothing is left open.

Only whoever has the code gets in

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.

Only Rhino opens it

A session can only be created by Rhino from the same computer: nobody else on the network can open one.

Inside your network

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.

Privacy

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.

Known limits of the beta

We prefer to tell you what is still unresolved:

TopicWhat happens today
Accuracy with distant QR codesIn 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 geometryIf the definition uses Breps, Grasshopper's recalculation can take about 1 second. It is best to mesh before the Sync.
Number of piecesWith 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).
OcclusionThe 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.
LanguageThe apps' interface is in Spanish.
RequirementsRhino 8 for Windows (8.35 or newer) and the PC and the viewer on the same Wi-Fi network.