SettingsExperimental⌄

Experimental features

Features still being tried ship behind a switch. An experiment is off until you turn it on. A beta is on for everyone, and its switch stays as a way out.

Switch one on

Open Settings, then Experimental: each feature has a switch there, with what it does and what it costs. The same switches are on the command line, for this machine.

~ $ spool experiments list
~ $ spool experiments on fast-refresh

Either way the choice is written to ~/.spool/config.json, which the canvas reads as it loads.

~/.spool/config.json
{
  "experimental": {
    "fast-refresh": true
  }
}

Element treeelement-tree

The pages rail shows the open frame's elements while you edit, and selects them in the frame.

Trade-off
Its direction is still open. Off, Edit leaves the rail as Select does.
Switch it on
Settings, Experimental, Element tree, or spool experiments on element-tree.

Fast refreshfast-refresh

A saved edit swaps into the open frame, so it keeps its scroll, inputs and state instead of reloading.

cart
Change the cart, then save an edit.
Trade-off
Frames that went hot run React's development build, a little slower until they reload.
Switch it on
Settings, Experimental, Fast refresh, or spool experiments on fast-refresh.

Frame resolutionframe-resolution

Live frames draw their canvases at the size they are shown, so a full canvas holds less memory.

Trade-off
A short blur while a zoom in settles.
Switch it on
Settings, Experimental, Frame resolution, or spool experiments on frame-resolution.

Recordrecord

Record a frame as you play it, and download it as an MP4 clip with its sound, ready to post.

Trade-off
A clip renders after you stop, a few seconds for every second recorded. Frames that use Math.random may play back a little differently.
Switch it on
Settings, Experimental, Record, or spool experiments on record.

Knobsknobsbeta

The Knobs section in the properties rail, for the values a frame declares with `ui.knobs`.

design/frames/cart/frame.tsx
const k = ui.knobs({
  card: {
    radius: { type: "corners", value: 20, min: 0, max: 40 },
  },
});
Trade-off
Not tested thoroughly yet. Off, frames still run on the values in their code.
Switch it off
It is on already. Settings, Experimental, Knobs, or spool experiments off knobs.

When one graduates

A feature that graduates leaves this list and is simply on, and one that did not work is taken out. A config.json that still names either boots exactly as before, so there is nothing to clean up.