Skip to content

Test patterns ​

LED.FYI ships 13 built-in, pixel-faithful test patterns for calibration, signal verification, and on-wall wiring documentation: a direct port of the V1 renderers. Pick one per surface: set Source to Test pattern, then choose from the Pattern dropdown (see the surface form). Animated patterns run live in every view, including the Live Output window, so you can drive real hardware with them.

Switching patterns seeds that pattern's defaults; each pattern's own controls appear below the picker as Pattern options (or, for Data path, a full set of sections).

The 13 patterns at a glance ​

PatternWhat it's forOptions
Solid colorUniform brightness, color, and dead-pixel checks.Color
SMPTE barsSMPTE RP 219-2002 HD color bars: signal chain and color verification.Speed, Diagonal scroll
Scrolling (horizontal)Moving stripes: motion, tearing, and refresh checks.Speed
Scrolling (vertical)Same, scrolling vertically.Speed
Scrolling (diagonal)45° stripes: exercises both axes and panel seams at once.Speed
GridAlignment: a white grid with a red center crosshair and circle.None
GradientAnimated full-spectrum sweep: banding and bit-depth checks.Speed
RainbowThe whole colour wheel across the entire surface, in four styles: rings from the centre, a horizontal or vertical sweep, or a ring of seven soft colour blobs.Style, Blend, Speed, Panel borders
Surface infoIdentifies the surface on the wall: name, size, aspect, alignment geometry.Grid size
CheckerboardTwo-color checkerboard: 1:1 pixel mapping and scaling-artifact checks.Cell size, colors, borders
Chroma subsamplingReveals 4:2:2/4:2:0 chroma subsampling anywhere in the signal path.None
Data pathThe "panel map": a panel grid with data-string routing arrows, port labels, and info overlays. Fully configurable.~35 controls
Power pathThe same grid tracing the power daisy-chains, colored by circuit.none exposed yet

