The World Builder

UI reference for the World Builder screen: the tabs, the object panel, the viewport, the transform panel, and the arm controls.

World Builder is where you assemble the scene a workflow runs in. You place objects, set where they sit, and save the result as a named world. Open it from the Build World tile on Home or the World Builder entry in the sidebar.

This page is a tour of the screen. For how to plan a scene and what makes a good one, read Building a world. For the shape of the file a save produces, read The world state file.

The tabs

The screen title is World Builder, and under it sit two tabs.

TabWhat it holds
Create in SimThe three-column editor. This is the tab you land on.
Saved WorldsCards for every world already saved in this project.

You may see older material mention a third tab, Create with Camera. It is not currently available, so ignore it.

Create in Sim

Three columns: the object panel on the left, the viewport in the middle, the transform panel on the right. All three are full-height and scroll independently.

Add Objects (left column, top)

A heading reading Add Objects, then:

  • A dropdown whose placeholder is Select object.... It lists the object types available to this project, and it preselects the first one when the list loads. The catalogue behind it is the Object Database.
  • A second dropdown labelled Tagged unit, placeholder Which unit?. It appears only when the selected type has more than one tagged unit, meaning more than one physical copy with its own set of tags. Most types have none and never show it. See Localizing an object.
  • Add to Scene, which drops one instance of the selected type into the scene at a default pose. A successful add clears the dropdown back to Select object... and disables the button, so a second instance means picking the type again first.
  • Add + Localize, on a local install attached to a rig, which places the object by looking at it instead of at a default pose. It is described under Localizing below.

Errors from a save attempt appear as red text under these controls.

Scene Objects (left column, bottom)

The heading is Scene Objects (n), where n is the live count. Below it is one row per object currently in the scene.

Each row shows the object's display name, and under it either index: <value> or no index if none is set. Hovering a row reveals its icon buttons on the right:

  • The pencil, tooltip Edit name / index. It swaps the row for two fields: a name box, and a second box labelled Index (optional). A green tick (Save) commits both, an X (Cancel) discards them.
  • The bin, tooltip Remove. It takes the object out of the scene at once. There is no confirmation step.
  • On a local install attached to a rig, a third button with the tooltip Re-localize (hand-guided). It opens the same panel Add + Localize does, pointed at this object, to correct a placement that has drifted or was never right.

While the list is loading you see Loading objects.... When the scene is empty you see a box icon and No objects in scene.

The index is how a workflow step distinguishes one instance from another when several objects share a type. See Building a world.

World Editor (centre column)

The panel heading is World Editor. To its right is a single button that reads Hide Gizmos when the drag handles are on and Show Gizmos when they are off. Gizmos are the arrows and rings drawn in the 3D view that let you drag a pose instead of typing one. The toggle covers both the object gizmos and each arm's target gizmo, so hiding them also hides the handles that Plan to Target and Move to Target aim at.

Below that is the live 3D view of the simulated scene. It is the same embedded viewport used elsewhere in the app. This viewport is always the simulator view, including when a localization session is running on a local install.

Two buttons sit under the viewport:

  • Save World, which opens the save dialog described below.
  • Reset, which clears every object out of the scene and reloads the list. It does not touch worlds you have already saved.

Object Transform (right column)

The panel header reads Object Transform, with a switch labelled Advanced on the same line. With Advanced off, the column holds one card.

The card is titled Transform Controls:

ControlNotes
Select ObjectSearchable dropdown over the objects in the scene. Placeholder Choose object..., search box Search objects..., empty result No objects found.
X, Y, ZPosition, in metres. Number fields stepping by 0.001.
Roll, Pitch, YawOrientation, in radians. Same 0.001 step.
Load Current PoseReads the object's pose back out of the scene and fills all six fields with it, to three decimals.
Update TransformWrites the six fields to the object.

Picking an object in Select Object loads its pose for you, so Load Current Pose is mostly for pulling values back after you have dragged the object with a gizmo.

Both buttons are disabled until an object is selected.

Localizing an object onto the bench

Add to Scene puts an object at a default pose that you then correct by hand. Add + Localize skips that: the object goes in where the cameras say it actually is.

🔒

This needs cameras and arms to point them with, so the buttons are left out entirely in the cloud. Everything in this section is for a local install attached to a rig. For what tags and tagged units are, and how to get a good result, read Localizing an object.

Two ways in, both opening the same panel:

  • Add + Localize under Add to Scene, for an object not in the scene yet.
  • Re-localize (hand-guided) on a row in Scene Objects, for one that is.

