Skip to content

A Wave Function Collapse solver library that uses preliminary voxel files.

License

Notifications You must be signed in to change notification settings

BonsonW/wfc_voxel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

// Initalize NodeSet from directory
let node_set = NodeSet::new(NODE_SIZE, "path/to/voxel/files", exclusions);

// Initialize Solver
let solver = Solver::new([MAP_WIDTH, MAP_HEIGHT, MAP_WIDTH], node_set.bit_mask(), &node_set);

// 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

About

A Wave Function Collapse solver library that uses preliminary voxel files.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages