The Skills Editor

UI reference for the Skills Editor: the top bar, the simulator panel, the Inputs, Code and Metadata tabs, and the run controls.

The Skills Editor is where you open one skill, edit its code and metadata, fill in its inputs, and run it on its own against a world. It is the screen for practising a single skill in isolation, without a workflow around it.

This page describes the screen. To learn how to write a skill, read Authoring a Skill.

How you get here

Two routes:

  • The Skills Editor entry in the sidebar.
  • The Practice Skill tile on the Home screen.

Both land on the same screen. The page heading reads Skills Editor.

The top bar

Everything that selects what you are working on, and everything that runs it, lives in one bar across the top.

Skill

A searchable dropdown labelled Skill. It lists the skills in the project by name, sorted alphabetically. While the list is loading the dropdown is disabled and reads Loading...; once loaded, the empty state reads Select skill. Typing filters the list. The search box reads Search skills... and, when nothing matches, the dropdown shows No skills found.

The last entry in the list is Add New Skill, shown in blue with a plus icon. Choosing it replaces the dropdown with a text box (placeholder Enter skill name...) plus a Save and a Cancel button. Save stays disabled until you type a name. It creates the skill from blank templates and selects it. Cancel puts the dropdown back.

If loading a skill fails, a red message appears to the right of the dropdown with the error text.

World

A searchable dropdown labelled World listing the worlds in the project by name, with a Load button beside it. The dropdown reads Loading... while the list is fetched and Select world... when nothing is chosen; the search box reads Search worlds... and the empty state reads No worlds available. A world is preselected for you when the list arrives.

Choosing a world in the dropdown does not load it. Load does. It clears whatever is currently in the scene, loads the selected world, and refreshes the list of objects that the Inputs tab offers. Both the dropdown and Load are disabled while a run is in progress.

Execution world

A dropdown showing where the skill will run.

⚠️

In the cloud this dropdown offers Simulation only. The Real Hardware option is not rendered at all, the value is forced to Simulation, and the dropdown itself is disabled. An information icon beside it carries the tooltip "Cloud runs simulation only". A local install renders both options.

While a run is in progress the dropdown is disabled everywhere, with the tooltip "Cannot change execution world during active execution".

Reset

Reset returns the arms to their watching positions. It does not restore a saved world state and it does not reload the selected world, so objects you have moved stay where they are.

Reset is disabled until you have selected a skill. It is also disabled while a reset is already running.

⚠️

Reset moves the arms. It is a motion command, not a safety check, and nothing on this screen tells you whether a machine is clear to move.

Reset Variables

Reset Variables clears the shared variable store that skills read and write between runs, so values left behind by an earlier run do not leak into the next one. While it is working the button label changes to Resetting…. It is disabled while a run is in progress.

Sim, Pause, Stop

The run controls swap in and out depending on what is happening:

  • Sim is shown when nothing is running. It runs the selected skill with the values from the Inputs tab. It is disabled until you have selected a skill and that skill has finished loading. If the run fails to start you get an alert with the error.
  • Pause appears in amber while the skill is running.
  • While the skill is paused, one or more resume buttons appear. The default is a green Resume. A skill can advertise its own named resume actions, and each one renders as its own amber button carrying that name.
  • Stop appears in red for as long as the skill is running or paused, and cancels the run.

Panel layout

Below the top bar the screen is split into two panels with a draggable divider between them. Drag the divider to change the split.

Left: Simulator

Headed Simulator, with the tooltip "Real-time preview of skill execution in the selected world". At the top right of the panel is a gizmo toggle that reads Hide Gizmos or Show Gizmos depending on its current state, and turns the on-screen frame markers off and on.

Most of the panel is the live 3D viewport, showing the world the skill is executing against. See The Viser 3D Viewport for how to move the camera and what the viewport shows while it is connecting.

ℹ️

There is a Reset View button under the viewport. In the current build it has no behaviour attached and clicking it does nothing. Use the viewport's own camera controls instead.

Right: the editor

The right panel is a set of three tabs.

The tabs

The tab strip holds Inputs, Code, and Metadata. Selecting a skill switches you to Inputs; with no skill selected you sit on Code. The Inputs tab is disabled until a skill is selected and its metadata has loaded.

Inputs

The values passed to the skill when you press Sim. The form is generated from the skill's parameters, so it changes completely when you pick a different skill.

Each parameter renders as its name, a red asterisk if it is required, its description underneath if it has one, and a control chosen by its type:

  • object: a dropdown of the objects in the currently loaded world, with the placeholder Select object.... Workspace boundaries and the table are filtered out of this list, so they never appear as choices.
  • string: a single-line text box, with the parameter's default shown as placeholder text.
  • float: a number box accepting decimals.
  • int: a number box stepping in whole numbers.
  • boolean: a checkbox, with the name to its right.
  • Anything else: a text box, with the type shown in brackets after the parameter name.

Parameters that declare a default arrive pre-filled with it.

If the selected skill takes no parameters, the tab shows a single line: No parameters defined for this skill.

The object dropdown lists the world that is currently loaded. If it is empty or stale, press Load in the top bar.

Code

A Python editor over the skill's code, with line numbers, word wrap, and a minimap.

Metadata

A YAML editor over the skill's metadata, laid out the same way. This is the description, the parameter declarations, and the rest of the skill's definition. See Skills metadata.yaml for what belongs in it.

Saving

Code and Metadata each have their own save button in a strip above the editor: Save Code and Save Metadata. Each saves only its own file. While a save is in flight the label reads Saving....

Both buttons are disabled until a skill is selected, and stay disabled in a read-only reference project.

The strip also carries a one-line banner reporting the outcome of the last save. It shows one of three things:

  • Green. The save succeeded and the change was committed to your project. This banner clears itself after about three seconds.
  • Amber. A warning. The edit was saved, but it was not committed to the project, so it exists only in this session and will not reach your other tools. The banner text carries the reason. It stays on screen until you dismiss it.
  • Red. The save failed. Nothing was written. The banner text carries the error, and it stays until you dismiss it.

Amber and red banners have a close control at the right end. Starting another save clears whichever banner is showing.

⚠️

Do not treat an amber banner as a save. Your work is not in the project until you get green. Fix the reason and save again.

Reviewing a proposed change

If a proposed edit is pending for the file you are looking at, the editor switches from the normal view to a side-by-side comparison of the current file and the proposed version. Above it, a strip headed "Review Changes by Section:" lists the change as numbered chunks (Hunk 1, Hunk 2, and so on), each with a tick or cross you click to include or exclude it. All chunks start included, and the comparison updates as you toggle them.

Under the comparison the footer reads "Review the changes above. Click Accept to apply them." Accept applies the included chunks into the editor and shows how many it took (for example Accept (2/3 hunks)). Cancel discards the proposal and returns the editor to normal. Accepting puts the result in the editor buffer, so you still need Save Code or Save Metadata to keep it.

The comparison is editable, so you can adjust the proposed text before accepting it.

Next


Did this page help you?