Scientific ML Studio
Learn/ Studio Tour/ 2.1
2.1 · Working on the canvas

Add, move and remove blocks

Drag from the palette, drag to move, press Delete to remove. Plus the keyboard routes, the limits, and what a block's one-line summary tells you.

4 min read #lab #canvas #blocks

A block is one decision in your problem. This page is about the mechanics of handling them; what each block asks is in chapter 3.

Adding a block

There are three ways, and they all do the same thing.

  1. Drag a block from the palette and drop it where you want it on the canvas.
  2. Click it in the palette. It lands near the top left of the part of the canvas you are looking at.
  3. Keyboard: tab to a block in the palette and press Enter.

A new block is selected straight away, so its settings are already open in the panel on the right. You can place the same type more than once. You need that for conditions: one BC block per boundary.

Your screenshot · dragging the Domain block from the palette onto an empty canvas.

Anatomy of a block

Each block has a coloured header with a short tag and its name (DOM Domain, PDE PDE, NET Network, and so on), a body with inputs on the left and outputs on the right, and a small × at the right of the header.

In the middle of the body, a one-line summary reminds you how the block is set, so you can read the canvas without opening every panel:

Block The summary shows Example
Domain geometry, number of boundaries, whether time is on Rectangle · 4 boundaries
PDE the equation and its class poisson (elliptic)
Boundary condition the condition type dirichlet
Initial condition whether a velocity is included value + velocity
Network the hidden layers, then the outputs 40, 40, 40, 40 → 1
Loss the weighting scheme fixed weights
Optimiser the optimiser, or both stages adam → lbfgs
Train the checkpoint file name model.pt

When there is more than one BC or IC block, the studio numbers them in the order you placed them: BC 1, BC 2, and so on. The same numbers appear on their output ports, and hovering over a BC's output tells you which Domain boundary it is attached to (or that it is not attached yet).

Moving a block

Press on the block and drag it. Its wires follow. With a block selected you can also nudge it with the arrow keys: 4 pixels at a time, or 20 with Shift. Block positions have no meaning for the result. Arrange the canvas so the left-to-right order reads the way the problem flows: Domain at the left, Train and the outputs at the right.

Moving a block cannot be undone

Undo remembers adding and removing blocks and wires, but not positions. If a drag goes wrong, drag it back.

Removing a block

Click the × in the block's header, or select the block and press Delete (or Backspace). The block goes, and so does every wire attached to it. Ctrl+Z brings it back.

Selecting, panning, zooming

Click a block to select it (a highlighted outline, and its settings in the panel). Click empty canvas to deselect. Drag empty canvas to pan. The − / 100% / + buttons in the top bar zoom between 40% and 180%.

Limits

A notebook holds at most 60 blocks and 150 wires. Reach either and the studio says so in a short message and refuses to add more. A real problem uses about ten blocks, so you are unlikely to meet the limit.

A block that is not wired in is a note

You can leave blocks on the canvas that are not connected to the Train block. They do nothing: the Lab ignores them and the Graph check tells you which ones (Not wired into the Train block, so ignored: …). That is useful. Park an alternative network or a second set of conditions on the side while you experiment, and wire in whichever you want to try.

Next: wiring blocks together.