Extensions
  • Home
  • Add-ons
  • Themes
  • Approval Queue
  • About
  • Upload Extension
  • Sign in
  • BLENDER.ORG

    • Download

      Get the latest Blender, older versions, or experimental builds.

    • What's New

      Stay up-to-date with the new features in the latest Blender releases.

    DEVELOPMENT

    • Roadmap

      See which projects are currently being worked on and what's next.

    • Documentation

      Guidelines, release notes and development docs.

    LEARNING & RESOURCES

    • Blender Studio

      Access production assets and knowledge from the open movies.

    • Manual

      Documentation on the usage and features in Blender.

    • Benchmark

      A platform to collect and share results of the Blender Benchmark.

    • Blender Conference

      The yearly event that brings the community together.

    DONATE

    • Development Fund

      Support core development with a monthly contribution.

    • One-time Donations

      Perform a single donation with more payment options available.

All Add-ons

Add-on WFC 3D Generator
WFC 3D Generator

Simple WFC 3D generator for procedural creation of objects.
Add-on by Jonny-B
About What's New Permissions Reviews Version History
The cube with simple grid constraints Random object with symmetry on all axes A sodium chloride crystal lattice in just over a minute. A simple maze created with geometry constraints. Simple frequency constraints tutorial Randomly generated village with fixed position, dimensions, grid, neighbor constraints, and random transformations Sudoku puzzle created with (region) frequency constraints Random pipe construction with connector constraints and transformations Connector constraints and XZ symmetry Noise and transformations Simplified map generation with neighbor constraints (any) and auto weight feature A random maze consisting of 3 parts and some transformation constraints Alternative building block shapes possible using offsets Example with symmetry on all axes and flipping enabled. Randomly generated building consisting of 3 building blocks Example of randomly generated architecture consisting of 4 building blocks Offsets and transformations Example with edge and face constraints Example with transformation constraints

The WFC 3D Generator add-on procedurally generates a new object from a collection of objects using a simple implementation of the Wave Function Collapse algorithm with constraints.

Each object in the source collection can use custom properties to define the permitted neighbors. The generator randomly combines these objects in a 3D grid while adhering to the neighbor constraints. The allowed position in the grid can be defined by grid constraints.

Quick Start Guide

  1. Install and enable the WFC 3D Generator add-on
  2. Create a source collection with some objects
  3. Define constraints:
    1. open 3D Viewport: Press 'N' > WFC 3D Edit > WFC 3D Constraints Editor
    2. select a source collection
    3. add some constraints to objects
  4. Create a new object:
    1. open 3D Viewport: WFC 3D Gen > WFC 3D Generator
    2. Press "Generate WFC 3D Model"

Some examples can be found on GitHub.

Some tutorial videos can be found on Youtube.

Features

The WFC 3D Generator Extension implements a very simple variant of the Wave Function Collapse algorithm. With cleverly chosen building blocks and constraints, any object can be created on a random basis, but taking the constraints into account, e.g., works of art, buildings, cities, game maps, and even galaxies.

  • Simple generator interface WFC 3D Gen:
    • It allows you to watch the WFC algorithm at work thanks to a render delay. Rendering can be paused or canceled at any time.
    • The cherry-picking function automatically starts generation after an adjustable delay to generate the desired result more quickly.
    • In addition to the grid size, you can set the cell size and an offset between even and odd rows, columns, and files.
  • Convenient constraint editor WFC 3D Edit:
    • All currently supported constraints can be easily assigned to objects there.
    • Offers the option of defining constraints for one or more objects simultaneously (object constraints) or for the entire source collection (collection defaults).
    • Allows you to select objects in the 3D viewport or outliner with manual or automatic transfer of the selected objects
    • Auto-Save: every constraint change is automatically saved as a custom property when enabled
  • WFC 3D Validator:
    • Checks the source collection with building blocks to see whether transformations (scale, rotate) have been applied and whether neighbors exist in neighbor constraints.
  • WFC 3D Backup:
    • Import/Export all WFC 3D Generator constraints to/from a JSON file.
  • WFC 3D Rotation Tool:
    • Copies and rotates an object along with its adjacency constraints.

Constraints Overview

  • Adjacency Constraints:
    • Neighbor Constraints: define a list of allowed neighbors for all possible directions (at once); Advantage: easy to define, Disadvantage: difficult to expand
    • Connector Constraints: define a connector name for any direction that match with the connector name of possible neighbors with the same connector name in the opposite direction; Advantage: building blocks are easily expandable, Disadvantage: not always easy to define
    • Connector Exclusion Constraints: define a list of connector names that are not allowed for a specific direction
    • Multiple Connector Constraints: define a list of connector names for any direction that match with the connector name of possible neighbors with the same connector name in the opposite direction;
    • Geometry Constraints: Edges or faces are used to determine whether two objects can be placed next to each other.
    • Empty Neighbor Constraints: These constraints prohibit empty neighbors.
  • Dimensions Constraints:
    • This enables building blocks that are larger than a cell.
  • Fixed Position Constraints:
    • This allows you to set a fixed starting position within the grid in order to achieve a more predictable result.
  • Grid and Region Constraints:
    • Allows you to specify where an object may be located within the grid.
  • Distance Constraints:
    • Rules that restrict the placement of building blocks based on their distance from a specific point or another building block.
  • Probability Constraints:
    • These constraints increase or decrease the probability of an object being selected at random.
  • Region Probability Constraints:
    • These constraints increase or decrease the probability of an object being selected at random in a specific region.
  • Frequency Constraints:
    • Define how often the same object or any other object may occur in the immediate vicinity or on one of the 3 axes XYZ.
  • Region Frequency Constraints:
    • Define how often the same object may occur in a specific region.
  • Object Frequency Constraints:
    • Define how often a specific object may occur in a in the immediate vicinity or on one of the 3 axes.
  • Symmetry Constraints:
    • These constraints allow mirror-symmetric and/or rotation-symmetric objects to be generated.
    • It is possible to transfer random transformations to mirror partners, flip mirror partners accordingly, or define other building blocks as mirror partners.
  • Transformations:
    • These are not really restrictions. This allows you to randomize the position, size, rotation, and flipping of building blocks.
  • Noise Constraints:
    • Noise constraints either influence the probability of an object occurring or replace random values in transformations with noise values.

