{"id":42912777,"url":"https://github.com/wfvining/liquid-ca","last_synced_at":"2026-01-30T16:59:11.724Z","repository":{"id":36978332,"uuid":"143017348","full_name":"wfvining/liquid-ca","owner":"wfvining","description":"The Liquid Cellular Automaton","archived":false,"fork":false,"pushed_at":"2022-11-04T16:17:47.000Z","size":184,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-06-12T17:39:44.408Z","etag":null,"topics":["cellular-automata","density-classification","majority","mobility","movement"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wfvining.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}},"created_at":"2018-07-31T13:23:25.000Z","updated_at":"2022-07-05T16:26:20.000Z","dependencies_parsed_at":"2023-01-17T10:45:31.002Z","dependency_job_id":null,"html_url":"https://github.com/wfvining/liquid-ca","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/wfvining/liquid-ca","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wfvining%2Fliquid-ca","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wfvining%2Fliquid-ca/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wfvining%2Fliquid-ca/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wfvining%2Fliquid-ca/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wfvining","download_url":"https://codeload.github.com/wfvining/liquid-ca/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wfvining%2Fliquid-ca/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28915942,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T16:37:38.804Z","status":"ssl_error","status_checked_at":"2026-01-30T16:37:37.878Z","response_time":66,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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","density-classification","majority","mobility","movement"],"created_at":"2026-01-30T16:59:11.550Z","updated_at":"2026-01-30T16:59:11.696Z","avatar_url":"https://github.com/wfvining.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Liquid Cellular Automata\n\n[![Build Status](https://travis-ci.com/wfvining/liquid-ca.svg?branch=master)](https://travis-ci.com/wfvining/liquid-ca)\n\nImplements the density classification task in a liquid cellular\nautomaton.\n\nAn example of the simulation running is [here](https://youtu.be/Cbwa5ovKSgU).\n\nFor more information look [here](https://www.cs.unm.edu/~wfvining/liquid-brains.html)\n\nThe full paper is available [here](https://dx.doi.org/10.1098/rstb.2018.0375)\n\n## Previous Versions\n\nFor the version of this code used in the paper [\"How does mobility\nhelp distributed systems\ncompute?\"](https://dx.doi.org/10.1098/rtsb.2018.0375) checkout\n`v0.1.1`.\n\n```\n$ git checkout v0.1.1\n```\n\n## Dependencies\n\n* [SFML](https://www.sfml-dev.org/) is used for the visualization (viz can be disabled \n  if you do not have this installed, spp below).\n  `sudo apt install libsfml-dev`\n* pthreads\n\nThe code has been built and tested with the viz on Ubuntu 16.05,\n18.04, and FreeBSD 11.2. It has been built on OSX without the viz.\n\n## Build\n```bash\n$ cd liquid-ca\n$ mkdir build\n$ cd build\n$ cmake -DCMAKE_BUILD_TYPE=Release .. \u0026\u0026 make\n```\n\n### Build without vizualization\n\nTo compile with no vizualization pass `-DBUILD_VIZ=Off` to `cmake`.\n\n### Tests\n\nTo run tests do `make test`\n\n## Experiments\nIn general every experiment is its own executable they take the\nfollowing standard options:\n\n| Option                      | Model parameter                      |\n| --------------------------- | ------------------------------------ |\n| `--num-agents \u003cN\u003e`          | N                                    |\n| `--arena-size \u003cL\u003e`          | L                                    |\n| `--communication-range \u003cr\u003e` | r                                    |\n| `--max-time \u003cT\u003e`            | T                                    |\n| `--correlated \u003csigma\u003e`      | use CRW with sigma std. dev.         |\n| `--seed \u003cseed\u003e`             | random seed                          |\n| `--by-position`             | initialize agent state by x position |\n| `--speed \u003cs\u003e`               | agent speed                          |\n\nSome experiments take additional options.\n\n### Velocity experiment\nBasic experiment that evaluates the performance of the LCA for initial\ndensities in the range [0,1].\n\n`$ ./velocity_experiment \u003citerations\u003e [options listed above]`\n\nEvaluates each initial density with `iterations` independent random\ninitial conditions for each initial density.\n\nOutputs the fraction of correctly classified initial conditions for\neach initial density.\n\n### Time\n`velocity_experiment_time` outputs information about the time to reach\nconsensus and the mean/median cumulative degree at the moment consensus is\nreached. Always runs 100 iterations.\n\n### Visualization\nCurrently will output a png of the viz every 10 time steps (sorry, I\nshould make that optional).\n\n`./sim_viz \u003cinitial-density\u003e [optons from above]`\n\nTo start the sim press the `spacebar`, to speed up/down press the corresponding `arrow key` and to quit press `q`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwfvining%2Fliquid-ca","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwfvining%2Fliquid-ca","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwfvining%2Fliquid-ca/lists"}