The panel takes over the left column, replacing Add Objects. The 3D view stays visible the whole time.

The panel

The heading reads Localize: <type>, or Re-localize: <name> when you came in from a row. An X at its right closes the session without adding anything. While it opens you see Starting session (freedrive)….

🦾

The arms go loose. Starting a session puts both arms into freedrive so you can move them by hand. They stay that way until you close the panel. A loose arm moves if it is knocked as readily as if it is guided, so support the one you are working with, and do not leave a session open and walk away.

Under the heading:

ControlWhat it does
Auto snapA switch, on by default, with a status line under it.
Left arm / Right armWhich arm's wrist camera the next snap comes from.
Take SnapCaptures now. Enter does the same, which matters because a hand is on the arm.
the snap listOne row per snap: Snap n · <arm>, and how many tags it saw, of which how many belong to the object.
LocalizeSolves from every snap together. Reads Solving… while it works.
Show overlayDraws the result onto the photograph. See below.
PlaceCommits the pose. Reads Update pose when you came in from a row.
CancelCloses without adding anything.

Empty, the snap list reads No snaps yet — hold the arm still at a viewpoint., or No snaps yet — take a few from different angles. with Auto snap off.

Auto snap

With it on, you do not press anything. Hand-guide the arm to a viewpoint, hold it still, and a snap fires on its own and the pose re-solves. Move to the next angle and it happens again.

The status line under the switch tells you where you are:

It saysMeaning
Move the arm — hold still to snapWaiting for you.
Settling…You have stopped; it is confirming.
Snapping…Taking the picture.
Still — move to a new angleDone. It will not fire again until the arm has actually moved.
Snap limit reached — Localize and PlaceYou have hit the ceiling of 60 snaps.
Joint feed paused — waitingThe 3D view feeding it has stalled.
No joint feed — is the real viewport running?Open the real viewport.
Off — snap by handThe switch is off. Use Take Snap.

Roughly: hold still for about three quarters of a second to trigger a snap, and move a few degrees before the next one can fire. If auto snap cannot start, the session still works and tells you why. Fall back to Take Snap.

Reading the result

A solve reports Localized or Not usable yet, then four numbers: Detections, Tags, Pos σ in millimetres, and Rot σ in degrees.

Those say how sure the solve is of itself, which is not the same as being right. Show overlay renders the solved model onto the actual camera image so you can see whether it landed on the object or beside it. It is a deliberate button press rather than something that happens automatically, and it re-renders on demand once the pose has changed under it.

The first solve of a session is slow, and can run past a minute. Later ones are much quicker. Give it time rather than pressing Localize again.

Which physical copy it is

When the object type has several tagged units and none is bound, an identification block appears above the snap list. It reads Identifying unit… while it works and Unit: <handle> once decided, and it will tell you when the tags in view are shared by several units and it needs an angle that distinguishes them. It refuses to guess.

Identification only runs when the session starts with no unit bound: either you did not pick one in Tagged unit, or the object being re-localized has none on record. An object that already records a unit is bound to it, and no identification happens. Within an unbound session, later snaps can rebind to a different unit than the first solve chose, and that is reported.

What Place changes

Place puts the object into the live world, in both the simulated and the real scene. A re-localize changes the object's pose: its name, its index, and its anchors are untouched. It also fixes the object in place, so an object that was riding an arm is released to a fixed pose.

💾

Place does not save the world. Use Save World afterwards, or the placement is gone when the scene reloads.

If a Place fails, the session stays open and the arms stay in freedrive so you can take more snaps and try again.

🔄

Adding, removing, and transforming objects in this editor now applies to the simulated scene and the real one, and starting a localization session reconciles the two before it begins. You no longer have to think about which of the two you were editing.

What the Advanced switch reveals

Turning Advanced on adds three things under the transform card: a Left Arm panel, a Right Arm panel, and a two-tab strip.

The arm panels

One card per arm, headed Left Arm and Right Arm. These drive the arm in the scene you are connected to, which in the cloud is the simulator.

Before you have a plan, the card shows:

  • Plan to Target, which computes a trajectory to wherever that arm's target gizmo currently sits in the viewport, without moving anything.
  • Move to Target, which commands the arm straight to that target.

Once a plan exists, those two are replaced by:

  • Preview Trajectory, which animates the planned path. While a preview is running the same button reads Stop Preview.
  • Execute Plan, which runs the planned trajectory.
  • Cancel Plan, which throws the plan away.

