Skip to content

Punch Out Model Synthesis - a program for constraint based tiling generation

License

Notifications You must be signed in to change notification settings

zzyzek/PunchOutModelSynthesis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Punch Out Model Synthesis

THIS IS RESEARCH QUALITY CODE AND SUBJECT TO CHANGE

Introduction

Punch Out Model Synthesis (POMS) is a Constraint Based Tiling Generation (CBTG) algorithm, extending Merrell's modify in block Model Synthesis (MMS) and Gumin's Wave Function Collapse (WFC) algorithms.

POMS can work on large grids with minimal requirements for initial setup state.

See the Gallery for some example outputs for various tile sets.

This project has a set of tools to automatically create tile sets and tile rule constraints from exemplar (2D) images as well as some example code to programatically generate 3D tilesets. For advanced users, there are a set of auxiliary web applications to allow for run visualization.

Online demo

Quick Start

git clone https://github.com/zzyzek/PunchOutModelSynthesis
cd PunchOutModelSynthesis/src ; make
cd ../runs/pillMortal
./run.sh  # run POMS to create a 128x128 pillMortal level

Pill Mortal 128x128 level

LICENSE

Unless otherwise stated, all source code is under a Creative Commons Zero 1.0 (CC0) license.

CC0

Third party libraries used were chosen to be libre/free licensed and should have license information listed in their headers.

All art assets were chosen to be libre/free licensed and are appropriately attributed in the places they are used.