{"id":19587551,"url":"https://github.com/mcgalcode/pylattica","last_synced_at":"2026-02-25T00:18:11.508Z","repository":{"id":44629660,"uuid":"468152378","full_name":"mcgalcode/pylattica","owner":"mcgalcode","description":"A simple framework for prototyping lattice evolution simulations e.g. cellular automata, lattice gas simulations, lattice Monte Carlo etc.","archived":false,"fork":false,"pushed_at":"2025-04-08T20:24:58.000Z","size":19562,"stargazers_count":10,"open_issues_count":2,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-12T18:33:35.842Z","etag":null,"topics":["chemistry","lattice","materials-science","simulation"],"latest_commit_sha":null,"homepage":"https://mcgalcode.github.io/pylattica/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mcgalcode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2022-03-10T01:32:43.000Z","updated_at":"2025-04-08T20:25:03.000Z","dependencies_parsed_at":"2023-10-05T05:28:14.933Z","dependency_job_id":"ae85674c-e15b-4e8f-8632-8a163755b9d9","html_url":"https://github.com/mcgalcode/pylattica","commit_stats":{"total_commits":158,"total_committers":3,"mean_commits":"52.666666666666664","dds":"0.012658227848101222","last_synced_commit":"9b6d8f43b0f269576b720826257ae2eb5652153b"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/mcgalcode/pylattica","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcgalcode%2Fpylattica","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcgalcode%2Fpylattica/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcgalcode%2Fpylattica/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcgalcode%2Fpylattica/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mcgalcode","download_url":"https://codeload.github.com/mcgalcode/pylattica/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mcgalcode%2Fpylattica/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29312149,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T17:48:59.043Z","status":"ssl_error","status_checked_at":"2026-02-10T17:45:37.240Z","response_time":65,"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":["chemistry","lattice","materials-science","simulation"],"created_at":"2024-11-11T08:05:19.748Z","updated_at":"2026-02-25T00:18:11.476Z","avatar_url":"https://github.com/mcgalcode.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pylattica - A Framework for Lattice and Cellular Automata Simulation\n\n![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/mcgalcode/pylattica/testing.yaml?branch=master)\n[![Codecov](https://img.shields.io/codecov/c/github/mcgalcode/pylattica?style=for-the-badge)](https://app.codecov.io/gh/mcgalcode/pylattica)\n\npylattica is a Python library for prototyping and constructing cellular automaton and lattice models. The core features of these models are:\n\n- There is a simulation state that evolves over time by repeatedly applying some unchanging rule\n- The state of the simulation has a topology defined by a network of sites (i.e. each site has an unchanging set of neighbor sites)\n- Each site has a state value associated with it that could change at each simulation step\n- The future state of a site is determined by the state of its neighbor sites\n\nThese rules capture many common models in chemistry and materials science. For instance, in the Ising Model, spins are updated with probabilities related to the neighboring spins. In a Lattice Gas Automaton, the velocities of particles are determined collisions with neighboring particles. In lattice Monte Carlo simulations of surface catalysis, adsorption, desorption, and surface diffusion are dependent on the occupancy of neighboring sites.\n\npylattica aims to provide a general framework for prototyping these types of lattice simulations. It prioritizes providing a straightforward method for experimenting with different interaction rules and interaction neighborhoods. It provides some simple utilities for analyzing simulation states, and in the case of square grid systems, it provides visualization tools for the system state itself. Additionally, since this tool is focused on materials science, there is functionality for mapping system states to CIF files (for use in crystal lattice simulations).\n\n## Installation\n\n`pylattica` can be installed from the [PyPi source](https://pypi.org/project/pylattica/) by running:\n\n```\npip install pylattica\n```\n\nIt can also be installed by cloning this repository, then running the following in the root of the repository:\n\n```\npip install .\n```\n\n### Documentation\n\nDetailed documentation for this library can be found [here](https://mcgalcode.github.io/pylattica/).\n\n### Jupyter Notebook Examples\n\nExample notebooks are included in [docs/guides](https://github.com/mcgalcode/pylattica/tree/master/docs/guides).\n\n### Note about Windows\n\n`pylattica` makes use of Python's fork functionality in the multiprocessing library. This functionality is not available on windows, so certain features (the `parallel` keyword for the `SynchronousRunner`) will not be available on Windows platforms.\n\n## Development\n\n### Installation for development\n\nTo install pylattica for development purposes, use the standard editable installation command:\n\n```\npip install -e .\n```\n\nfrom the root of the repository.\n\n### Running tests\n\nAfter you have installed the repository, ensure that `pytest` is installed, then run:\n\n```\npytest\n```\n\nfrom the root of the repository.\n\n\n### Building Documentation\n\nThe docs for this project are built using mkdocs. To build the documentation\n\n```\npip install '.[docs]'\nmkdocs build\n```\n\nTo run the documentation server locally:\n\n```\nmkdocs serve\n```\n\n### Linting\n\nThis project uses the `black` package for style and formatting, and `prospector` for type checking and other lint warnings. These packages are not listed as dependencies of this project, so you can install them manually. This is partially because this project doesn't rely on specific versions of them, and we expect developers to have their own installations already. You can run them as follows:\n\nTo assess the changes that will happen if you run the `black` linter, run the following:\n\n```\nblack --check src\n```\n\nTo automatically make the changes, remove the `--check` flag:\n\n```\nblack src\n```\n\nTo run all other linters with prospector, use this:\n\n```\nprospector\n```\n\nIn the top of this repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcgalcode%2Fpylattica","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmcgalcode%2Fpylattica","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmcgalcode%2Fpylattica/lists"}