{"id":38352572,"url":"https://github.com/michael-ryan/cellularautomata","last_synced_at":"2026-01-17T03:12:00.663Z","repository":{"id":257801139,"uuid":"860119967","full_name":"michael-ryan/cellularautomata","owner":"michael-ryan","description":"A graphical cellular automaton simulator, written in Go.","archived":false,"fork":false,"pushed_at":"2024-09-25T22:26:34.000Z","size":65,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-09-26T08:49:27.538Z","etag":null,"topics":["cellular-automata","cellular-automaton","golang"],"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/michael-ryan.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}},"created_at":"2024-09-19T21:21:45.000Z","updated_at":"2024-09-25T22:25:29.000Z","dependencies_parsed_at":"2024-09-26T08:49:32.537Z","dependency_job_id":null,"html_url":"https://github.com/michael-ryan/cellularautomata","commit_stats":null,"previous_names":["michael-ryan/cellularautomata"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/michael-ryan/cellularautomata","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michael-ryan%2Fcellularautomata","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michael-ryan%2Fcellularautomata/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michael-ryan%2Fcellularautomata/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michael-ryan%2Fcellularautomata/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/michael-ryan","download_url":"https://codeload.github.com/michael-ryan/cellularautomata/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michael-ryan%2Fcellularautomata/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28492616,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T02:39:23.645Z","status":"ssl_error","status_checked_at":"2026-01-17T02:34:19.649Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["cellular-automata","cellular-automaton","golang"],"created_at":"2026-01-17T03:12:00.597Z","updated_at":"2026-01-17T03:12:00.654Z","avatar_url":"https://github.com/michael-ryan.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cellular Automata Simulator\n\n## 📝 Documentation \n\nFor using the tool, see [here](https://pkg.go.dev/github.com/michael-ryan/cellularautomata).\n\nFor the API to construct your own automata, see [here](https://pkg.go.dev/github.com/michael-ryan/cellularautomata/model).\n\nFor example automata, see [here](examples/).\n\n## 🚀 Usage \nThe simplest usage is as follows. In your `main` package, set up a `Config` object and supply it to `Launch`.\n```Go\npackage main\n\nimport (\n\t\"github.com/michael-ryan/cellularautomata\"\n\t\"github.com/michael-ryan/cellularautomata/examples\"\n)\n\nfunc main() {\n\tc := cellularautomata.Config{\n\t\tFps:          15,\n\t\tCellsX:       128,\n\t\tCellsY:       72,\n\t\tWindowX:      1280,\n\t\tWindowY:      720,\n\t\tAutomaton:    examples.NewForest(),\n\t\tInitialState: 0,\n\t\tSkipEditor:   true,\n\t}\n\n\tcellularautomata.Launch(c)\n}\n```\n\nThis will open a GUI window and run a simulation.\n\nThere is an optional edit mode which the program will start in if `SkipEditor` is `false`. In this mode, you can click on cells to cycle their initial state, then press `S` on your keyboard to start the simulation. \n\nNote: Launch must be called from the main goroutine, due to a limitation in OpenGL.\n\nFeel free to play with the config parameters. You can swap out `Automaton` for other sample models (defined [here](models/)), or you can easily construct your own automata. For examples, see [here](examples/).\n\n## 🐛 Known Issues \u0026 Planned Improvements\n\n- Analysis tools to record cell state counts and how they change over time.\n\n## 🔧 Troubleshooting\n\n### *There's some error about x11, package 'gl' missing etc etc*\n\nSee requirements for the graphics library I'm using [here](https://github.com/gopxl/pixel?tab=readme-ov-file#requirements). You'll probably need to install `gcc`, `libgl1-mesa-dev` and `xorg-dev`.\n\n### *My issue isn't listed here!*\n\nPlease file an issue on this repository, and I'll take a look.\n\n## 🤝 Contributing\n\nFeel free to file pull requests.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichael-ryan%2Fcellularautomata","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmichael-ryan%2Fcellularautomata","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichael-ryan%2Fcellularautomata/lists"}