Matrix profile
{{ densityLabel }}
{{ canvasSizeLabel }} canvas
Theme {{ themeLabel }} Density {{ densityLabel }} Speed {{ speedValue.toFixed(2) }}x {{ directionLabel }} Wave {{ waveLabel }} Columns {{ columnCount }}
Matrix preview {{ running ? 'running' : 'paused' }}.
Matrix screensaver controls
Options: classic green, cyan neon, amber terminal, or violet grid.
Options: mixed symbols, binary, hex, ASCII letters, or katakana style.
Choose Downward for the classic Matrix flow or Upward for reversal.
Use Low for large glyphs, Ultra for tightly packed rain.
{{ speedValue.toFixed(2) }}x
Range: 0.30x to 3.00x; start below 1.00x for ambient loops.
{{ glowValue }}
Range: 0 to 100; lower values preserve crisp glyph lanes.
Enter 8 to 60 frames; longer tails create deeper afterimages.
frames
{{ charScaleValue }}%
Range: 70% to 180%; larger glyphs reduce effective column count.
{{ headIntensityValue }}
Range: 0 to 100; raise it when dense tails hide the stream heads.
Switch off for stable captures; on for livelier code rain.
{{ randomFlickerValue ? 'On' : 'Off' }}
{{ flickerRateValue }}
Range: 0 to 100; disabled automatically when Random flicker is off.
Choose Straight for fixed lanes, Sine or Turbulent for drift.
{{ waveStrengthValue }}
Range: 0 to 100; disabled while Column motion is Straight.
{{ resetFrequencyValue }}
Range: 120 to 980; lower values refresh lanes more often.
Switch on for subtle texture; off for cleaner glyph contrast.
{{ backgroundNoiseValue ? 'On' : 'Off' }}
{{ backgroundDimValue }}
Range: 0 to 80; raise for sharper contrast, lower for longer tails.
{{ scanlineStrengthValue }}
Range: 0 to 100; higher values increase the reported noise load.
Choose 30, 45, or 60 FPS for target rain playback.
Metric Value Copy
{{ row.key }} {{ row.value }}
No chart-ready metrics are currently available.
Priority Operator cue Rationale Copy
{{ cue.priority }} {{ cue.cue }} {{ cue.rationale }}

        
Customize
Advanced
:

A Matrix-style code rain screensaver depends on a simple illusion: glyph columns move in lanes, bright heads lead the streams, and fading tails make the motion feel deeper than a static grid of characters. The effect becomes readable only when density, speed, contrast, and tail length stay in balance.

That balance changes with the job. A calm coding backdrop needs clean lanes and modest flicker. A display-wall scene can use denser glyphs, stronger glow, and turbulent motion. A stream overlay needs enough separation that text or camera framing can sit near the animation without fighting it.

Code rain diagram showing density, tail persistence, and bright stream heads.

The preview is most useful while it is moving. A still frame can hide stutter, and a dense field can look impressive until the columns blur together. Long-running code rain should preserve lane readability, keep delivered frame rate near the selected target, and allow the viewer to pause motion when needed.

The scene is a generated visual effect, not a film asset or a benchmark. Resetting the rain can change exact column positions while keeping the selected controls, so compare profiles by settings, metrics, and motion feel rather than by one frozen pattern.

How to Use This Tool:

Build the rain from readable lanes first, then add texture and fullscreen checks.

  1. Set Theme, Character set, Rain direction, Density, and Drop speed. These decide the broad look and the amount of motion pressure.
  2. Use Glow intensity, Tail persistence, Character scale, and Head brightness to make stream heads and tails readable.
  3. Add texture with Random flicker, Flicker rate, Column motion, Wave strength, Respawn frequency, Background noise, Background dim, and Scanline strength.
  4. Use Start, Pause, and Reset while judging the preview. Reset rebuilds the rain pattern while keeping your controls.
  5. Open Matrix Metrics and check Target FPS, Measured FPS, Quality scale, Columns, Canvas size, and Fullscreen.
  6. Use Matrix Stream Chart as a current-value snapshot and Operator Brief as a three-cue summary of motion, noise, and contrast.
  7. Run the final setup in Fullscreen. If the larger view lowers measured performance or makes lanes muddy, reduce density, speed, wave strength, glow, or tail length.

If a restored value is outside a supported range, the control settles into its valid bounds. Confirm the visible value before comparing one scene with another.

Interpreting Results:

The most important performance pair is Measured FPS and Quality scale. A scene can look dramatic while the drawing load is already being reduced, and a calm scene can be more useful if it stays smooth at the selected size.

  • Columns rises when density increases or characters become smaller. More columns add richness but can reduce lane clarity.
  • Operator Brief is advisory. It names the first control family to inspect, not a pass or fail result.
  • Matrix Stream Chart compares current numeric signals; it does not record performance over time.
  • Scanline strength affects metrics, JSON state, and guidance. It should not be read as proof of a visible scanline overlay by itself.

