Web Start Layout
Overview
Section titled “Overview”WebStartLayout stores how a document should look when it opens. One component on the root node describes the workspace mode, the windows that are open (with position, size and the object each one shows), the camera, which overlays and groups are visible, and whether the simulation runs. The layout is saved inside the model file, so a link to the document always opens the same way, for every viewer and in a fresh browser profile.
It is a pure browser component. It has no Unity counterpart and no signals.
Properties
Section titled “Properties”Add the component to the root node with Add component in the inspector.
General
Section titled “General”| Property | Type | Default | Description |
|---|---|---|---|
| Enabled | boolean | on | Apply this layout when the document opens. Switch it off to keep the layout stored but inactive. |
| Mode | keep, hmi, commissioning, des, planner | keep | Workspace mode to switch to. keep leaves the mode the viewer would choose itself. |
| SimState | keep, play, pause | keep | Simulation state after opening. play starts or resumes, pause pauses. It never resets the simulation. |
| SpeedFactor | number, x | 0 | Simulation speed multiplier. 0 keeps the current speed, otherwise 0.01 to 100. |
| RenderMode | keep, simple, default, toon, raytraced | keep | Render mode. keep leaves it unchanged. |
Camera
Section titled “Camera”| Property | Type | Default | Description |
|---|---|---|---|
| UseCamera | boolean | off | Set the camera pose below. When off, the camera fields are ignored. |
| CameraPosition | x, y, z in mm | 0, 0, 0 | Camera position in model coordinates (Unity convention). |
| CameraTarget | x, y, z in mm | 0, 0, 0 | Point the camera looks at. Must differ from the position. |
| CameraProjection | keep, perspective, orthographic | keep | Projection. keep leaves it unchanged. |
| CameraFov | number, deg | 0 | Vertical field of view. 0 keeps the current value, otherwise 10 to 120. |
| CameraOrthoHeight | number, mm | 0 | Visible height of an orthographic view, zoom included. 0 keeps the current value, otherwise 1 to 10 000 000. |
Windows (Panels)
Section titled “Windows (Panels)”One row per window.
| Field | Type | Default | Description |
|---|---|---|---|
| Kind | text | empty | Which window. Choose from the list of windows the viewer can open, for example the PLC editor, an operator panel or the problems list. An unknown kind produces a warning. |
| Target | reference | none | The object the window shows, for example the PLC program node for the PLC editor. Stored as a reference, so it survives renaming and moving the node. |
| Open | boolean | on | Open the window. Off closes it. |
| X, Y | number, px | 0 | Window position in CSS pixels. |
| W, H | number, px | 0 | Window size in CSS pixels. 0 keeps the default size and applies only the position. |
| Collapsed | boolean | off | Collapse the window to its title bar. |
Visibility
Section titled “Visibility”| Property | Type | Default | Description |
|---|---|---|---|
| Overlays | list | empty | One row per overlay category (tooltips, gizmos, colliders, status, signals, highlights, markers, connections, ribbon-preview, labels, safety-fields, trace-blocked, trace-utilization) with a Visible switch. |
| Groups | list | empty | One row per group name with a Visible switch. |
| GroupIsolation | text | empty | Name of the group to show alone. Empty clears an isolation, including one remembered from an earlier visit. |
| AutoFilters | list | empty | One row per component type with a Hidden switch. |
The inspector shows Capture current layout and Apply now at the top of the component. Field changes do not apply by themselves, so the camera does not jump while you type.
Quick start
Section titled “Quick start”- Open the document in the editor and add Web Start Layout to the root node.
- Arrange the viewer the way it should open: pick the workspace mode, open the windows you want (for example the PLC editor on a program) and drag them into place, move the camera, switch overlays and groups, start or pause the simulation.
- Click Capture current layout in the component. It reads the live state and writes it into the component as a single undoable step. A toast says “Start layout captured. Save the document to keep it.”
- Save the document. Check the result with Apply now or by reopening the document.
Capture can fail in a workspace that cannot be saved, such as an example or a shared link. The button then says so instead of failing silently.
How it applies
Section titled “How it applies”The layout is applied every time the document is opened: by a click, by a link or after a page reload. The model wins over what the browser remembers (window positions, camera start, last mode, overlay and group settings). Afterwards you can rearrange everything freely. Your changes hold until the next open. Applying never writes to the file.
Steps run in a fixed order, each through the normal viewer commands:
- Skipped entries. A window whose kind is not available in this build, a target that no longer resolves,
or an unknown mode is skipped. Each skipped entry appears in the Problems list as
start-layout-skippedwith the reason; everything else is still applied. - Several windows. Position and size are applied first, so a window that opens later appears in place.
- View in the link. A link that names a camera view (
?view=…) keeps that view; the camera of the layout is skipped, everything else is still applied. - Terms of use. Where the viewer asks to accept its terms first, windows and camera are applied behind the dialog, and the simulation starts only after Accept.
- Editor. If you opened the editor on purpose, the layout is not applied. An editor mode that was only
remembered from the last visit is replaced by the layout mode, unless Mode is
keep.
Continuous simulation and DES
Section titled “Continuous simulation and DES”The start layout only starts or pauses the simulation. It never resets it, so the two simulation modes behave as they do for the Play button:
| Continuous simulation | DES (event-driven) | |
|---|---|---|
SimState play | Starts or resumes the simulation. The state is never reset | Starts or resumes the run. It does not call reset, so the run continues from its current time |
SimState pause | Pauses the simulation | Pauses the run |
| A freshly started run | Starts when the layout plays it | Waits paused at time 0 until play is applied or you press Play |
| SpeedFactor | Scales the simulation speed | Controls the run speed. FastForward and end time stay in the DES settings |
| Reset | Never triggered by the layout | Never triggered by the layout. A reset in DES always ends paused at time 0 |
Use SimState = play for a demo that should be running on arrival. For a DES model, leave it on
keep or pause if the viewer should look at the initial state first.
Use cases
Section titled “Use cases”- Demo link. A public demo opens in commissioning mode, close to the machine, with the PLC editor on the main program and the operator panel open, and the machine running.
- Customer handover. The model opens on the overview camera with only the relevant groups visible.
- Training. Statistics and the problems list open next to the 3D view; the simulation starts paused.
- Review. An orthographic top view with colliders hidden, the same on every machine.
- Agent workflows. An AI assistant sets the layout with the same commands and captures the result.
Commands
Section titled “Commands”The layout is applied and captured through registered commands, so scripts and AI agents can use them too.
Details are in the MCP help topic commands (web_help("commands")).
| Command | Purpose |
|---|---|
layout.apply | Apply the layout of the main document now. |
layout.capture | Read the live state and write it into the component as one undo step. |
camera.setPose, camera.getPose | Set or read the user camera. |
ui.panel, ui.panel.open, ui.panel.close | Position, open and close windows. |
view.overlay, view.autoFilter, group.isolate, view.renderMode | Visibility and render mode. |