{"id":27741505,"url":"https://github.com/wildpixelgames/voxelis","last_synced_at":"2026-03-06T05:09:22.828Z","repository":{"id":290274311,"uuid":"973875544","full_name":"WildPixelGames/voxelis","owner":"WildPixelGames","description":"Tiny voxels. Huge worlds. Voxelis — a pure Rust voxel engine based on Sparse Voxel Octree DAG.","archived":false,"fork":false,"pushed_at":"2025-04-28T04:47:29.000Z","size":3488,"stargazers_count":30,"open_issues_count":2,"forks_count":2,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-30T20:28:32.410Z","etag":null,"topics":["3d","bevy-engine","dag","data-structures","engine","game-development","gamedev","graphics","octree","procedural-generation","rust","simulation","sparse-voxel-octree","svo","voxel","voxel-engine"],"latest_commit_sha":null,"homepage":"https://github.com/WildPixelGames/voxelis","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WildPixelGames.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","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-04-27T23:05:34.000Z","updated_at":"2025-07-24T17:29:11.000Z","dependencies_parsed_at":"2025-04-28T16:30:14.064Z","dependency_job_id":null,"html_url":"https://github.com/WildPixelGames/voxelis","commit_stats":null,"previous_names":["wildpixelgames/voxelis"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/WildPixelGames/voxelis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WildPixelGames%2Fvoxelis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WildPixelGames%2Fvoxelis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WildPixelGames%2Fvoxelis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WildPixelGames%2Fvoxelis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WildPixelGames","download_url":"https://codeload.github.com/WildPixelGames/voxelis/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WildPixelGames%2Fvoxelis/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268512159,"owners_count":24261887,"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","status":"online","status_checked_at":"2025-08-03T02:00:12.545Z","response_time":2577,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["3d","bevy-engine","dag","data-structures","engine","game-development","gamedev","graphics","octree","procedural-generation","rust","simulation","sparse-voxel-octree","svo","voxel","voxel-engine"],"created_at":"2025-04-28T16:19:59.312Z","updated_at":"2026-03-06T05:09:22.787Z","avatar_url":"https://github.com/WildPixelGames.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/WildPixelGames/voxelis/master/docs/voxelis_logo.png\"\n       alt=\"Voxelis\" width=\"480\"\u003e\u003cbr\u003e\n  \u003csub\u003eTiny voxels. Huge worlds. Zero hassle.\u003c/sub\u003e\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://crates.io/crates/voxelis\"\u003e\u003cimg src=\"https://img.shields.io/crates/v/voxelis.svg?style=for-the-badge\u0026color=orange\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://docs.rs/voxelis\"\u003e\u003cimg src=\"https://img.shields.io/badge/docs‑rs-online-orange.svg?style=for-the-badge\"\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-MIT%20OR%20Apache--2.0-orange?style=for-the-badge\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003e **\"Need voxels? Reach for Voxelis.\"**\n\u003e Powered by VoxTree — a deliciously crafted SVO DAG with batching. Drop it into your Rust, C++, Godot, or Bevy project and start carving worlds down to centimetre-level detail — while your memory bill stays shockingly low.\n\n---\n\n## 🚀 Why Voxelis?\n\n* **Tiny voxels** (4 cm resolution) without melting your RAM.\n* **Shared memory** — DAG compression at 99.999% ratio.\n* **Batch edits** — mutate hundreds of thousands of voxels in a blink.\n* **Zero garbage collection** — just deterministic reference counting with generations.\n* **Built for gamedev** — chunk grids, paging hooks, multithread-ready.\n* **Fearless Rust** — no UB, no data races, only pure, undiluted speed.\n\n\u003e This isn't just another voxel crate. It's a foundation for colossal, high-fidelity worlds.\n\n---\n\n## ✨ Benchmarks: \"Speed so fast, it hurts.\"\n\n| Operation                       | 32³ Voxels | Single Op   | Batch Op    | Notes |\n|----------------------------------|-------------|-------------|-------------|-------|\n| **fill()**                      | 32K         | **9 ns**    | **10.6 ns** | ⚡ Single leaf collapse |\n| **set_uniform()**               | 32K         | **5.17 ms** | **23.1 μs** | 🚀 ~224× faster |\n| **set_checkerboard()**          | 32K         | **2.52 ms** | **116.6 μs** | 🚀 ~22× faster |\n| **set_sum() (high-entropy)**     | 32K         | **5.92 ms** | **194.1 μs** | 🌪️ Complex pattern, ~30× faster |\n| **perlin dunes (high-entropy)**  | 32K         | -           | **~12 μs**  | 🌎 ~1380 chunks/frame (60 FPS) |\n\n\u003e Full raw results? Check [benches-raw.md](https://github.com/WildPixelGames/voxelis/blob/master/docs/benches-raw.md).\n\u003e\n\u003e Summary tables? See [benches-tables.md](https://github.com/WildPixelGames/voxelis/blob/master/docs/benches-tables.md).\n\u003e\n\u003e Full commentary and insights? Dive into [benches.md](https://github.com/WildPixelGames/voxelis/blob/master/docs/benches.md).\n\n---\n\n## 🔧 Quick Start\n\n```rust\nuse glam::IVec3;\nuse voxelis::{\n    MaxDepth, VoxInterner,\n    spatial::{VoxOpsBatch, VoxOpsRead, VoxOpsWrite, VoxTree},\n};\n\nfn main() {\n    let mut interner = VoxInterner::\u003cu8\u003e::with_memory_budget(256 * 1024 * 1024);\n    let mut tree = VoxTree::new(MaxDepth::new(5)); // 32³ voxels (chunk)\n\n    let mut batch = tree.create_batch();\n    batch.set(\u0026mut interner, IVec3::new(3, 0, 4), 1); // stone\n\n    tree.apply_batch(\u0026mut interner, \u0026batch);\n    assert_eq!(tree.get(\u0026interner, IVec3::new(3, 0, 4)), Some(1));\n}\n```\n\nAdd via Cargo:\n\n```bash\ncargo add voxelis glam@0.29.3 # Requires Rust 1.86+, optionally use `wide` for SIMD meshing\n```\n\n---\n\n## 🔍 Under the Hood\n\n| Concept | Purpose |\n|:--------|:--------|\n| **VoxTree** | The SVO-DAG — compressed octree core. |\n| **VoxInterner** | Shared memory for leaves/branches. Hash-consed. |\n| **Batch** | Bottom-up batched editing — mutate at light speed. |\n| **VoxOps** | Trait for per-voxel manipulation — set, get, fill, clear. |\n| **BlockId** | 64-bit magic to encode voxel state compactly. |\n| **Mesher** | SIMD greedy meshing (WIP) — turn voxels into worlds. |\n\nMore? Crack open **The Voxelis Bible** ([docs/The Voxelis Bible_ From Pixels to Worlds - An In-Depth Guide v2.3.pdf](https://github.com/WildPixelGames/voxelis/blob/master/docs/The%20Voxelis%20Bible_%20From%20Pixels%20to%20Worlds%20-%20An%20In-Depth%20Guide%20v2.3.pdf)) — 38 pages of dangerously concentrated nerdery.\n\n---\n\n## 🌏 Roadmap: Into the Voxelverse\n\n* Multithreaded interner with Rayon.\n* GreedyMesh v2 (distance-field LOD magic).\n* GPU frustum-culling traversals.\n* OBJ / glTF import/export.\n* True out-of-core paging (MMAP + LRU).\n\n\u003e PRs welcome. Bonus points if your patch makes the CI bot 🐈‍🔄 purr.\n\n---\n\n## 🚡 Run Your Own Benches\n\n```bash\ncargo bench -p voxelis_bench\n```\n\nHardware: Apple M3 Max, Rust 1.86 stable, `-C target-cpu=native`, final profile.\n\nWant real numbers? We've got them — [benches-tables.md](https://github.com/WildPixelGames/voxelis/blob/master/docs/benches-tables.md) and [benches-raw.md](https://github.com/WildPixelGames/voxelis/blob/master/docs/benches-raw.md) await.\n\n---\n\n## 👍 Contributing\n\n1. Fork and branch (`feat/my-magnificent-contribution`).\n2. `cargo test \u0026\u0026 cargo bench`\n3. Open PR, include new benchmark delta.\n4. Bask in voxel-induced glory.\n\n---\n\n## 🌐 License\n\nDual licensed under MIT / Apache-2.0.\nPick your poison, build something massive.\n\n---\n\n## ⚠️ Warning\n\nVoxelis may cause extreme enthusiasm, uncontrollable world-building, and compulsive Rust evangelism. Consult your GPU before operating heavy voxel engines. 😜\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwildpixelgames%2Fvoxelis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwildpixelgames%2Fvoxelis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwildpixelgames%2Fvoxelis/lists"}