Pattern options, pattern by pattern ​

  • Solid color: one Color picker. Default #ff0000.

  • SMPTE bars: full RP 219-2002 HD bars: 75%/100% BT.709 values, the chroma strip, Y-ramp, and PLUGE block. Diagonal scroll (default off) sets the whole pattern drifting diagonally at Speed (default 0.05), a moving version that also catches frame drops.

  • Scrolling (horizontal / vertical / diagonal): white stripes over black, stripe width fixed at 20 px (30 px for diagonal). Speed defaults to 0.03. Set Speed to 0 to freeze.

  • Grid: white lines every 50 px on black, plus a red crosshair and circle at center. No options.

  • Gradient: an animated full-spectrum hue sweep. Speed defaults to 0.01.

  • Rainbow: the colour wheel over the entire surface, red through yellow, green, cyan and blue to magenta. Pick a Style:

    • Radial (from center) (default): rings from the centre of the surface out to its corners, so they cover it completely whatever its shape. The rings are true circles: if they look like ovals on the wall, the picture is being stretched somewhere in the chain.
    • Horizontal sweep / Vertical sweep: one sweep left to right, or top to bottom.
    • Color ring: seven soft blobs of colour (red, orange, yellow, green, blue, indigo, violet) set equally spaced in a ring out near the edges of the screen, red at the top and on round clockwise, melting into one another. The middle of the surface is a soft blur of all seven. The colours are mixed, never faded, so the whole surface stays at even strength: no dark area and no bright spot anywhere, not in the middle, not in the corners. The ring is fitted to the surface: a circle on a square wall, stretching into a wider oval the wider the wall gets and a taller one the taller it gets. Blend (0.00–1.00, default 0.65) sets how far the blobs melt together: lower gives firmer-edged blobs and a smaller blurred middle, higher melts everything into a softer, more pastel wash.

    Every style stands still by default (Speed 0). Raise Speed to set it moving: the rings flow outward, the sweeps scroll, the blobs travel round their ring. In a desktop app from before this pattern existed, a Rainbow surface opens as the Gradient pattern instead; the project still opens normally.

    On a surface linked to a screen, every style also draws a 1 px line just inside the edge of each panel, so the cabinet seams read on the wall over a pattern that otherwise has no panel structure. The line covers exactly the panel's own outermost pixels: two neighbouring panels show a 2 px seam, one pixel each. Panel borders (default on) turns it off, and Color (default black) changes it; an unlinked surface has no panels, so it shows neither control.

  • Surface info: a labeled alignment slate: grid, outer border, corner-to-corner diagonals, concentric circles, red center crosshair, plus the surface's name, W x H px, aspect ratio, corner pixel coordinates, and the grid pitch. One option: Grid size (default 64 px).

  • Checkerboard: two-color checkerboard with optional per-cell borders. Cell W×H (default 64×64), Color 1 / Color 2 (default #bb6158 / #428bca), Border width (default 1 px; set 0 to remove), and (when the border is above zero) Border 1 / Border 2 colors (default #333333 / #AAAAAA).

  • Chroma subsampling: three bands of 1-px alternating color lines (red/cyan, blue/yellow, magenta/green) with solid reference blocks and text. On a true 4:4:4 path the fine lines stay crisp; fringing or blur means something in the chain is subsampling chroma. No options.

The Data path pattern (full reference) ​

Data path draws a panel grid with the data-string routing over it: arrows tracing each string, a white circle at each string start, and optional coordinate and info overlays. Unlinked, it draws a configurable virtual grid; linked to a screen it draws the screen's real wiring. Every control lives in its own Inspector section, directly under the Surface section, and every edit is one undoable step.

Pattern grid ​

ControlWhat it doesDefault
GridPanel columns × rows of the virtual grid.8 × 4
Panel pxPixels per panel, W×H (min 8).128 × 128

Both are disabled when the surface is linked: Linked to a screen: grid and panel pixels follow the real wall.

Background ​

ControlWhat it doesDefault
ModeHow panel cells fill: Checkerboard · Solid · Gradient.Checkerboard
Color byWhich panels share one colour scheme: Whole screen · Processor · Video input · Port · Each panel; see below.Whole screen
Color 1 / Color 2The two cell colors. Color 2 is hidden where it has no say (Solid, and a Gradient by Port). With Color by splitting the wall, a grid of colour tiles takes their place; see below.per screen; see below
Opacity 1 / Opacity 2Independent alpha per color (Opacity 2 hidden in Solid).1.00 / 1.00

Color by: see which processor, input or port drives each panel ​

On a big wall split across several processors or video signals, Color by paints each part of the wall in its own colours, so the split is visible on the wall itself, and in the 2D views, the 3D view, Live output and the exported pictures, which all draw the same pattern.

Color byEach of these gets its own colours
Whole screenNothing is split: the whole wall shares Color 1 / Color 2. This is how the pattern has always looked.
ProcessorEach processor driving the screen.
Video inputEach video input of each processor: the four quadrants of an 8K wall fed by four 4K inputs, for example.
PortEach data port's string of panels.
Each panelEvery cabinet restarts the fade (Gradient only; it means nothing to a flat Checkerboard / Solid).

The colours start out automatic, and every one of them is yours to change. With Color by set to Processor, Video input or Port, the Color 1 / Color 2 pickers give way to a grid of colour tiles, one per processor, input or port, each showing that group's colours over a short name (P2 for processor 2, P1·3 for processor 1's third input, 1-A3 for a port; hover for the full name). Click a tile and its colour pickers appear just below the grid, so there is only ever one pair of pickers on screen however many groups the wall has; click the tile again to put them away. Reset colors puts the automatic colours back for the current Color by. Colours you set on a tile belong to that one surface, and they aren't part of My defaults; every new screen starts from the automatic colours.

The automatic colours: the first processor (or input, or port) wears the surface's own Color 1 / Color 2, and every one after it wears that same pair turned around the colour wheel, the same rotation that keeps successive screens apart. A processor keeps its place in the colour series from one screen to the next: it follows its number in the project, not where it happens to sit on a wall, so screens that share the same Color 1 / Color 2 show each processor in the same colours, and a port's colours follow the port, so re-patching the wiring moves the colour with it. Each Color by keeps its own set, so colours you gave the processors are still there after a look at Port and back. A panel that straddles two video inputs is coloured by the input its centre is on. Anything that needs the real wall (processors, inputs) needs a linked screen; on an unlinked surface only Port and Each panel have anything to split.

