Classic is the baseline, not the default — fresh installs open on Authentic — and it is the one to start from before you touch anything.

It is also not the film you probably think it is. The upstream project this style is inherited from says so plainly: Classic is based on the sequels' opening title graphics, not the 1999 original. If you want the first film specifically, that is Authentic.

I do not know which film people are picturing when they say Matrix rain. I do know which one this style is.

Three depth planes

Classic runs the layered model. Three planes of rain, each at a different scale and speed, which is what gives the field depth instead of reading as one flat sheet. Since 1.5.1 the middle plane hides the back plane where they overlap, so the depth reads as near and far rather than as a double exposure.

In 1.5.0 every active string in a plane samples its own movement interval, two, three or four substeps, around the same average row cadence. Before that, strings in a plane shared one scheduler boundary and stepped together. Same mean fall speed, and the motion boundaries no longer line up.

The 57 characters

Classic and Operator share the Trilogy57 family. Thirty five katakana, all mirrored horizontally, then the numerals, the letter Z, and eleven punctuation marks.

ハ ヒ シ ツ ウ ー ナ ミ モ ニ サ ワ オ リ ホ マ エ キ ム テ ケ メ カ ユ ラ セ ネ ス タ ヌ ア コ ソ ヤ ヨ 0 1 2 3 4 5 6 7 8 9 Z * + : = . < > " | ¦ _
Shown upright. Every katakana is mirrored horizontally in the app, and numerals 2, 5 and 9 are mirrored horizontally while 3 and 6 are mirrored vertically.

Every outline except one comes from the pinned font. The fullwidth vertical bar is an original procedural stroke, because that character needed to be the right width in the cell rather than the right width in a typeface.

The numbers, if you want to check them

Classic applies one override: animation speed 0.90, trimmed from 1.00 in 1.5.1. Every other value below is the shipped default for the whole app, which is what makes it the baseline.

SettingValueWhat it does
Rain modellayeredThree depth planes; the middle plane occludes the back plane
Columns80Grid width
Animation speed0.90Global rate multiplier. The one Classic override, trimmed from 1.00 in 1.5.1
Fall speed0.30Row advance multiplier
Raindrop length0.75Trail length, scaled to your screen height
Cycle speed0.03How often a settled glyph mutates
Cycle frame skip1Mutation is evaluated every frame
Trail decay1.00How fast a trail fades behind the leader
Bloom0.70Glow strength, with a 0.10 high pass
Cursor color#C1FF75Leader color, independent of the body palette
Cursor intensity2.00How much brighter the leader burns
Cursor fraction0.20Share of strings carrying a highlighted leader
Deletion strings0.15Share of strings that erase instead of draw
Dither0.05Breaks up banding in the dark greens
Scanlines0.08On, unlike Authentic

The palette

Four stops mapped across cell brightness. Most of the grid sits at the black end, which is why the leading characters read as bright without the whole screen glowing.

#000000 · 0.00 #176105 · 0.20 #89F76E · 0.70 #B0FA9E · 0.80 #C1FF75 · cursor

The glyph file

The family ships as a generated coverage resource rather than a font. Each character gets an isolated 128 by 128 slice with its own eight level mip chain, so no character can bleed into its neighbor when the image scales down.

File TrilogyGlyphCoverage.r8
Slices 57
Bytes 933,888
SHA-256 9bae7cd80a28e240ca571c0dcddb4778b8f157ddb5482f5e2dc4b11d916e2341
Source font M PLUS 1 Code 700, SIL OFL 1.1, pinned by hash
Rebuild xcrun swift scripts/generate-trilogy-megacity-coverage.swift

On your display

This style renders natively at 3840 by 2160 and 5120 by 2880. The glyph atlas picks its mip level from the real backing scale, so characters stay sharp on a 5K panel instead of going soft.

Refresh rate is handled separately from simulation rate. The rain advances on its own fixed schedule and the shader interpolates between the current state and the previous one at presentation time, so a 120 Hz display gets 120 smooth frames without the rain running faster. On battery or under thermal pressure the app drops to 30 or 15 fps and turns bloom off.

Common questions

Is Classic from the first Matrix film?

No. The upstream project it comes from describes Classic as based on the sequels' opening title graphics. Matrix Desktop ships a separate Authentic style for the 1999 opening sequence specifically.

What is the difference between Classic and Authentic?

Classic runs three depth planes with the 57 character Trilogy family and reads as the general franchise look. Authentic runs the same three depth planes on the film's own lattice, with a 53 character family transcribed from a frame-by-frame analysis of the first film.

Can I change the Classic colors?

Yes. Every value on this page is a default, not a lock. Column count, speeds, bloom, cursor color and the full palette are all adjustable from the menu bar.

The one to start from

Classic is the rain most people mean, and it is worth knowing that most people mean the sequels.

Nothing wrong with that. The sequels' titles are the version that got printed on everything.

It just is not the one from 1999.