Skip to content

Deep linking

A deep link sets the workspace mode and the selection from the page’s URL at load time. No click is required to reach the state the link names. This works the same whether the visualizer runs standalone or embedded in a host app.

ParameterValue
viz.modeOne of monitor, build, move. The first value wins, and an unknown value is ignored.
viz.selectOne or more entity Names, separated by commas and nothing else.

An example that sets the mode:

?viz.mode=build

An example that selects two entities:

?viz.select=arm,gripper

An example that combines both:

?viz.mode=build&viz.select=arm,gripper

A repeated viz.select key is also accepted and flattens into the same list.

Do not put a space after a comma. A name is matched exactly, and a leading or trailing space is not trimmed, so ?viz.select=arm, gripper resolves arm and nothing else. Nothing in the system validates a name, so whitespace at the edge of one is legal and has to stay addressable.

Every parameter the visualizer reads carries the viz. prefix, so a host page’s own query parameters never collide with the visualizer’s.

An entity named in viz.select is selected the first time it appears, so the link works even before the robot’s frames or a drawn scene have arrived. Each name applies once: if the user later deselects that entity, the deselection sticks. An entity marked non-selectable never matches, and neither do the world tree’s folder rows, so a component sharing a folder’s name still resolves to the component.

The visualizer never writes or rewrites the URL. Producing a link is the host’s responsibility. It reads only viz.-prefixed keys, so a host’s own query parameters are never touched or misread.

  • Producing a deep link from the current view.
  • Framing the camera on the selection.
  • Selecting by anything other than Name.
  • Choosing a machine by URL.