How each Mode uses the split:

  • Checkerboard / Solid: each group is filled with its own colour pair (or its own single colour).
  • Gradient: a smooth fade from Color 1 to Color 2 running corner to corner across each group, so it carries across the seams between panels. A cabinet mapped to the wrong place shows up as a break in the fade. By Port it works differently: each port gets one colour, bright at the panel the cable starts on and fading dark toward the end of the string, so you can read both which port a panel is on and which way the cable runs.

Panels that are turned off keep their red X, and a gap in the wall with no panel in it stays black.

Opening the project in an older desktop app

A desktop app from before this feature ignores Color by. It opens the project normally and draws the plain whole-screen background. Saving from that older app drops the setting.

A different colour pair per screen ​

Every new screen's Data path pattern starts on its own pair of checkerboard colours, so on a multi-screen project you can tell at a glance which wall you're looking at: in the 2D Mapping view, in Sheets, and on the wall itself. The first screen gets #bb6158 / #428bca, the second #edd15b / #27ae60, and each screen after that takes the next pair in a rotation designed to keep successive screens as far apart in hue as possible.

The colours are only a starting point: change either one on any surface and your choice sticks.

Make your look the starting point: My defaults ​

If you always end up turning the same things on (borders at a certain width, coordinates in a particular corner, the info overlay off), you can save that once instead of redoing it per screen. Set a Data path pattern up the way you like it, then use the My defaults row:

ButtonWhat it does
Save as my defaultsCaptures this pattern's look and makes it the starting point for every new screen from now
Reset to app defaultsForgets your saved look; new screens go back to the factory starting point

Once saved, the row confirms it with "New screens start from your saved defaults."

What's captured is the look, not the screen. Border settings, coordinate readouts, the info overlay, the scaling helpers, the data-path display and the background mode, Color by and opacities all carry over. What deliberately does not carry over is anything identifying a particular screen (the grid size and that per-screen colour pair above), so every new screen still gets its own distinguishable colours on top of your look.

Follows your account

Your saved look is one of your preferences: it's kept in this browser, and when you're signed in it follows your account, so it's there on your laptop too, unlike the 3D display settings, which stay on one machine. Reset all preferences in the Preferences dialog forgets it.

Borders ​

ControlWhat it doesDefault
Panel bordersLines between panels, with width (0–10 px) and color.on, 1 px, #333333
Screen borderOuter border around the grid, width (0–20 px) and color.on, 2 px, #ffffff

Coordinates ​

Per-panel grid-position labels (the B,3 in each cell).

ControlWhat it doesDefault
ShowDraw the labels at all.on
StyleA,1 (letter, number) · 1,A · 1,1 (numbers) · A,A (letters).A,1
PositionCenter · Top left · Top right · Bottom left · Bottom right.Top right
DelimiterSeparator between the two parts, with Char: Comma · Period · Space · None.off (Char: Comma)
ColorLabel color.#ffffff
SizeFont scale as a fraction of the panel size, 0.1–0.6.0.25

Info overlay ​

Centered readouts over the grid.

ControlWhat it doesDefault
NameThe surface's name.on
PositionA (x, y) W × H readout of the surface placement's pixel origin and size on the output. Updates live as you drag the placement around the raster in the Video workbench.off
SpecsThe specs line, e.g. Panels: 12×7 (84) · 2304×1344 px · 12:7 (1.71).on
PhysicalThe real-world size. Shows for a screen-linked surface, in your unit preference (e.g. 3.50 m × 2.25 m or 11′ 5.8″ × 7′ 4.6″).off
TextOverlay text color.#ffffff
BackdropThe box color behind the text.#000000
Backdrop αBox opacity, 0–1.0.70
Font scaleText scale, 0.5–2.1.00

Scaling helpers ​

