{"id":32136887,"url":"https://github.com/domsson/fakesteak","last_synced_at":"2026-02-19T08:01:38.697Z","repository":{"id":50454970,"uuid":"310526431","full_name":"domsson/fakesteak","owner":"domsson","description":"All I see is blonde, brunette, red head. — Matrix Rain for your terminal, CC0.","archived":false,"fork":false,"pushed_at":"2025-11-26T09:45:04.000Z","size":125,"stargazers_count":119,"open_issues_count":1,"forks_count":10,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-12-10T01:56:56.753Z","etag":null,"topics":["c","cli-app","cmatrix","console-application","linux","matrix-rain","rice","ricing","screensaver","unixporn"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/domsson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"ko_fi":"domsson"}},"created_at":"2020-11-06T07:41:04.000Z","updated_at":"2025-12-02T14:30:10.000Z","dependencies_parsed_at":"2022-09-24T08:52:01.733Z","dependency_job_id":null,"html_url":"https://github.com/domsson/fakesteak","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/domsson/fakesteak","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/domsson%2Ffakesteak","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/domsson%2Ffakesteak/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/domsson%2Ffakesteak/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/domsson%2Ffakesteak/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/domsson","download_url":"https://codeload.github.com/domsson/fakesteak/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/domsson%2Ffakesteak/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29608152,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T06:47:36.664Z","status":"ssl_error","status_checked_at":"2026-02-19T06:45:47.551Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","cli-app","cmatrix","console-application","linux","matrix-rain","rice","ricing","screensaver","unixporn"],"created_at":"2025-10-21T04:47:27.211Z","updated_at":"2026-02-19T08:01:38.691Z","avatar_url":"https://github.com/domsson.png","language":"C","readme":"# fakesteak \n\n[![fakesteak asciicast](https://asciinema.org/a/z9gykqvDEfmh9aKVlJtu3LOCs.svg)](https://asciinema.org/a/z9gykqvDEfmh9aKVlJtu3LOCs)\n\n\u003e You know, I know this steak doesn't exist. I know that when I put it in my mouth, the Matrix is telling my brain that it is juicy and delicious. After nine years, you know what I realize? Ignorance is bliss.\n\n -- _Cypher_\n\n## Overview \n\nMy take at an implementation of the [digital character rain](https://en.wikipedia.org/wiki/Matrix_digital_rain) \nas seen in \"The Matrix\". \n\nSome things you might like about fakesteak:\n\n - Small footprint (low on RAM and disk usage)\n - Good performance (low on CPU usage)\n - Looks pretty close to the original (fading, glitches)\n - Basic customization via command line options\n - No dependencies (not even ncurses)\n - Clean, well commented code\n - Public Domain\n\nSome things that might rub you the wrong way:\n\n - No Japanese characters (for simplicity's sake)\n - Not cross-platform (no Win/Mac)\n\nSuccessfully tested on Linux (urxvt, xterm, lxterm, uxterm), FreeBSD (st) and WSL2. \nFeedback on compatibility with your OS / distro / terminal is very welcome; \nyou can open an issue to let me know.\n\n## Dependencies / Requirements\n\n- Terminal that supports 256 colors ([8 bit color mode](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit))\n- Requires `TIOCGWINSZ` to be supported (to query the terminal size)\n- Requires Make for building\n\n## Package\n\nfakesteak might also be available as a package:\n\n[![Packaging status](https://repology.org/badge/vertical-allrepos/fakesteak.svg)](https://repology.org/project/fakesteak/versions)\n\n## Building / Running\n\nYou can just run `make`. After that, you should be able to run it from the `bin` directory:\n\n    make\n    ./bin/fakesteak\n    \nOptionally, you can install fakesteak for all users and then run it from wherever:\n\n    make install\n    fakesteak\n\n## Usage\n\n    fakesteak [OPTIONS...]\n\nOptions:\n\n  - `-b`: use background color\n  - `-d`: drops ratio ([1..100], default is 10)\n  - `-e`: error ratio ([1..100], default is 2)\n  - `-h`: print help text and exit\n  - `-r`: seed for the random number generator\n  - `-s`: speed factor ([1..100], default is 10)\n  - `-V`: print version information and exit\n\nThe drops ratio determines the density of the matrix, while the error ratio influences\nthe number of glitches in the matrix (randomly changing characters). \n\n## Changinge the colors\n\nChanging the colors is possible, but requires editing and recompiling the source code. \nIt is pretty simple though. First, open up `src/fakesteak.c` and find lines 24 through 30:\n\n\t#define COLOR_BG   \"\\x1b[48;5;0m\"   // background color, if to be used\n\t#define COLOR_FG_0 \"\\x1b[38;5;231m\" // color for the drop\n\t#define COLOR_FG_1 \"\\x1b[38;5;48m\"  // color for first tail cell\n\t#define COLOR_FG_2 \"\\x1b[38;5;41m\"  // ...\n\t#define COLOR_FG_3 \"\\x1b[38;5;35m\"  // ...\n\t#define COLOR_FG_4 \"\\x1b[38;5;29m\"  // ...\n\t#define COLOR_FG_5 \"\\x1b[38;5;238m\" // color for the last tail cell\n\nThen, find yourself an 8-bit ANSI color code chart, like the one on the \n[Wikipedia page on ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code#8-bit).\n\nNext, find yourself six similar colors that are supposed to make up the drops and their \ngradient trace. Note down their numbers and then, in the above code, replace the number \nbetween the last `;` and the `m`, respectively. That is, replace `231`, `48`, `41`, `35`, \n`29` and `238` as you see fit. You can also change the background color, `0`, which is \ngoing to be used if you use the `-b` command line argument.\n\n## Performance\n\nSince the main focus of `fakesteak` is performance, I tried comparing it to other popular \nimplementations. **Note, however, that this comparison is inaccurate and unfair at best**, \nmainly for the following reasons:\n\n- All projects have different design goals, feature sets and visual fidelity\n- The measurements are just rounded estimates aquired from `top` and `smem -tk` (PSS)\n\nFor example, `fakesteak` is \\*nix only and does not support Japanese Katakana characters, \nwhile most other projects are cross-platform and do have Kana support. Also, note how `cxxmatrix`, \nfor example, focuses on visuals, rendering three layers of rain with a glow effect. \nSee [this reddit thread](https://www.reddit.com/r/unixporn/comments/ju62xa/oc_fakesteak_yet_another_matrix_rain_generator/gcdu5tl/) \nfor further discussion.\n\nAll projects were run in a 1920 x 1080 px urxvt terminal with options that give _somewhat_ \nsimilar visual results. At least the speed of the rain is almost exactly the same for all, \nbut density and visual fidelity (Kanas, fading, glow, etc) do differ. See the \"arguments\" \ncolumn below to see how I've ran each implementation.\n\n|                         | CPU      | RAM    | disk  | Lang.    | arguments                                          |\n|-------------------------|----------|--------|-------|----------|----------------------------------------------------|\n| fakesteak\u003cbr\u003ev0.2.4     |     ~5 % | ~170 K |  19 K | C        | `-d 15`                                            |\n|   cmatrix\u003cbr\u003ev2.0       |     ~8 % | ~900 K |  22 K | C        | `-b -u 10`                                         |\n|   tmatrix\u003cbr\u003ev1.3       |     ~9 % | ~2.0 M |  87 K | C++      | `-g 30,70 -f 1,1 -c default`                       |\n| cxxmatrix\u003cbr\u003e2020-11-18 |  ~13\\* % | ~4.5 M | 114 K | C++      | `-s rain-forever --frame-rate=10 --error-rate=0.1` |\n| unimatrix\u003cbr\u003e2018-01-09 |    ~15 % | ~9.4 M |  26 K | Python   | `-s 90 -l=o -f`                                    |\n\n\\*Note): cxxmatrix behaves a bit odd on my system. If the terminal window is visible, \nit uses about 13% CPU. If it isn't (for example, by switching to another workspace), \nthe CPU load doubles.\n\n## Support\n\n[![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/L3L22BUD8)\n\n## Related Projects\n\n- [cmatrix](https://github.com/abishekvashok/cmatrix)\n- [tmatrix](https://github.com/M4444/TMatrix)\n- [unimatrix](https://github.com/will8211/unimatrix)\n- [cxxmatrix](https://github.com/akinomyoga/cxxmatrix)\n- [rusty-rain](https://github.com/cowboy8625/rusty-rain)\n- [neo](https://github.com/st3w/neo)\n","funding_links":["https://ko-fi.com/domsson","https://ko-fi.com/L3L22BUD8"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdomsson%2Ffakesteak","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdomsson%2Ffakesteak","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdomsson%2Ffakesteak/lists"}