{"id":15288605,"url":"https://github.com/lloydmeta/gol-rs","last_synced_at":"2025-07-28T07:04:08.380Z","repository":{"id":57633957,"uuid":"94241800","full_name":"lloydmeta/gol-rs","owner":"lloydmeta","description":"Conway's Game of Life in Rust + OpenGL","archived":false,"fork":false,"pushed_at":"2023-11-17T11:47:53.000Z","size":2884,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-15T10:04:32.321Z","etag":null,"topics":["game-of-life","gfx","gfx-rs","opengl","parallel-processing","rayon","rust"],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/lloydmeta.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2017-06-13T17:55:13.000Z","updated_at":"2023-11-17T12:06:31.000Z","dependencies_parsed_at":"2024-09-30T15:50:29.592Z","dependency_job_id":"349baba2-8568-4f68-931f-393a9c8b52f7","html_url":"https://github.com/lloydmeta/gol-rs","commit_stats":{"total_commits":20,"total_committers":2,"mean_commits":10.0,"dds":0.35,"last_synced_commit":"7b732e1b1dc107ad24996993b277fda8bcc14fd6"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/lloydmeta/gol-rs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lloydmeta%2Fgol-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lloydmeta%2Fgol-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lloydmeta%2Fgol-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lloydmeta%2Fgol-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lloydmeta","download_url":"https://codeload.github.com/lloydmeta/gol-rs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lloydmeta%2Fgol-rs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265727413,"owners_count":23818428,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["game-of-life","gfx","gfx-rs","opengl","parallel-processing","rayon","rust"],"created_at":"2024-09-30T15:50:23.238Z","updated_at":"2025-07-28T07:04:08.343Z","avatar_url":"https://github.com/lloydmeta.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Game of Life [![CI](https://github.com/lloydmeta/gol-rs/actions/workflows/ci.yml/badge.svg)](https://github.com/lloydmeta/gol-rs/actions/workflows/ci.yml)\n\nConway's Game of Life implemented in Rust and OpenGL via [`gfx-rs`](https://github.com/gfx-rs).\n\nDone as an exercise to practise Rust and get my feet with with OpenGL.\n\nAreas explored:\n  * General rendering\n  * Vertex, fragment shaders\n  * [Pipeline state objects](https://gfx-rs.github.io/2016/01/22/pso.html)\n  * [Rayon](https://github.com/nikomatsakis/rayon) for parallel processing\n  * Building and deploying cross-platform binaries via GH Actions\n\n![gol running](gol.gif)\n\n## Usage\n\nYou can run the executable by downloading one of the binaries in [releases](https://github.com/lloydmeta/gol-rs/releases), or\nvia `cargo install gol`, then running `gol`, or if you've cloned the repo,`cargo run`.\n\n```bash\nOPTIONS:\n    -h, --grid-height \u003cgrid-height\u003e        Height of the grid [default: 80]\n    -w, --grid-width \u003cgrid-width\u003e          Width of the grid [default: 100]\n    -u, --update-rate \u003cupdate-rate\u003e        Number of updates to the game board per second [default: 30]\n        --window-height \u003cwindow-height\u003e    Height of the window [default: 768]\n        --window-width \u003cwindow-width\u003e      Width of the window [default: 1024]\n```\n\nIf running via `cargo`, options need to be passed by appending `--`, i.e. `cargo run -- -h 10 -w 10`.\n\n## Todo\n\n  * Optimise!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flloydmeta%2Fgol-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flloydmeta%2Fgol-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flloydmeta%2Fgol-rs/lists"}