Game of Life TUI
A beautiful, interactive terminal-based implementation of Conway's Game of Life built with Python and Textual.
Features
- Vibrant Rainbow Colors - Cells cycle through cyan→green→yellow→magenta→blue as they age
- Zero Dependencies - 100% pure Python, installs with a single pip command
- Interactive TUI - Beautiful terminal interface optimized for 80x24 screens
- Theme Support - Switch between multiple themes with Ctrl+\
- Preset Patterns - Spawn gliders, blinkers, and other classic patterns (keys 1-5)
- Save/Load - Persist your creations to JSON files
- Cross-Platform - Works on macOS, Linux, and Windows
Installation
pip install game-of-life-tui
Quick Start
After installation, run:
game-of-life-tui
First Steps
- Press
Rto generate random cells - Press
Pto start the simulation - Press
+/-to adjust speed - Press
Ctrl+\to change themes
Controls
| Key | Action |
|---|---|
P |
Play/Pause simulation |
S |
Step one generation (when paused) |
Space |
Toggle cell at cursor |
Arrow Keys |
Move cursor |
R |
Fill with random cells |
C |
Clear all cells |
1-5 |
Spawn preset patterns |
+ / - |
Adjust speed |
Ctrl+\ |
Change theme |
Ctrl+S |
Save grid |
Ctrl+L |
Load grid |
Q or Esc |
Quit |
Cell Colors (Meaningful Rainbow)
- Cyan (Age 1) - Newborn cells
- Green (Age 2) - Young cells
- Yellow (Age 3) - Mature cells
- Magenta (Age 4) - Old cells
- Blue (Age 5+) - Ancient survivors
Watch as patterns evolve and cells age through the rainbow spectrum!
Game Rules
Conway's Game of Life follows these simple rules:
- Survival: A live cell with 2-3 live neighbors survives
- Birth: A dead cell with exactly 3 live neighbors becomes alive
- Death: All other cells die or remain dead
The grid wraps around edges (toroidal topology) for seamless gameplay.
Examples
Spawn a Glider
1. Run game-of-life-tui
2. Press 1 to place a glider
3. Press P to watch it travel
Create Custom Patterns
1. Press P to pause
2. Use arrow keys to navigate
3. Press Space to toggle cells
4. Press P to run your creation
Experiment with Chaos
1. Press R for random cells
2. Press P to start
3. Watch patterns emerge!
Requirements
- Python 3.8 or higher
- textual >= 0.47.0 (automatically installed)
No system dependencies required!
Links
- GitHub: https://github.com/josephvolmer/game-of-life-tui
- Issues: https://github.com/josephvolmer/game-of-life-tui/issues
License
MIT License - see LICENSE file for details.
Made with Python and Textual
Metadata
Release files for game-of-life-tui 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| game_of_life_tui-1.2.0.tar.gz | 11.8 kB | With provenance | Details for game_of_life_tui-1.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| game_of_life_tui-1.2.0-py3-none-any.whl | Python 3 | none | any | Details for game_of_life_tui-1.2.0-py3-none-any.whl |
Total release size: 22.0 kB
Release files / game_of_life_tui-1.2.0.tar.gz
| Download URL | game_of_life_tui-1.2.0.tar.gz |
|---|---|
| Size | 11.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ae3fca100e376d4e7565beb6a8f8f2305b65a7c04df232881a9a15abc4d7b28a
|
|
BLAKE2b-256 checksum How to use checksums |
0330d9a94d22a9378348a08dce8173b6c64ed958662b2d5158e6b400d785c891
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 19, 2026.
Transparency logRelease files / game_of_life_tui-1.2.0-py3-none-any.whl
| Download URL | game_of_life_tui-1.2.0-py3-none-any.whl |
|---|---|
| Size | 10.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7a14555392025deb55f705482107358650c1735ed4bcddeeb3b46861c47d5541
|
|
BLAKE2b-256 checksum How to use checksums |
31b93a0dbcedf9d0c460bd688261cebae2baeb86fd0fed15c7fb084513d4fd47
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 19, 2026.
Transparency logSecurity for game-of-life-tui 1.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for game_of_life_tui-1.2.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 19, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.