# 🦠Cytogon

[](https://docs.rs/cytogon)
[](https://crates.io/crates/cytogon)
🦠Cytogon — A mesh generation library based on cellular automata.
## Overview
🦠Cytogon allows generating 2D and 3D meshes from cellular automata.
```rust
// Create a 128³ grid and randomly fill it at 60%
let mut cave = Grid3::new(UVec3::new(128, 128, 128));
cave.fill_rand(0.6, rand::thread_rng());
// CA rule: 13-26/13-14,17-19/2/M
let rule = Rule3 {
birth: RuleBitset3::from(13u8..=14u8) | (17u8..=19u8).into(),
survive: (13u8..=26u8).into(),
};
// Iteratively apply the cellular automaton rule 5 times
for _ in 0..5 {
cave.smooth(&rule);
}
```
For a viewer (GUI), see the [🔬 μscope](https://github.com/djeedai/cytogon/tree/main/uscope) repository ([📦`uscope`](https://crates.io/crates/uscope) crate).