Under those, always visible, is Gripper Opening (m) with the current value in the label. It has a number box and a slider, both spanning 0 to 0.1 metres in steps of 0.001. Changing either commands the gripper immediately.

Inside each arm card is a collapsible section headed Advanced Controls:

ControlWhat it takes
Control TCP Pose [x, y, z, roll, pitch, yaw]A six-number list typed in brackets, for example [0.4, -0.3, 0.3, 0.0, 0.0, 0.0]. Apply TCP moves that arm's target gizmo to the pose. Anything that is not a six-element list is ignored.
Control Joint Angles [j1, j2, j3, j4, j5, j6]Six joint angles in the same bracketed form. Apply Joints moves the gizmo to the resulting pose.
Cartesian Speed (mm/s)10 to 500, used by Move to Target.
Max Speed (mm/s, 0=no limit)0 to 500, used when planning.
Duration (s, 0=auto)0 to 10, used when planning. Leave at 0 to let the planner choose.

This pairing of arm panel and pose readout is the practical way to discover a pose you want to hard-code in a skill: drive the arm where you want it, then read the numbers out of Dev Tools below.

⚠️

Move to Target and Execute Plan command motion. Nothing on this screen tells you whether a physical arm is clear to move, powered, or in the state you think it is in. See Running a workflow on real hardware before you drive anything that is not the simulator.

Object Controls tab

Holds one card, Object Attachment, which acts on the object currently chosen in Select Object above:

  • Arm, a dropdown offering Left Arm and Right Arm.
  • Link, a dropdown whose only option is TCP.
  • Attach, which parents the object to that arm so it rides along with the motion, and Detach, which releases it.

Both buttons are disabled until an object is selected.

World Controller tab

Three collapsible cards, all open by default.

World Settings carries a World dropdown, a Voxel Size slider (0.001 to 0.1), a Voxel Display dropdown offering Blox Only and Blox + Objects, a Show Meshes switch, and the buttons Refresh Voxels and Clear. The World dropdown is worth calling out: it holds a fixed list of preset names and records your choice in the panel only. It does not load or switch the scene. Use the Saved Worlds tab for that.

Camera Controls holds a Left Camera and a Right Camera block. Each has Capture, Fuse and Save buttons, a Display Mode dropdown (None, Filtered Final, Original, Filtered Robot, Filtered Objects, Filtered workspace, Filtered end_effector), an Image Mode dropdown (RGB, Depth), and a Point Size (m) slider. These act on depth camera feeds from a physical rig, so in the cloud there is nothing behind them.

Dev Tools is the readout. Its header has a Refresh button and an Auto switch that re-reads once a second while it is on. Expanded, it shows four boxes: Left Arm TCP Pose, Left Arm Joint Pose, Right Arm TCP Pose, Right Arm Joint Pose. Those are the numbers to copy when you are pinning down a pose.

Save World and its dialog

Save World opens a dialog titled Save World, with the note "Give your world a name and optional description. Timestamp will be added automatically."

FieldNotes
World Name *Required. Placeholder e.g., Chemistry Lab Setup.
Description (Optional)Free text, three rows. Placeholder Add notes about this world setup...

The footer has Cancel and Save World. The save button stays disabled until the name has content, and reads Saving… while it works. A save writes the scene to your project and then pushes it to the cloud copy, and it only counts as successful once that push lands, so a world that saved will still be there on a fresh session.

You do not get a success message to read: the dialog closes, and the new world appears under Saved Worlds. A failure at either step keeps the dialog open and shows a red message inside it.

ℹ️

Shared reference projects are writable here. Adding, removing, moving, localizing and Save World all work in a gold project. What differs is where the save lands: it is written straight into the shared folder on the machine rather than pushed to a project of your own, so everyone opening that project sees your world. Its skills and workflows are still read-only.

Saved Worlds

The tab opens with the line "Load a saved world into the editor as a starting point." and a Refresh button on the right. The list reloads whenever you switch to this tab.

Each world is a card showing:

  • The world name.
  • Its description, or a grey No description.
  • An object count, as N objects.
  • The creation date and time, in your local format.
  • A small badge reading either Created manually or From execution, depending on whether the world was saved from this editor or captured from a run.

The card's one button is Load into Editor. It reads Loading... while it works, replaces the current scene contents with that world, and switches you back to the Create in Sim tab. Anything unsaved in the editor is lost, so save first if you want to keep it.

With no saved worlds you get a box icon, No saved worlds yet. and Create and save a world from the editor to see it here.


Did this page help you?