Use fullscreen as the verification step. If the same settings lose clarity or frame rate after the canvas grows, the smaller preview was only a partial test.

Technical Details:

Code-rain motion is produced by columns. Each lane has a vertical position, a chosen character from the selected set, a motion phase, and a drift behavior. Density and character scale determine how many columns fit across the canvas, while drop speed and rain direction determine how fast each stream travels.

Contrast comes from how frame persistence and brightness are balanced. Tail persistence lets earlier glyphs remain visible, background dim shortens or lengthens that afterimage, glow softens the edges, and head brightness separates leading glyphs from their tails. Random flicker and background noise add texture, but too much texture can hide the column structure.

Rule Core:

The Operator Brief groups the scene into vector pressure, noise floor, and contrast separation.

vector load = drop speed×density multiplier lateral load = wave strength÷100 when column motion is not straight noise load = flicker contribution+background noise contribution+scanline strength180
Matrix density and cue thresholds
Signal Rule Meaning
Density multiplier Low and Medium use 1.00, High uses 1.18, Ultra uses 1.35 Dense rain raises motion pressure even when speed is unchanged.
Stream vector Vector load above 2.55, or Turbulent motion with Wave strength above 72 The rain may need less speed or lateral movement.
Stream vector Straight motion with Wave strength below 12 The scene may feel too flat; gentle sine motion can add depth.
Noise floor Noise load above 1.2 Flicker, noise, and scanline pressure are stacked too heavily.
Contrast Background dim above 60 with Glow intensity above 72 Tails can lose detail from heavy dimming and bloom.
Contrast Background dim below 18 with Head brightness below 55 Lead glyphs can blend into tails.
Matrix output fields and interpretation
Output Meaning Use it for
Columns Current number of glyph lanes. Checking whether density and character scale are crowding the scene.
Measured FPS Delivered frame rate from the running preview. Finding scenes that miss the chosen FPS target.
Quality scale Adaptive drawing percentage. Spotting when dense rain or effects are too costly.
Operator Brief Three priority cues with rationale. Choosing whether motion, noise, or contrast should be adjusted first.

Because this is moving content that can run indefinitely, pause and reset controls are part of the useful result, not just convenience buttons. They let the viewer stop motion, inspect composition, and restart the rain pattern deliberately.

Worked Examples:

Readable ambient rain. Use Classic green, ASCII letters, Downward direction, Medium density, 0.75x speed, Straight motion, Tail persistence 24 frames, Glow intensity around 45, Head brightness 85, Background noise off, and 45 FPS. Measured FPS should stay close to target, Quality scale should remain near full, and Operator Brief should avoid the high-pressure vector warning.

Cinematic wall that becomes heavy. Use Violet grid, Katakana style, Upward direction, Ultra density, 2.80x speed, Turbulent column motion, Wave strength 85, Random flicker on, Background noise on, Background dim 60, Scanline strength 70, and 60 FPS. Lock stream vector and Manage visual noise are likely. If quality falls or measured performance lags, reduce density or wave strength before increasing glow.

Scanline expectation check. Raise Scanline strength from 10 to 90 while keeping the same theme and density. Matrix Metrics, JSON, and Operator Brief can reflect the higher value, but the preview should not be judged as broken if it does not draw distinct horizontal scanlines from that control alone.

FAQ:

Which character sets can I use?

The visible choices are Mixed symbols, Binary, Hex, ASCII letters, and Katakana style. Compact sets are easier to read, while mixed sets usually feel denser.

Why does Measured FPS not match Target FPS?

Target FPS is the selected cap of 30, 45, or 60 FPS. Measured FPS depends on canvas size, density, speed, wave motion, glow, noise, and device load.

What changes when I press Reset?

Reset rebuilds column positions, glyph choices, motion phases, and counters while keeping the selected controls.

Why do I not see scanlines?

Scanline strength is carried into metrics, JSON, and guidance. It is not a guarantee of a separate visible scanline mask in the preview.

Are my Matrix rain settings uploaded?

Scene generation, metrics, chart data, and JSON output are produced in the browser. The simulator does not upload your chosen rain settings for processing.

Glossary:

Glyph
One visible character drawn from the selected character set.
Tail persistence
How long previous glyph frames remain visible as trails.
Vector load
The combined speed and density pressure used by the stream-motion cue.
Noise floor
The combined flicker, background noise, and scanline pressure used by the advisory cue.
Quality scale
The adaptive drawing percentage used when the preview needs to protect frame rate.

References: