Skip to content

erik-adelbert/flame

Repository files navigation

Flame

A terminal DOOM fire animation and ASCII art CLI written in Go, built with Charm's Bubble Tea and Lip Gloss TUI libraries.

Demo

Flame Demo

Note on GPU-Accelerated Terminals

For the best animation experience, use a GPU-accelerated terminal emulator such as Alacritty, Kitty, or similar. While not required, these terminals can provide smoother and more vibrant visuals for the flame animation.

Table of Contents

Requirements

Features

  • Real-time 2D fire simulation based on the classic DOOM fire effect
  • Colorful, animated terminal output for modern terminal emulators
  • Hot-resizable output
  • Hardwired 30 FPS ASCII rendering up to 4K (3829x700 with kitty)

Usage

Clone

git clone https://github.com/erik-adelbert/flame.git
cd flame

Run with Makefile

make run

Build the executable:

make build
./bin/flame

Install with go install

go install github.com/erik-adelbert/flame/cmd/flame@latest

Test and benchmark

make test
make bench

Run without Makefile

go run ./cmd/flame/main.go

Build a binary:

mkdir -p bin
go build -o bin/flame ./cmd/flame/main.go
./bin/flame

Dependencies

Project Structure

  • cmd/flame/ — CLI entry point (main package)
  • flame/ — Core simulation and rendering logic

How it Works

  • The model simulates fire by propagating heat values upward and mapping them to characters/colors.

Customization

  • Adjust the palette or rules in flame/model.go to change the flame's appearance.
  • Change grid size or simulation parameters as needed.

License

MIT. See LICENSE.

Author

Erik Adelbert

Note: I don't need to vibe my code. This project is crafted.

About

A high-performance DOOM fire animation for the terminal, written in Go with Bubble Tea and Lip Gloss.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors