{"id":26863874,"url":"https://github.com/manankarnik/cellabrate","last_synced_at":"2026-04-30T00:02:45.540Z","repository":{"id":285129560,"uuid":"957039430","full_name":"manankarnik/cellabrate","owner":"manankarnik","description":"Conway's Game of Life editor and simulator - right in the terminal!","archived":false,"fork":false,"pushed_at":"2025-04-25T08:13:08.000Z","size":20,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-05T09:39:37.571Z","etag":null,"topics":["conways-game-of-life","game-of-life","golang","simulation","terminal-app","terminal-based","tui"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/manankarnik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-03-29T12:07:37.000Z","updated_at":"2025-04-25T08:13:12.000Z","dependencies_parsed_at":"2025-03-29T18:30:05.645Z","dependency_job_id":"fc12f538-43ad-484f-aba1-1a179535d7a8","html_url":"https://github.com/manankarnik/cellabrate","commit_stats":null,"previous_names":["manankarnik/game-of-life","manankarnik/cellabrate"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/manankarnik/cellabrate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manankarnik%2Fcellabrate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manankarnik%2Fcellabrate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manankarnik%2Fcellabrate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manankarnik%2Fcellabrate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manankarnik","download_url":"https://codeload.github.com/manankarnik/cellabrate/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manankarnik%2Fcellabrate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32448883,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T22:27:22.272Z","status":"ssl_error","status_checked_at":"2026-04-29T22:10:49.234Z","response_time":110,"last_error":"SSL_read: 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":["conways-game-of-life","game-of-life","golang","simulation","terminal-app","terminal-based","tui"],"created_at":"2025-03-31T03:33:02.274Z","updated_at":"2026-04-30T00:02:45.525Z","avatar_url":"https://github.com/manankarnik.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cellabrate\n\n\u003e A portmanteau of \"cell\" and \"celebrate\", reflecting the celebration of life’s patterns in the simulation.\n\nCellabrate is a terminal-based Conway's Game of Life editor and simulator. It allows you to interactively create, edit, and simulate cellular automaton patterns in real-time. Inspired by Vim for its keyboard navigation, it provides a streamlined, efficient way to experiment with patterns, using paint and erase modes, dynamic grid resizing, and more.\n\n\u003e TODO: Cellabrate Demo\n\n## Features\n\n- Real-time cellular automaton simulation\n- Interactive cell editing with cursor\n- Paint and erase modes for efficient pattern creation\n- Vim-inspired keyboard navigation\n- Dynamic grid resizing based on terminal dimensions\n\n## How It Works\n\nThis implementation of Conway's Game of Life follows these rules:\n\n1. **Underpopulation**: Any live cell with fewer than two live neighbors dies.\n2. **Survival**: Any live cell with two or three live neighbors lives on.\n3. **Overpopulation**: Any live cell with more than three live neighbors dies.\n4. **Reproduction**: Any dead cell with exactly three live neighbors becomes alive.\n\n## Installation\n\n### Install with Go\n\n#### Go Install\n\n```bash\ngo install github.com/manankarnik/cellabrate\n```\n\n#### Run Binary\n\n```bash\ncellabrate\n```\n\n### Clone and Run\n\n#### Clone This Repository\n\n```bash\ngit clone https://github.com/manankarnik/cellabrate.git\n```\n\n#### Navigate to the Project Directory\n\n```bash\ncd cellabrate\n```\n\n#### Run Cellabrate\n\n```bash\ngo run .\n```\n\n## Requirements\n\n- [Golang](https://go.dev/)\n- [tcell/v2](https://github.com/gdamore/tcell)\n\n## Usage\n\n\u003e TODO: Cellabrate Interface\n\n### Basic Controls\n\nThe program starts with a simple pattern (3-cell line) in the center of the screen. Use the keyboard to navigate, edit cells, and control simulation.\n\n### Modes\n\nThe program has two main modes:\n\n1. **Edit Mode (default)** - Move cursor and toggle cells on/off\n   - **Paint Mode** - Draw live cells by moving the cursor\n   - **Erase Mode** - Erase live cells by moving the cursor\n2. **Simulation Mode** - Watch the Game of Life evolve\n\n## Key Bindings\n\n### Movement\n\n| Key                   | Action                              |\n| --------------------- | ----------------------------------- |\n| h,j,k,l or Arrow keys | Move cursor (left, down, up, right) |\n| f                     | Move cursor 5 steps right           |\n| b                     | Move cursor 5 steps left            |\n| u                     | Move cursor 5 steps up              |\n| d                     | Move cursor 5 steps down            |\n| Ctrl+F                | Move cursor to far right            |\n| Ctrl+B                | Move cursor to far left             |\n| Ctrl+U                | Move cursor to top                  |\n| Ctrl+D                | Move cursor to bottom               |\n| m                     | Move cursor to horizontal middle    |\n| M                     | Move cursor to vertical middle      |\n\n### Cell Manipulation\n\n| Key   | Action                                   |\n| ----- | ---------------------------------------- |\n| Space | Toggle cell state (alive/dead) at cursor |\n| p     | Toggle paint mode                        |\n| e     | Toggle erase mode                        |\n| c     | Clear the entire grid                    |\n\n### Simulation Control\n\n| Key | Action                                 |\n| --- | -------------------------------------- |\n| s   | Toggle simulation (start/pause)        |\n| n   | Step simulation forward one generation |\n| +   | Speed up simulation                    |\n| -   | Slow down simulation                   |\n\n### Program Control\n\n| Key    | Action           |\n| ------ | ---------------- |\n| Esc, q | Quit the program |\n\n## Special Modes\n\n### Paint Mode\n\nPaint mode allows you to \"draw\" live cells by simply moving the cursor. This makes creating patterns much faster than toggling individual cells.\n\n- Press `p` to enter or exit paint mode\n- The cursor will turn green in paint mode\n- Move the cursor to create live cells\n- **Note**: Paint mode is disabled during simulation, and you cannot use it simultaneously with erase mode.\n\n\u003e TODO: Paint Mode Example\n\n### Erase Mode\n\nErase mode is similar to paint mode but removes cells instead of creating them.\n\n- Press `e` to enter or exit erase mode\n- The cursor will turn red in erase mode\n- Move the cursor to remove live cells\n- **Note**: Erase mode is disabled during simulation, and you cannot use it simultaneously with paint mode.\n\n\u003e TODO: Erase Mode Example\n\n## Examples\n\nHere are some classic patterns you can create:\n\n### Glider\n\n\u003e TODO: Glider Pattern\n\n### Blinker\n\n\u003e TODO: Blinker Pattern\n\n### Gosper Glider Gun\n\n\u003e TODO: Gosper Glider Gun\n\n## Contributing\n\nContributions are welcome! Please feel free to raise Issues and submit a Pull Request.\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n\n## References\n\n- [Conway's Game of Life](https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life) for creating the Game of Life\n- [tcell](https://github.com/gdamore/tcell) library for terminal graphics\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanankarnik%2Fcellabrate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanankarnik%2Fcellabrate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanankarnik%2Fcellabrate/lists"}