0.2 Series

releases changelog

The 0.2 line is the first showcade release that changes what you can build. Where 0.1 gave the harness a version to point at, 0.2 is about the table itself: more room above the playfield, light you can aim, a backglass that shows something, and an editor that lets you keep working on what you have already drawn.

v0.2.0 “Mutoscope” — 2026-10-04

Table file format

minor moves 3 → 5; version stays 1. Every table opens in every build. An older build that meets a table using the two new things that moved it degrades only those, and keeps them intact if you save from there:

  • a spotlight draws as an ordinary flush insert at the same spot, with its aim and cone angle preserved (the 3 → 4 step);
  • a wall or ramp on a layer plays exactly as before, just ungrouped and not lockable, and its layer assignment survives a save (the 4 → 5 step).

Nothing you have already built changes when you open it in this release.

Building upward

There is room for a second storey. The playfield glass moved from 1.4 to 3.0 (7cm to 15cm at table scale), so a track centreline can be authored up to 2.46 and a habitrail up to 2.095 — enough for two stacked levels with the ball clearing the roof of the one below. Before, one habitrail used up the only elevated level there was. The drafting plane, the height field and the “too tall” errors follow the new ceiling. A ball that leaves a high ramp sideways is still turned back rather than lost: the cabinet is glass all the way up.

Ramps are editable after the fact. A track used to be drawn in one sitting. Now:

  • click a ramp to select it, without picking up the track tool first (where a ramp flies over a device, the device still wins the click unless you flip ⚙ Menu ▸ Preferences ▸ Tracks pick over devices);
  • Enter on a selected ramp resumes drafting from its end, Tab swaps which end you are growing from;
  • + Insert node here on the right-click menu, or I over the ribbon, adds a node mid-span without reshaping the curve;
  • Delete removes the whole track, Shift+Delete just the picked node — a track will not let you trim it below the minimum it can build.

You can look at the table from an angle. The editor only ever looked straight down, which made height impossible to grab. Drag the compass in the bottom-left corner, or shift-space-drag on the table; the numpad jumps to named views. Picking up the Track tool tilts to a working angle and puts the view back when you leave, and a selected node drops a thread to the playfield so you can still read where it sits. The value you are scrubbing — a node’s bank, flare or taper, a wall anchor’s reach — now sits on the handle you are dragging.

Laying out the table

Spotlights. A new Spotlight tool tile (E) hangs an open cone fixture above the table with a visible beam and a real pool of light underneath. Set its height, cone and tilt in the inspector; tilt it and the beam leans across the playfield and lights what it actually points at. It is a light device like any other, so a scoring rule or a lightshow frame can drive it. Four per table cast real light; more still hang and glow, and the diagnostics panel names the ones that are not lighting anything.

Layers protect walls and ramps too. A locked layer used to stop devices from moving while a wall or track on the same layer could still be dragged, reshaped, renamed or deleted. Walls and ramps now go on layers the same way devices do, and a locked layer locks everything on it.

Copy, cut, paste and duplicate work on walls and tracks, not just devices. A copied wall keeps its exact shape; a copied track brings its profile, banking and switches — renamed, so the copy scores on its own. A whole paste lands as one step, so one undo takes it back.

Drag a tool straight onto the playfield. Press a toolbox tile and drag; a marker shows exactly where the device will land, and nothing is placed if you let go off the playfield. The two-click way still works and shows the same marker.

The backglass

It lights up. The dot-matrix display above the playfield used to sit dark. Roll the ball through the spinner on the demo table and it shows the CADE attract graphic in amber. Tables you author get the same: name an image in a display rule — one that ships with the table or one from your asset library — and it is loaded and shown.

It reacts to the game, not just to switches. A display show’s trigger can now name a session event — system.ball.start, system.ball.end, system.game.start, system.game.end — anywhere you would write a trigger today. The demo table uses one: drain a ball and BALL OVER shows for two seconds.

There is an editor for it. DMD in the menu’s Author section is where a show is made: built on a Stage from layers and elements — text, images, animations and live values like the score — and laid out on a Timeline you can scrub. Drag a layer or element to restack it and edit it in the Details panel. Double-click an image to open the sprite editor and paint it in the display’s own shades, frame by frame with onion skinning, or import a GIF, with a preview of exactly how cade will dither it onto the panel. Effects are built as a node graph, auditioned in place, and baked into an animation any show can use, and a show’s trigger is picked from a browser of the table’s events.

Writing a table’s source

A Source page, across the whole window. A Source link in the top bar opens the code editor full-size: line numbers, search, folding, cade’s own errors in the gutter as you type, Ctrl+S to save. Undo and Redo above it step through saves, separate from Ctrl+Z inside the text.

A table’s source is eight files, with a tab for each. cade now keeps a table as eight per-domain files — machine, scoring, lightshow, sources, synths, mix, selection and dmd — and unifies them when it parses, so nothing about how a table plays has changed. The Source page has a tab per file plus a read-only composite tab showing the table as cade reads it. Saving is per file, and switching away from a tab with unsaved edits is refused rather than discarding them. Each tab carries cade’s count of the problems in that file; a blank tab means nothing to report about that file, not that it is proven clean — the list under the editor stays the one to read.

The rules editor’s Source tab is a real editor too, with the same line numbers, search, undo history and language-aware folding.

Colours are picked on the node. A Gradient or Solid node in the lightshow editor opens a colour picker right under its capsule, with the node’s preview following every change live.

Scoring rules

Two rules can score from the same switch. Adding a rule on a switch that another rule already scores from used to be refused with a “duplicate trigger” error — so duplicating a rule with Ctrl+D failed every time. Now both rules score, in priority order, and Ctrl+D gives you a working copy to change. If your table relied on priority to make one rule win over another on the same switch, remove the one you no longer want.

Write a rule from the device it is about — an early version, still being worked on. Right-click a device in the object editor and choose Rules…, or open a row of its “Rules involving selection” list, and a dialog shows every rule that device takes part in. Build one with conditions on the left — joined with AND or OR, and dragged into order — and actions on the right, while the rule draws itself as a graph underneath; attach a sound clip or synth voice and hear the ones it already plays. A Modes dialog sits beside it for the modes those rules start and stop. This is the first cut and it is being iterated on, so expect it to change between releases — and use ✉ Feedback, bottom right, to tell us where it gets in your way.

Working across windows

Showcade runs each page as its own window, and edits now travel between them more completely:

  • a device you delete in the source editor leaves the playfield in the window showing the table, as an ordinary undoable edit (a piece on a locked layer is left alone, and something you placed but have not saved yet is never touched by another window’s save);
  • a rule or mode edited in its dialog no longer vanishes when you save in another window — both dialogs now announce their edits like every other surface.

Fixes worth knowing

  • The spinner on the demo table scores again. Once the backglass learned to show the attract graphic, the spinner that triggers it had quietly stopped paying anything. It pays 100 a spin again.
  • The backglass no longer covers your score in a narrow window. Below about 1100 pixels wide, the display sat on top of the engine panel’s Player and Score readouts. It now keeps clear of that panel, and stays put wherever it already fitted or wherever you dragged it.
  • The replay Timeline plays the whole game. Play, speed and auto-pause were greyed out there; they now work, and because the Timeline lays every ball turn on one track, it is the view that can run a whole session end to end.

Getting it

Showcade runs in the browser at show.cade.run. There is nothing to download — the site is the release. If you want a binary, that is the Cade Runtime — see Downloads.