More information about the constraints can be found on GitHub.

An overview of all custom properties can be found on GitHub.

How the WFC 3D Generator algorithm works

  1. Initializes each cell of the grid with a list of permitted building blocks. Grid and region constraints are taken into account.
  2. Find the cell with the lowest entropy, in this case, the cell with the smallest list of building blocks. If there is more than one, the first or a random one is selected.
  3. Collapse the cell: Select a random object from the list of building blocks. Dimensions, empty neighbor, and probability constraints are taken into account
  4. Propagate the constraints of the randomly selected building block to the neighborhood and the entire grid. Symmetry constraints, (region) frequency constraints, distance constraints, dimensions constraints, and adjacency constraints are applied.
  5. Repeat steps 2-4 until all cells are collapsed.
  6. Render the grid in the order in which cells are collapsed. Transformations are applied.

More information about the constraints can be found on GitHub.

Limitations and Known Issues

  • For neighbor restrictions to take effect, there must be more than one object in the source collection.
  • Region constraints don't work with all symmetry constraint variants
  • Dimensions constraints can cause empty cells, especially in conjunction with symmetry constraints
  • Not all frequency constraints work with dimensions constraints.
  • Geometry constraints only work when transformations such as scaling and rotation have been applied.

Upcoming Features

  • some tutorials and documentation (thx, David-rD, for your feedback)
  • ??? I need more feedback with ideas. You can give me feedback on Blender.org or GitHub ???

What's New

1.3.15 June 29th, 2026

Improvements

  • improved WFC 3D Constraints editor: Symmetry Constraints and Grid Constraints;
    • disable GUI elements instead of hiding them
  • improved WFC 3D Rotation Tool: changed defaults for angles and offset

Bugfixes

  • fixed wrong labels for uniform scaling in Transformation Constraints

See all versions


Permissions

This extension requests the following permission:

  • Files

    Import/export constraints (JSON) from/to disk

Developer
Jonny-B
Rating
(2)
Version
1.3.15
Updated
3 w
Published
Oct. 7th, 2025
Downloads
8342
Size
70.2 KB
Compatibility
Blender 4.2 LTS and newer
Website
extensions.blender.org/add-ons/wfc-3d-generator
Report Issues
github.com/DanRohde/blender-stuff/issues
License
GNU General Public License v3.0 or later
Game Engine Modeling Object Render
...or download and Install from Disk
  • 70.2 KB

Reviews

See all
  • endersaka
  • v1.3.10
  • 1 mo
  • There are some small bugs that prevent the extension from displaying some UI elements, in Blender 4.2.1 LTS, and therefore it is unusable unless the user, like me, is able to edit the code. I do not know if version 1.3.11 fixes these problems.

  • The documentation is poor and vague and the only tutorials I have found are the videos visible in this page.

  • I tried the maze, with the only difference that I wanted to lay mine on the XY plane, therefore I activated front and back in place of top and bottom in the WFC 3D Constraint Editor panel, Collection Defaults > Geometry Constraints, but it did not work like in the video.

In conclusion, I have not been able to use this extension effectively, yet.

  • Jonny-B replied
  • 1 mo
  • Thank you for using this free Add-on and for your feedback. The upcoming release 1.3.12 will fix all bugs related to Blender 4.2 LTS and the icons.
  • All constraints and constraint parameters are documented. Of course there are not enough tutorials. I'm working on it.
  • The geometry constraints and all transformations (scale, rotation) must be applied to all building blocks in the source collection for this to work. However, I recommend using connector constraints instead of geometry constraints, as they are faster and more reliable, especially when dealing with geometric discrepancies. The maze video has been updated and the blend file is available on Github.
  • David-rD
  • v1.3.0
  • 8 mo
Review of WFC 3D Generator

It was difficult to find, and there are no online references to this add-on. It certainly has a very intuitive GUI, the constraints work well, and object generation is very fast. I'm currently testing it to generate images for personal projects. I don't know what else to say... other than thank you for your work!. Pros:

  1. GUI
  2. Generation
  3. Simple

Cons:

  1. Don't fund a good tutorial

3.0

2 reviews
5
4
3
2
1
Rate this Add-on Report an issue
  • About
  • Privacy Policy
  • Terms of Service
About
  • Blender Foundation
  • Blender Institute
  • Blender Studio
  • License
  • Logo & Trademark
  • Credits
  • Privacy Policy
  • Code of Conduct
Organization
  • People
  • Jobs
Blender Network
Download
  • Latest Blender
  • Blender LTS
  • Previous Versions
  • Experimental Builds
  • Source Code
  • Requirements
  • Benchmark
  • Flamenco
Extensions
  • Add-ons
  • Themes
Developers
  • Get Started
  • Roadmap
  • Projects
  • Docs
  • Blog
  • Forum
  • YouTube
  • Python API
Blender Studio
  • Films
  • Training
  • Tools & Pipeline
Support
  • Manual
  • Community
  • FAQ
Get Involved
  • Documentation
  • Education
News
  • Press Releases
  • User Stories
Blender Conference
Follow Blender
Support Blender
  • Donate
  • One-time Donation
Artistic freedom starts with Blender The Free and Open Source 3D Creation Suite