Skip to content

Attract Matrix

The attract_matrix display mode renders animated matrix-style rain columns with green-fade trails, inspired by the film's iconic digital rain effect.

Features

  • Animated matrix rain columns with randomized speed and trail length
  • Optional radial gradient background on color panels
  • Configurable density, speed range, and trail length
  • "CYBERHUD" splash text at cycle peak
  • E-ink static mode (frozen single frame)
  • Panel-aware: color TFT, monochrome OLED, and e-ink

Options

Key Type Description Default Allowed Values
min_speed float Minimum column scroll speed in cells per second controlling the slowest falling columns 1.5 any valid float (0.1–10.0 recommended)
max_speed float Maximum column scroll speed in cells per second controlling the fastest falling columns 6 any valid float (must be greater than min_speed)
trail_length int Number of trailing cells behind the lead character controlling the fade tail length 16 any valid int (1–64 recommended)
density float Fraction of active columns on the panel from 0.1 sparse to 1.0 fully dense rain 1.0 any valid float (0.1–1.0)
show_background bool Enable radial gradient background on color panels adding depth behind the rain columns false true, false

CLI Examples

Activate the attract_matrix mode on the main region:

cyberhudctl display set 0 attract_matrix

Query the current policy values:

cyberhudctl display attract_matrix

Increase density for a denser rain effect:

cyberhudctl display attract_matrix density=0.8

Set faster column speeds with longer trails:

cyberhudctl display attract_matrix min_speed=3.0 max_speed=8.0 trail_length=24

Enable the radial gradient background on color panels:

cyberhudctl display attract_matrix show_background=true

Panel Compatibility

  • Color TFT — full green-fade rain columns with optional radial gradient background, smooth animation at configurable speed and density.
  • Monochrome OLED — rain columns render as white-on-black with intensity-based trail fade; the show_background option has no visible effect since gradient color information is absent.
  • E-Ink — a single frozen frame of matrix rain is composed and held statically, avoiding ghosting from partial refreshes. Animation speed options have no visible effect on e-ink panels.

E-Ink Behavior

On e-ink panels, the matrix rain mode produces a static snapshot of falling columns rather than continuous animation. The frozen frame captures column positions and trail fade at a single instant, suitable for slow-refresh displays. The min_speed, max_speed, and density options still influence the composition of the frozen frame (column spacing and trail length), but no motion occurs after the initial render.

Snapshots

Color

color-8x16 8x16
8x16
color-16x8 16x8
16x8
color-80x160 80x160
80x160
color-slow-104x212 104x212
104x212
color-slow-122x250 122x250
122x250
color-128x128 128x128
128x128
color-128x160 128x160
128x160
color-slow-128x296 128x296
128x296
color-135x240 135x240
135x240
color-160x80 160x80
160x80
color-160x128 160x128
160x128
color-slow-176x264 176x264
176x264
color-slow-200x200 200x200
200x200
color-slow-212x104 212x104
212x104
color-240x135 240x135
240x135
color-240x240 240x240
240x240
color-240x320 240x320
240x320
color-slow-250x122 250x122
250x122
color-slow-264x176 264x176
264x176
color-slow-296x128 296x128
296x128
color-slow-300x400 300x400
300x400
color-320x240 320x240
320x240
color-320x480 320x480
320x480
color-slow-400x300 400x300
400x300
color-480x320 480x320
480x320
color-480x800 480x800
480x800
color-slow-480x800 480x800
480x800
color-800x480 800x480
800x480
color-slow-800x480 800x480
800x480

Grayscale

grayscale-fast-8x16 8x16
8x16
grayscale-fast-16x8 16x8
16x8
grayscale-fast-80x160 80x160
80x160
grayscale-slow-104x212 104x212
104x212
grayscale-slow-122x250 122x250
122x250
grayscale-fast-128x128 128x128
128x128
grayscale-fast-128x160 128x160
128x160
grayscale-slow-128x296 128x296
128x296
grayscale-fast-135x240 135x240
135x240
grayscale-fast-160x80 160x80
160x80
grayscale-fast-160x128 160x128
160x128
grayscale-slow-176x264 176x264
176x264
grayscale-slow-200x200 200x200
200x200
grayscale-slow-212x104 212x104
212x104
grayscale-fast-240x135 240x135
240x135
grayscale-fast-240x240 240x240
240x240
grayscale-fast-240x320 240x320
240x320
grayscale-slow-250x122 250x122
250x122
grayscale-slow-264x176 264x176
264x176
grayscale-slow-296x128 296x128
296x128
grayscale-slow-300x400 300x400
300x400
grayscale-fast-320x240 320x240
320x240
grayscale-fast-320x480 320x480
320x480
grayscale-slow-400x300 400x300
400x300
grayscale-fast-480x320 480x320
480x320
grayscale-fast-480x800 480x800
480x800
grayscale-slow-480x800 480x800
480x800
grayscale-fast-800x480 800x480
800x480
grayscale-slow-800x480 800x480
800x480

Mono

mono-8x16 8x16
8x16
mono-16x8 16x8
16x8
mono-32x128 32x128
32x128
mono-64x128 64x128
64x128
mono-slow-104x212 104x212
104x212
mono-slow-122x250 122x250
122x250
mono-128x32 128x32
128x32
mono-128x64 128x64
128x64
mono-128x128 128x128
128x128
mono-slow-128x296 128x296
128x296
mono-slow-176x264 176x264
176x264
mono-slow-200x200 200x200
200x200
mono-slow-212x104 212x104
212x104
mono-slow-250x122 250x122
250x122
mono-slow-264x176 264x176
264x176
mono-slow-296x128 296x128
296x128
mono-slow-300x400 300x400
300x400
mono-slow-400x300 400x300
400x300
mono-slow-480x800 480x800
480x800
mono-slow-800x480 800x480
800x480