{"id":28204483,"url":"https://github.com/deridev/pixelands","last_synced_at":"2026-04-28T17:35:17.380Z","repository":{"id":293512501,"uuid":"984284825","full_name":"deridev/pixelands","owner":"deridev","description":"A 2D cellular automata particle simulation inspired by classics like Powder Toy and Noita, built in Rust + Bevy.","archived":false,"fork":false,"pushed_at":"2025-05-15T17:28:24.000Z","size":45,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-15T18:37:01.017Z","etag":null,"topics":["bevy","bevy-engine","bevy-game","cellular-automata","physics","powder-toy","rust","simulation"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/deridev.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,"zenodo":null}},"created_at":"2025-05-15T17:21:54.000Z","updated_at":"2025-05-15T17:29:49.000Z","dependencies_parsed_at":"2025-05-15T18:39:57.941Z","dependency_job_id":"3149ad1d-843a-4e26-b0ef-ffb8e38d9913","html_url":"https://github.com/deridev/pixelands","commit_stats":null,"previous_names":["deridev/pixelands"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/deridev/pixelands","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deridev%2Fpixelands","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deridev%2Fpixelands/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deridev%2Fpixelands/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deridev%2Fpixelands/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deridev","download_url":"https://codeload.github.com/deridev/pixelands/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deridev%2Fpixelands/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32392300,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T14:34:11.604Z","status":"ssl_error","status_checked_at":"2026-04-28T14:32:37.009Z","response_time":56,"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":["bevy","bevy-engine","bevy-game","cellular-automata","physics","powder-toy","rust","simulation"],"created_at":"2025-05-17T06:11:16.071Z","updated_at":"2026-04-28T17:35:17.368Z","avatar_url":"https://github.com/deridev.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bevy Particle Automata\n\nA 2D cellular automata particle simulation inspired by classics like Powder Toy and Noita. Built with the [Bevy game engine](https://bevyengine.org/), this project allows you to experiment with different elements and observe their dynamic interactions in a procedurally generated, infinite world.\n\n## Features\n\n*   **Interactive Particle Simulation:** Watch as elements react to each other, gravity, and user input.\n*   **Three Core Elements:**\n    *   **Sand (Press `1`):** A classic falling particle that forms piles.\n    *   **Water (Press `2`):** A flowing liquid that spreads out and seeks its own level.\n    *   **Wall (Press `3`):** An immovable solid, perfect for creating boundaries and structures.\n*   **Infinite Chunk System:** Simulate a virtually limitless world! The simulation space is managed by an efficient chunk-based system.\n    *   **Dirty Rects Optimization:** Only modified areas of chunks are re-processed and re-rendered, significantly boosting performance.\n*   **Acceleration-Based Particle Movement:** Particles don't just teleport; they accelerate due to gravity and other simulated forces, leading to more natural-looking motion, stacking, and flowing behaviors.\n\n## Controls\n\n### Camera\n*   **`WASD`**: Move the camera view (pan up, left, down, right).\n*   **`Mouse Scroll`**: Zoom in and out.\n\n### Element Manipulation\n*   **`1`**: Select Sand.\n*   **`2`**: Select Water.\n*   **`3`**: Select Wall.\n*   **`Left Mouse Click`**: Place the selected element at the cursor's position.\n*   **`Right Mouse Click`**: Remove an element at the cursor's position.\n\n### Debugging\n*   **`F1`**: Toggle the debug UI (may show performance metrics, chunk information, etc.).\n\n## Technical Details\n\n*   **Engine:** Built using the [Bevy Engine](https://bevyengine.org/), a modern, data-driven game engine written in Rust, chosen for its performance, modularity, and active community.\n*   **Simulation Core:** A custom cellular automata engine where each pixel's state (element type, velocity, etc.) is updated based on its own properties and those of its neighbors. This creates emergent behaviors for the different elements.\n*   **World Management:** Utilizes an \"infinite\" chunk system to dynamically process parts of the simulation space. Dirty rectangle tracking ensures that only regions with changes are updated, optimizing both simulation logic and rendering.\n\n## Getting Started\n\n### Prerequisites\n*   **Rust:** Ensure you have Rust and Cargo installed. You can get them from [rustup.rs](https://rustup.rs/).\n*   **System Dependencies:** Bevy has some [platform-specific dependencies](https://github.com/bevyengine/bevy/blob/main/docs/linux_dependencies.md) (especially for Linux). Please check the Bevy documentation if you encounter build issues.\n\n### Running the Simulation\n1.  **Clone the repository:**\n    ```bash\n    git clone https://github.com/deridev/pixelands.git\n    cd pixelands\n    ```\n\n2.  **Run the application:**\n    For optimal performance, run in release mode:\n    ```bash\n    cargo run --release\n    ```\n    For quicker iteration during development (with less optimization):\n    ```bash\n    cargo run\n    ```\n\n## Future Ideas\nThis project is a foundation. Here are some potential features for the future:\n*   More elements (e.g., fire, wood, steam, acid, gas).\n*   Complex element interactions and chemical reactions.\n*   Temperature simulation affecting element states.\n*   Save/Load functionality for your creations.\n*   Adjustable brush sizes and shapes for placing elements.\n*   Sound effects for particle interactions.\n\n## License\nDistributed under the MIT License.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderidev%2Fpixelands","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fderidev%2Fpixelands","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderidev%2Fpixelands/lists"}