{"id":23329175,"url":"https://github.com/jameshiew/infinigen","last_synced_at":"2025-04-09T16:06:41.641Z","repository":{"id":173645082,"uuid":"650249472","full_name":"jameshiew/infinigen","owner":"jameshiew","description":"🌎 Demo for procedural generation using the Bevy game engine","archived":false,"fork":false,"pushed_at":"2025-04-08T02:10:46.000Z","size":39028,"stargazers_count":79,"open_issues_count":1,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-09T16:06:36.214Z","etag":null,"topics":["bevy","bevy-engine","gamedev","procedural-generation","rust","sandbox","voxel","voxel-engine"],"latest_commit_sha":null,"homepage":"https://github.com/jameshiew/infinigen","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/jameshiew.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2023-06-06T17:01:37.000Z","updated_at":"2025-04-02T20:17:44.000Z","dependencies_parsed_at":"2024-07-25T00:45:25.168Z","dependency_job_id":"cf55e23b-2d2d-4876-9cfb-d91947ad8809","html_url":"https://github.com/jameshiew/infinigen","commit_stats":null,"previous_names":["jameshiew/infinigen"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jameshiew%2Finfinigen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jameshiew%2Finfinigen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jameshiew%2Finfinigen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jameshiew%2Finfinigen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jameshiew","download_url":"https://codeload.github.com/jameshiew/infinigen/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248065287,"owners_count":21041871,"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":["bevy","bevy-engine","gamedev","procedural-generation","rust","sandbox","voxel","voxel-engine"],"created_at":"2024-12-20T21:32:47.727Z","updated_at":"2025-04-09T16:06:41.620Z","avatar_url":"https://github.com/jameshiew.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# infinigen [![CI](https://github.com/jameshiew/infinigen/actions/workflows/ci.yml/badge.svg)](https://github.com/jameshiew/infinigen/actions/workflows/ci.yml)\n\nMinecraft-like procedural generation using the [Bevy game engine](https://bevyengine.org/).\n\n- chunks along all axes (X, Y and Z)\n- adjustable zoom level for viewing a world at different levels of detail\n\n![Main screenshot](screenshots/main.webp \"Screenshot\")\n![Zoomed out screenshot](screenshots/zoomed_out.webp \"Zoomed out\")\n\n## Why?\n\nThis is a sandbox for experimenting with Bevy and efficient chunk rendering, and trying out different things in Rust. There are no gameplay elements like physics or editing blocks. Eventually I'd like to implement chunk generation and meshing on the GPU and distance based LOD (level of detail) to maximize the number of chunks that can be loaded as fast as possible. At minimum, I'm keeping this code up to date with the latest Bevy version as new versions are released.\n\n## Quickstart\n\nMake sure [OS dependencies for Bevy](https://bevyengine.org/learn/quick-start/getting-started/setup/#installing-os-dependencies) are installed.\n\nThese commands should be run from within the root directory of the repo in order to pick up assets, otherwise block textures will be replaced with colours.\n\n```shell\ncargo run --release # best performance\ncargo run --release --features jemalloc  # on macOS/Linux\n```\n\nor\n\n```shell\ncargo run --features bevy/dynamic_linking  # compiles fastest\n```\n\n### Controls\n\n- \u003ckbd\u003eW\u003c/kbd\u003e\u003ckbd\u003eA\u003c/kbd\u003e\u003ckbd\u003eS\u003c/kbd\u003e\u003ckbd\u003eD\u003c/kbd\u003e - to move around\n- \u003ckbd\u003eSpace\u003c/kbd\u003e - ascend\n- \u003ckbd\u003eShift\u003c/kbd\u003e - descend\n- \u003ckbd\u003eF3\u003c/kbd\u003e - toggle wireframes\n- \u003ckbd\u003eF7\u003c/kbd\u003e - toggle debug panels\n\n### Configuration\n\nSee `config.example.yml` for what can be configured. Pass the path to a configuration file when launching.\n\n```shell\ncargo run --release -- --config config.example.yml\n```\n\nSpecific settings can also be overridden via environment variables.\n\n```shell\nINFINIGEN_WORLD=Flat cargo run --release\n```\n\n## Development\n\nAll textures are derived from images generated with [Midjourney](https://midjourney.com).\n\nSimplest way to change how the world generates is to edit [crates/extras/src/worldgen/mountain_islands.rs](crates/extras/src/worldgen/mountain_islands.rs).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjameshiew%2Finfinigen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjameshiew%2Finfinigen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjameshiew%2Finfinigen/lists"}