CMATRIX · Volume 1
A Screen Toy With a Paper Trail
Almost every Linux distribution carries a 34-kilobyte package whose entire purpose is to make a terminal window look like the opening titles of a 1999 science-fiction film. It has no configuration file, no daemon, no network code and no output anyone can use. It is cmatrix, and it is one of the most widely installed pieces of software that does nothing at all. The Debian description is admirably direct: simulates the display from “The Matrix”.

q or a signal. — File:Cmatrix.png by Tassilo Mödl. CC0, via Wikimedia Commons.That is worth taking seriously rather than dismissing, because the program has an unusually clean paper trail. The source is short enough to read in a sitting, the licence is unambiguous, the author is named in the file header, and his own website still carries the release notes he wrote at the time. Very little about cmatrix has to be taken on trust, which makes it a good subject: the claims below can be checked against files anyone can download.
1.1 What the program actually is
cmatrix is a single C source file that draws a terminal-sized grid of characters, moves a set of falling streams down it, and repeats until interrupted. On Ubuntu it installs as version 2.0-6build1 in the universe section, 34 kB compressed and roughly 75 kB on disk. It depends on libc6, libncurses6 and libtinfo6 — that is, on the C library and on the ncurses terminal-handling library and its terminfo companion, and on nothing else. It recommends kbd (for the console font tools) and suggests cmatrix-xfont, a separate package holding the alternative glyph font used by two of its display modes.
Nothing in the program touches the network, reads a user’s files or writes to disk. It draws, sleeps, and draws again.
1.2 The effect it imitates
The visual it copies is the “digital rain” that opens The Matrix, released in March 1999, and every film and episode in the franchise after it. The typeface was designed by production designer Simon Whiteley, and the character set is not, as is often assumed, Japanese text: it is a mixture of mirrored half-width kana with Latin letters and numerals, stylised for the screen. No official release of the film’s typeface has ever been made.
One popular story about it needs handling carefully. In a 2017 interview Whiteley said he liked to describe the code as being made from Japanese sushi recipes, and the line travelled widely as a flat statement of fact. The checkable version is narrower: he has said he scanned and adapted characters from his wife’s Japanese cookbooks and his children’s Japanese alphabet books. Fact-checkers who examined the claim concluded that the popular rendering — that the code is a set of sushi recipes — compresses that into something the interview does not support. The characters came from cookbooks among other sources; the code does not spell out recipes.
cmatrix is a further step removed again. Its own README states that it is based on the screensaver from the film’s promotional website rather than on the title sequence, and carries an explicit disclaimer of any affiliation with the film or its studio. The program’s -c “classic” mode reaches for half-width kana, and the source comment concedes the limitation frankly: in the film the characters are flipped on the vertical axis and mixed with Latin glyphs, and a single Unicode range is “the closest we can do”.

1.3 Who wrote it, and when
The copyright header of cmatrix.c is unambiguous:
Copyright (C) 1999-2017 Chris Allegretta
Copyright (C) 2017-Present Abishek V Ashok
Debian’s packaging copyright file records the same split, dating Allegretta’s holding to 1999–2017 and Ashok’s from 2017, under GPL-3 or later.
The dates line up closely with the film. The manual page still carries its original .TH header date of “Mon May 3 1999” — about five weeks after the film opened — and Allegretta’s own site lists version 1.0b as released by 6 June 1999, 1.1b on 9 April 2000 (adding RPM packaging), and 1.2a as current on 31 March 2002. (The site writes dates in US month/day order.) Whatever else is disputed, the program was written in the spring of 1999, in the weeks immediately after the film’s release, and not years later.
How long it took is one of the few points where the record disagrees with itself. Allegretta’s own page describes it as an evening’s work; the project’s current README thanks him “for writing cmatrix up in a fortnight”. Both accounts come from the project’s own documents, and nothing in the source settles which is right. The README’s other acknowledgement — to Allegretta’s girlfriend, “for not killing him when he stayed up till 3 AM writing code” — suggests the truth was at least concentrated, whichever span is correct.
1.4 The handover
On 21 November 2000, Allegretta posted a note that he no longer had time for the project: his free time was going to GNU nano, the text editor he had started and is far better known for. The program went unmaintained as an upstream project for a period afterwards, though distributions continued to ship the 1.2 code.
Maintainership passed to Abishek V Ashok, whose GitHub repository is now the upstream named by the Debian package, by Allegretta’s own site, and by the program’s own -V output. GitHub’s API records that repository as created on 31 October 2013, which sits oddly beside the 2017 date in the copyright header; nothing available here explains the gap, and it should be treated as unresolved rather than smoothed over. Its releases are firmer: version 1.2 “Stable” on 23 June 2017 and version 2.0, named “Butterscotch”, on 27 March 2019. Version 2.0 is what distributions ship today. As read on 16 September 2026, the repository had 5,245 stars and its last push was in August 2024 — a project that is finished rather than abandoned, which for a program of this scope is a reasonable end state.
1.5 Licence
cmatrix is free software under the GNU General Public License, version 3 or later; the repository ships the full GPLv3 text as COPYING. That matters more than it sounds. The reason the program’s history can be reconstructed this precisely — authorship, dates, handover, the exact algorithm — is that the licence obliged every distributor to carry the source and the copyright notices along with the binary. The claims in the volumes that follow are checkable because of the licence, not in spite of it.
1.6 What it is not
Three things it is worth being explicit about, because each is occasionally claimed for it:
- It is not the film’s code. It is an imitation of a promotional screensaver that was itself an imitation of a title sequence.
- It is not a screen locker. It has a
-Llock mode that refuses the usual quit keys, and the manual page is honest that the mode can be closed from another terminal. It stops a passer-by from reading the screen; it stops nothing else. - It is not efficient, and has never claimed to be. The manual page’s own BUGS section warns that the program “is very CPU intensive” and may consume “over 40% of your CPU at times”. Volume 3 returns to why that is a property of the design rather than a defect in it.
Comments (0)