Wave Function Collapse for Voxel Input

github crates.io docs.rs

This crate provides a solver for tile-based Wave Function Collapse. It automatically generates rules for map generation from preliminary voxel files. Currently, the crate only supports MagicaVoxel XRAW file formats.

Installation

Add to your current working directory:

cargo add wfc_voxel

Or add to your Cargo.toml:

wfc_voxel = "target_version"

Usage

```rust // Initalize NodeSet from directory let nodeset = NodeSet::new(NODESIZE, "path/to/voxel/files", exclusions);

// Initialize Solver let solver = Solver::new([MAPWIDTH, MAPHEIGHT, MAPWIDTH], nodeset.bitmask(), &nodeset);

// Get solved map let map = solver.solve().unwrap();

// Dimensions of map let shape = solver.shape();

for x in 0..shape[0] { for y in 0..shape[1] { for z in 0..shape[2] {

        // Get node id and asset name
        let node_id = map[[x, y, z]];
        let asset_name = node_set.get_asset_name(&node_id).unwrap();

        // Do something
    }
}

} ```

Examples

See Isometric Demo for an example project. Preview