ControlWhat it doesDefault
CircleConcentric-circle scaling overlay.off
DiagonalsCorner-to-corner diagonals.off
ColorColor for both (shown when either is on).#888888

Data path ​

The routing visualization itself:

The Data path section: routing pattern, start corner, direction, color, width, and labels

ControlWhat it doesDefault
ShowDraw the routing arrows and string-start circles at all.on
PatternVirtual grid only (hidden when linked): routing shape: U-Turn (serpentine: each row turns back) · Zig-zag (every row runs the same way) · Isolated. The same names as the screen's wiring path picker. A linked screen uses its real wiring instead.U-Turn
StartVirtual grid only (hidden when linked): which corner the path starts in: Top left · Top right · Bottom left · Bottom right. A linked screen uses its real wiring instead.Top left
DirectionVirtual grid only (hidden when linked): Horizontal (row-wise) or Vertical (column-wise). A linked screen uses its real wiring instead.Horizontal
ColorArrow color.#000000
WidthArrow thickness, 1–10, scaled to the panel size.2
NumbersWhite circles at each string start.on
LabelsShown while Numbers is on. What the circles say: Port labels (A1…) (the topology port label, falling back to the string's project-wide S-number when it has no port) or Sequential (1, 2, 3), which always numbers, using that same S-number so the wall matches the paperwork.Port labels
Px/stringVirtual grid only (hidden when linked): a new string starts whenever the running pixel total would exceed this, so even the unlinked pattern shows realistic string breaks.650,000

These colors are the pattern's own

The on-wall data/power pattern colors are deliberately independent of the app-wide wiring color preference; that preference governs the wiring sheet exports, not this pattern.

Linked screens: real wiring ​

Link the surface to a screen (see Linking surfaces to screens) and the pattern stops drawing a synthetic grid and starts drawing the screen:

A linked data-path pattern showing real wiring: serpentine arrows, port-label circles, and a dashed backup circle at the string end

  • The grid takes the screen's real panel counts and pixel sizes (mixed panel sizes per row/column are honored), and the Pattern grid section becomes read-only.
  • The routing follows the screen's real data strings, with each start circle carrying the real port label (A1, B2, …).
  • Strings with redundancy show a dashed circle at the far end carrying the backup port's label.
  • A run that carries on onto another screen shows a link flag rather than a plain start circle: pointed on the panel where the cable leaves, notched where it arrives, each carrying the run's own cable label, so an installer can see the two halves are one cable.
  • Disabled panels draw black with a red X.
  • On a screen spanning several processors or canvases, runs are grouped per canvas; the path never jumps across a canvas boundary.
  • The Pattern, Start, and Direction controls disappear; the routing shape comes from the screen's own wiring path, not the pattern.
  • Px/string disappears; string breaks come from the real wiring engine.

This makes a linked data-path surface the on-wall equivalent of your wiring paperwork: the crew sees the panel map on the LED itself.

The Power path pattern ​

Power path reuses the same panel-grid renderer but traces the power daisy-chains instead of data:

  • Each run is colored by its circuit, cycling a fixed 12-color high-contrast palette.
  • Arrows are black; the start circles carry the circuit label (e.g. C7).
  • Linked to a screen, it shows the screen's real power chains, circuits, and disabled panels. Unlinked, the virtual grid chains panels in path order and approximates circuits with the pixel-per-string breaks.

No options form yet

Power path currently exposes no controls in the Inspector; it renders with the defaults (an 8×4 grid of 128×128-px panels, circuit-colored). The project format already stores the full option set, so saved configurations are ready for when the form lands.

Pattern resolution & how patterns fill the surface ​

Each pattern has an intrinsic resolution: Data path and Power path derive theirs from the grid (columns × panel px wide, rows × panel px high); every other pattern is authored at 1920×1080.

Test patterns always fill the surface buffer (no letterboxing), with X and Y scaled independently. So an unlinked data-path grid whose aspect differs from the buffer stretches its cells. If you need pixel-true 1:1 cells, link the surface to a screen: the buffer then matches the screen's footprint exactly and nothing stretches.

LED.FYI · Make every pixel count.