Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/const-void/DOOM-fire-zig
DOOM's fire algo, in zig, for 256 color terminals w/no dependencies
https://github.com/const-void/DOOM-fire-zig
256-color doom xterm zig
Last synced: about 2 months ago
JSON representation
DOOM's fire algo, in zig, for 256 color terminals w/no dependencies
- Host: GitHub
- URL: https://github.com/const-void/DOOM-fire-zig
- Owner: const-void
- Created: 2022-01-15T22:56:25.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2024-08-04T19:35:16.000Z (6 months ago)
- Last Synced: 2024-12-03T11:38:22.880Z (2 months ago)
- Topics: 256-color, doom, xterm, zig
- Language: Zig
- Homepage:
- Size: 41 KB
- Stars: 84
- Watchers: 3
- Forks: 16
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# DOOMFIRE
## Test your TTY's might!![demo](https://user-images.githubusercontent.com/76228776/149635702-a331f892-7799-4f7f-a4a6-7048d3529dcf.mp4)
The doom-fire algo can push upwards of 180k a frame - results may vary! It is, to my surprise, a nice TTY stress test.
As a comparison, this is the younger sibling of a node variant ( https://github.com/const-void/DOOM-fire-node ).
# INSTALL
Tested on OX Sonoma 14.5 / M1 w/zig 0.13...EDIT: Now tested on Artix Linux - links against libc to get the size of the TTY.
EDIT: 2024 - Now tested with Windows - Win32 Compatible, thank you [@marler8997](https://www.github.com/marler8997)!
This means that the program does rely on libc, this shouldn't be a problem.
```
$ git clone https://github.com/const-void/DOOM-fire-zig/
$ cd DOOM-fire-zig
$ zig build run
...
```# Results
* iTerm.app - ok
* kitty.app - great
* Terminal.app - poor -- seems to drop framerates
* VS Code - great
* Warp - great
* Alacritty (artix linux) - great
* Powershell/CMD# Inspiration / Credits
* Thanks to contributors for your support!
* doom fire - https://github.com/filipedeschamps/doom-fire-algorithm, https://github.com/fabiensanglard/DoomFirePSX/blob/master/flames.html
* color layout - https://en.wikipedia.org/wiki/ANSI_escape_code
* ansi codes - http://xfree86.org/current/ctlseqs.html
* str, zig - https://www.huy.rocks/everyday/01-04-2022-zig-strings-in-5-minutes
* emit - https://zig.news/kristoff/where-is-print-in-zig-57e9
* term sz, zig - https://github.com/jessrud/zbox/blob/master/src/prim.zig
* osx term sz - https://github.com/sindresorhus/macos-term-size/blob/main/term-size.c
* px char - https://github.com/cronvel/terminal-kit