Project Monoceros

Page 1

PROJECT MONOCEROS

Subdigital 2021


EDITORIAL

In the summer of 2020, a group of authors Ján Pernecký, Tomáš Tholt, Ján Tóth, Michaela Krpalová, Kristýna Uhrová, Hugo Fekar, Alexander Kupko, Eva Kvaššayová, Miriam Löscher and Ľuba Ondrejkovičová prepared a research project, the result of which is a proposal to adapt the mathematical method / algorithm Wave Function Collapse for architectural design purposes. In our studio we embrace the power of computation to create architecture, design, and art. We are experts in software designed for parametric design and architecture design. We create algorithms and software solu‐ tions for complex design or architec‐ tural tasks. Algorithms are our tools, which we use to come up with unique concepts and utilize the current manufacturing technologies to their limits. The subject of Subdigital Summer School 2020 was current and near-fu‐ ture big topic in computational design, prefabrication and discrete design. The early objectives were to identify the present state of the discrete design scene, as well as to learn and channel the mindset the principles of wave function algorithm while develo‐ ping a comprehensive software tool that would support such design processes.


3


CONTENT

00 THEORETICAL INTRODUCTION introduction to iterative and growth methods Inspiration from the game industry Applications in design industry Examples with numbers and tiles

01 MONOCEROS PLUGIN Meet Monoceros Wave Function Collapse Development notes Architecture of Monoceros Grasshopper plug-in Data types Monoceros WFC Solver Components Examples FAQ

02 RESEARCH Abstract Contemporary tendencies in architecture Methods Experiments with subsets of the essential modules Results Conclusions


03 APPLICATIONS Neons Pipes Lalalamp Playground Housing Hyperloop desert campus Hydrogen island WFCity

04 PROTOTYPES Material morphologies

05 WORKSHOPS AND EVENTS About People Process Reviews Summary

5



00 THEORETICAL INTRODUCTION 7


INTRODUCTION TO ITERATIVE AND GROWTH METHODS In recent years, computational design has become the main methodological discipline of most of the world's leading schools of architecture. The key topic of this discipline is currently discrete aggregation a method in which the assembly of a small number of distinct / unique elements creates a closed, inter‐ connected aggregate / system. Discrete aggregates are characterized by an organized arrangement of elements with the possibility of detailed analysis during the design process. We developed the WFC algorithm as a full-fledged software - in the form of a free (opensource?), publicly acces‐ sible "plugin" for Rhinoceros / Gras‐ shopper, which is the standard, widespread design software with a great range of use from parametric architecture, product design to computational art. Our plugin is created with an emphasis on computational perfor‐ mance, stability and ergonomics of use close to designers and architects.


9


INSPIRATION FROM THE GAME INDUSTRY Description of the algorithm

The Wave Function Collapse (WFC) is

In its simplest form the algorithm

other on the grid. Every slot contains a

an procedural generation [0] algo‐

works on a regular grid. We initially

list of modules (e.g. images or

rithm from the constraint satisfaction

have [Figure 1]:

geometry) that may reside in it. The

problem (CSP) [1] family. Its name is

- A world defined by a mathematical

algorithm is defined as follows:

inspired by quantum mechanics, but

graph [4], in our implementation

1) Initialize the world to a state where

the similarity is just at the surface

represented as a regular orthogonal

every slot contains every possible

level - WFC is completely determini‐

3D grid.

module.

- A set of adjacency rules describing

2) Repeat following steps until each

what can occupy each tile on the grid

slot contains exactly one module (a

given its neighbors.

valid result), or some slot contains

stic.

Origins of Wave Function Collapse can be traced to the demo-scene and

zero modules (a contradiction):

game developer community where it is

The grid tiles are graph nodes, also

applied to lay out virtual worlds. First

called slots in WFC. Graph edges are

of slots with the smallest-but-still-

description of WFC is attributed to

implicitly derived from slot neighbor‐

greater-than-one module count.

Maxim Gumin (@ExUtumno) [2], who

hood: two slots are connected by an

initially used it to generate procedural

edge, if they are adjacent to each

images based on small samples. It

a) Pick a slot at random from the set

b) Randomly pick a module from the set of still available modules for that

was further popularized by Oskar Stålberg (@OskSta) in his EPC2018 talk about level generation in the game Bad North [3].

[Figure 1]: An image from @ExUtumno's Wave Function Collapse Github project [2]. Notice how patterns in the source image (left) can be found in the generated image (right). The image was generated using an extended and thus more complicated version of WFC than what we describe here. See the Github page for more.

[0]: Wikipedia. 2020. Procedural Generation. [Online] 2020. https://en.wikipedia.org/wiki/Procedural_generation [1]: Wikipedia. 2020. Constraint satisfaction problem. [Online] 2020. https://en.wikipedia.org/wiki/Constraint_satisfaction_problem [2]: Github. 2020. WaveFunctionCollapse. [Online] 2020. https://github.com/mxgmn/WaveFunctionCollapse [3]: Stalberg, Oskar. 2018. EPC2018 - Oskar Stalberg - Wave Function Collapse in Bad North. BUas Games. 2. 9. 2020. https://www.youtube.com/watch ?v=0bcZb-SsnrA [4]: Wikipedia. 2020. Graph (discrete mathematics). [Online] 2020. https://en.wikipedia.org/wiki/Graph_(discrete_mathematics)


slot and remove all other possibilities,

dimensional grids, or even graphs with

making the module count for that slot

more interesting topologies, such as

equal to one.

the surface of arbitrary mesh

c) Remove modules from adjacent

geometry. More applications of the

slots based on the adjacency rules.

algorithm have been explored by

Repeat recursively for each slot

Oskar Stålberg in [5], [6] and [7].

modified this way.

These discoveries culminated in the

3) If WFC generated a contradictory result, start over again with a diffe‐

critically acclaimed town building game Townscaper [8]. [Figure 2]

rent random state. WFC does not necessarily always find asolution. If (and how easily) a valid solution is computed very much depends on the set of provided adja‐ cency rules. There are sets of rules for which WFC always converges regard‐ less of the random state, but also sets of rules for which the simulation always results in a contradictory state. Adjacency rule design is one of the more challenging parts of working with Wave Function Collapse. WFC can be extended to work for K-

[Figure 2]: Screenshot from the game Townscaper. Notice how the grid on the ground is made out of irregularly shaped polygons, but still adjacency rules can be described for this graph topology.

[5]: Stalberg, Oskar. 2020. Wave game. [Online] 2020. http://oskarstalberg.com/game/wave/wave.html [6]: Stalberg, Oskar. 2020. House game. [Online] 2020. http://www.oskarstalberg.com/game/house/Index.html [7]: Stalberg, Oskar. 2020. Planet game. [Online] 2020. http://oskarstalberg.com/game/planet/planet.html [8]: Steam. 2020. Townscaper game. [Online] 2020. https://store.steampowered.com/app/1291340/Townscaper/

WFC algorithm

11


APPLICATIONS IN DESIGN INDUSTRY Methodology and application Our team seeks and creates novel, innovative solutions, new concepts and approaches for complex design or architectural tasks that we can apply in our design practice. WCF, unlike aggregation methods, inherently creates interwoven rhizo‐ matic structures. It almost does not rely on randomness and offers a solution rather than its simulacrum. It creates global complexity while exposing clear local rules. WFC fills an entire segment of space with repeating prefab elements, while making sure they connect to each other properly and organize according to given rules. WFC creates diversity and complexity while maintaining the expected properties. WFC allows building various objects in multiple scales out of a limited number of prefab element types, securing their compatibility and cohe‐ rence of the resulting assembly. With a limited number of prefab elements, it is possible to build an unlimited number of customized objects, which will have the expected functional and structural properties.


13


EXAMPLE WITH NUMBERS, SEED 1 Wave Function Collapse breakdown

The WFC algorithm starts with Slots

1 Modules

allowing placement of multiple listed Modules. Each Module allows only certain other Modules to be placed next to it. This is described by the adjacency Rule set. The adjacency Rules are direction-aware.

WFC follows the Rules to remove disallowed Modules from Slots adjacent to each Slot and propagates the change until each Slot allows

2 Rule set

placement of only those Modules that can be adjacent to the Modules allowed to be placed by neighboring Slots. Such state is called a Canonical world.

3 Initial state

4 Observation

allowing placement of any Module

Choosing a random Slot and randomly picking one of the allowed Modules to be placed.


5 Propagation

6 Solution

15


EXAMPLE WITH MAP TILES, SEED 1 Wave Function Collapse breakdown

The WFC solver picks a random Slot

1 Modules

and makes an "observation" - chooses a single Module from the list of Modules allowed to be placed into the Slot. This change triggers a process of eliminating disallowed Modules from the adjacent Slots, which propagates from the observed Slot outwards.

The WFC solver continues with obser‐ vations until each Slot allows place‐

2 Rule set

ment of exactly one Module. Such deterministic state of the world is the solution of the the WFC.

3 Initial state

4 Observation

allowing placement of any Module

Choosing a random Slot and randomly picking one of the allowed Modules to be placed.


5 Propagation

6 Solution

17


SAME RULES, DIFFERENT MODULES Various solutions


19


EXAMPLE WITH MAP TILES, SEED 2 Wave Function Collapse breakdown

1 Modules

4 Observation

2 Rule set

5 Propagation

3 Initial state


6 Observation

7 Propagation

8 Solution

21


EXAMPLE WITH MAP TILES, SEED 3 Wave Function Collapse breakdown

1 Modules

4 Observation

2 Rule set

5 Propagation

3 Initial state


6 Observation

7 Propagation

8 Observation

9 Propagation

10 Solution

23


EXAMPLE WITH MAP TILES Different attempts

Modules with rule set

The solver encountered a contradiction. Current attempt was unsuccessful. Other attempts may suceed.

The solver found a solution. Current attempt was succesful. Other attempts may not succeed.


25



01 MONOCEROS PLUGIN

27


MONOCEROS BRIEF INTRODUCTION CHEAT SHEET Main input data types: Slots, Modules and Rules. These inputs are essential and necessary for WFC algorithm to generate a solution.

SLOT Slot is a cuboid (orthogonal box) that represents the basic unit of the Mono‐ ceros rigid discrete grid. Slots can be defined by slicing coherent geometry such as surface and polysurface. The Slots are stacked next to each other in coherent continuous blob which is called an Envelope. The outer layer of an Envelope is called a Boundary.

MODULE Module is a unit, which is being distri‐ buted over the specified Envelope. The purpose of a Monoceros Module is to place predefined geometry into dedi‐ cated Slots.

Empty module It is possible that the Modules cannot be stacked together without leaving blank Slots, which is considered a contradictory and therefore invalid result. WFC solver needs to fill every slot. Empty module is therefore often necessary.


RULE Monoceros Rule is a distinct data type describing adjacency of two Modules by aligning their Connectors facing opposite direction.

Explicit rule

Typed rule

Single rule explicitly allowing two

List of allowed neighbor modules for

modules to be neighbors in the speci‐

each module in each direction.

fied direction.

Indifferent connection

Rule at Boundary

A module with no explicit connection

By default, all Modules with Indiffe‐

in certain direction is indifferent in

rent Connectors can be at the

that direction and can connect to any

boundary of the Envelope. If any other

module indifferent in the opposite

Module should be placed with any

direction.

other than indifferent connector, it is necessary to create an explicit Rule at Boundary.

29


MONOCEROS Detailed user guide

Monoceros is a legendary animal living in the huge mountains in the interior of India. Monoceros has the body of a horse, the head of a stag, the feet of an elephant and the tail of a boar. from Unicorn Wiki

It is also a plug-in for Grasshopper,

Monoceros is an implementation of

Monoceros serves to fill the entire

which is a visual programming

the Wave Function Collapse (WFC)

world with Modules, respecting the

platform for Rhinoceros 3D CAD

algorithm developed for game design

given Rules. The plug-in wraps WFC

software.

by Maxim Gumin and extended and

into a layer of abstraction, which

Monoceros was developed at studio

promoted by Oskar Stålberg with his

makes WFC easily implemented in

Subdigital by Ján Toth and Ján

game Townscaper.

architectural or industrial design.

Pernecký.

It honors the principles of WFC and Grasshopper at the same time offering a full control of the input and output data in a Grasshopper way and their processing with a pure WFC.


Wave Function Collapse Before we delve deeper, let's shortly

derived from Slot adjacency: two Slots

Modules from this Slot, making it

explain the WFC algorithm itself. Note

are connected by an edge, if they are

deterministic (allowing exactly one

that Monoceros extends some

adjacent to each other on the grid.

Module),

concepts over the vanilla WFC, but it

Every Slot contains a list of Modules

is very helpful to understand the

that are allowed to reside in it.

original version of the algorithm first.

Conceptually, Modules could have any

To that end, it might also be helpful to

meaning that we assign to them,

watch the excellent explanatory talk

some usual meanings being that the

by Oskar Stålberg at EPC2018.

Slots populated by them contain geometry, images, navigation meshes,

Wave Function Collapse (WFC) is a procedural generation algorithm that

Modules from neighboring Slots based on the Rules. Repeat recursively in depth-first order for each Slot modified this way.

or other high-level descriptions of a space.

3. If WFC generated a contradictory result, start over again with a diffe‐

essentially attempts to satisfy cons‐ traints on a world (see CSP for more).

The algorithm is defined as follows:

Its name is inspired by quantum

1. Initialize the world to a fully non-de‐

mechanics, but the similarity is just at

terministic state, where every Slot

the surface level - WFC runs comple‐

allows every defined Module.

tely deterministically.

c) Constraint Propagation: Remove

2. Repeat following steps until every Slot allows exactly one Module (a

In its simplest form the algorithm

valid, deterministic result), or any Slot

works on an orthogonal grid. We initi‐

allows zero Modules (a contradiction):

ally have:

rent random state.

• WFC does not necessarily always find a solution. If (and how quickly) a valid solution is computed very much depends on the set of provided Rules. There are sets of Rules for which WFC always converges in just a single attempt regardless of the random state, but also sets of Rules for which

• A world defined by a mathematical

a) Observation (Slot choice): Pick a

the simulation always results in a

graph, in our case represented as an

Slot at random from the set of Slots

contradictory world state, and also

orthogonal 3D grid.

with the smallest Module count that

everything in between. Rule design is a

• A set of Rules describing what can

are still in non-deterministic state

challenging part of working with

occupy each tile on the grid depending

(allow more than one Module),

Wave Function Collapse.

on what its neighbors are. b) Observation (Module choice): The grid tiles are graph nodes, also

Randomly pick a Module from the set

called Slots in WFC (and in Mono‐

of still available Modules for the

ceros). Graph edges are implicitly

chosen Slot and remove all other

31


Development notes This repository contains the Gras‐

3. Rule describes allowed neighbor‐

contradictory (no Module allowed to

shopper wrapper for the main WFC

hood of two Modules or their parts via

be placed into the Slot). Usually, there

solver and comprehensive supple‐

one of the walls of the cuboid cages -

is less Modules (Module types) than

mental tools.

connectors.

Slots, which means each Module can be placed into Slots more times or not

The solver itself was developed in Rust

at all.

and compiled as a .dll library linked to

The Monoceros plug-in offers various

this wrapper. The source code of the

Grasshopper components (functions)

solver and a simple wrapper compo‐

for constructing and parsing the data,

The Monoceros implementation of

nent for Grasshopper is in a separate

the solver itself and postprocessing

WFC internally works like this too, on

repository.

and rendering tools.

the outside it presents the Modules as a continuous coherent compact collec‐ tion of such cuboid cages (Module

The Monoceros Grasshopper plug-in is written in C# and revolves around three main data types:

Architecture of Monoceros Grasshopper plug-in

Parts), each fitting into one Slot.

Like Grasshopper itself, also Mono‐ 1. Slot is the basic cuboid unit of a discrete world. The Slots can be embedded with Modules or their parts. Initially the Slots allow contain‐ ment of multiple Modules until the WFC solver reduces the list of allowed Modules to a single Module for each Slot according to given Rules.

The core of Monoceros is a Wave

ceros revolves around data and serves

Function Collapse (WFC) solver. WFC

for its immutable processing. Immuta‐

is an algorithm, that fills the entire

bility means, that no existing data is

discrete envelope with Modules with

being changed but rather transformed

no remaining empty Slot. In case of

and returned as a new instance of the

Monoceros, the envelope is a collec‐

data. In most cases it is even possible

tion of rectangular cuboid Slots, each

to construct the data with valid values

with 6 neighbors in orthogonal direc‐

right away with no need to re-define

tions, not taking diagonal neighbors

already existing data.

into account. 2. Module represents geometry wrapped into one or more cuboid cages (similar to the Slots). Modules are about to be placed into the Slots according the given Rules.

There are three main data types: In the original WFC algorithm, the

Slots, Modules and Rules.

Modules are exactly the size of a single Slot. The WFC then picks which Module should be placed into which Slot, leaving no Slot non-deterministic (with more than one Module allowed to be placed into the Slot) or empty /

Slot and Rule both reference to Module, its Part or its Connector. This reference is done only through user defined strings (for Modules and their


Parts) or integer indices (for Module

shopper and cast from and to all

Connectors). This is an intention, so

relevant existing data types. All Mono‐

that the data sets (Modules, Rules or

ceros components are compatible

Slots) can be replaced or shared

with the existing Grasshopper data

across more Monoceros setups.

types and ready to be used with existing Grasshopper components.

Most of the Monoceros plug-in components serve for constructing, analyzing and processing data. The components try not to bring redundancy, therefore it does not do anything, that could be easily done with vanilla Grasshopper components. The three new Monoceros data types are seamlessly integrated into Gras‐

Construct

Solve

Modules

->

Rules

->

Slots

->

WFC Solver

Post process

->

Materialize

Aggregate Preview

33


Data types

I. SLOT

I. STATES

4. Allows all Modules is a shortcut for

Slot is a container that allows place‐

a fully non-deterministic state, when

ment of certain Modules or their

any Module or its Part is allowed to be

Parts. The Slot can be in several

placed inside the Slot. In practice this

states:

state exists only for cases, when Slots

1. Allows Nothing is a contradictory (invalid) state, when there is no Module or its Part that can be placed inside the Slot. If the collection of

are being defined before or indepen‐ dently from Modules and therefore it is not possible to list Modules that should be allowed by the Slot.

Slots forming the Envelope of the solution contains one or more such

The collection of Slots forming an

Slots, the solution cannot be found

Envelope is considered Canonical if

and therefore such setup is invalid.

the adjacent Slots allow placement of

2. Allows one Module (or deterministic

such Modules or their Parts, that are

state) is the desired state of a Slot. It

allowed to be neighbors by the Rules.

is the responsibility of the WFC Solver

Canonical Envelope does not have to

to bring a non-deterministic Slot into

be also deterministic. For non-deter‐

a deterministic state. Such Slot can be

ministic Slots to form a Canonical

Materialized - a Module can be placed

Envelope, each allowed Module or its

into the Slot.

Part in one Slot must be allowed to be

3. Allows more Modules (or non-de‐ terministic state) is usually an initial or intermediate state of a Slot, when it is

a neighbor of each allowed Module or its Part in its adjacent Slot in the given direction by the Rule set.

Slot is a cuboid (orthogonal box) that

not yet clear, which Module or its Part

represents the basic unit of the Mono‐

should be placed inside the Slot, but a

The Monoceros implementation of the

ceros rigid discrete grid. The Slots do

list of allowed Modules is present. It is

WFC algorithm can automatically

not overlap and their position coordi‐

the responsibility of the WFC Solver

clean a Non-Canonical Envelope into

nates are defined in discrete numerical

to bring a non-deterministic Slot into

Canonical, which takes a lot of respon‐

steps. The Slots are stacked next to

a deterministic state. A non-determi‐

sibility from the user and enables

each other, preferably forming a

nistic Slot cannot be Materialized yet

future development of Monoceros

coherent continuous blob or more

but it is possible to evaluate its level of

features.

separate blobs that should become

entropy - a number of currently

filled with Modules. Such blob will be

allowed Modules or their Parts stating

called an Envelope.

how far from the deterministic state the Slot is.


II. SLOT PROPERTIES

III. AUTOMATIC ENVELOPE

Module to be placed at the boundary

• Center of the Slot in cartesian coor‐

WRAPPING

of the Envelope.

dinate system. The coordinate is auto‐

The WFC algorithm (the original one

matically rounded so that it repres‐

and the Monoceros implementation)

All boundary Slots are ensured to be

ents an exact center of the Slot in the

work with a full regular three-dimensi‐

surrounded by Out-enabled Slots. The

discrete world coordinate system.

onal box-like Envelope. Monoceros

Out-enabled Slots are not being

• Base Plane defining Slot's coordi‐

allows the user to define any set of

displayed in the Rhinoceros viewport.

nate system. The discrete world coor‐

Slots (as long as they are compatible

dinate system's origin and axial orien‐

and non-repetitive), which form any

tation matches that of the Base

arbitrary blob.

The Monoceros Modules may consist

Plane. For two Slots to be compatible, their Base Planes must match.

Therefore the Monoceros WFC Solver

• Diagonal defining Slot's dimensions

component automatically wraps the

in X, Y and Z directions as defined by

user-defined Slots into a slightly

the Base Plane. For two Slots to be

larger bounding box and adds the

compatible, their Diagonals must

missing Slots. These Slots are dubbed

match.

Out-enabled and are pre-determined

• Allowed Module Names is a list of

to allow only one type of a Module to

Modules that are allowed to be placed

be placed inside them: the Out

(entire Modules or their Parts) inside

Module. Out Module is automatically

the Slot. This list is empty, when the

generated by the Monoceros WFC

Slot is in the Allows Nothing or Allows

Solver, it has the same diagonal as the

Everything state.

Envelope Slots, has just a single Part

• Allows Everything is a flag determi‐ ning whether the Slot allows place‐ ment of any Module or its Part. • Allows Nothing is a flag determining whether the Slot allows placement of no Module or its Part. Such Slot is invalid and prevents the WFC Solver from reducing other Slots from nondeterministic to deterministic state.

IV. MODULES AND THEIR PARTS

and contains no geometry. The Out Module has all connectors defined as Indifferent, therefore it is allowed to be adjacent to itself and with any other Module Indifferent in the respective direction. The Out Module and an Empty Module are distin‐ guished so that it is possible to set a Rule for a Module Connector to be adjacent to Out Module (while not being Indifferent), which allows the

of more Parts. Each Part is of the size of a single Slot, therefore a larger Module occupies more Slots. For valid Modules it is ensured that the Module Parts always hold together and all of the Module Parts are always placed into Slots in the original order. Inter‐ nally, the Slots refer to Module Parts, for the user of Monoceros Gras‐ shopper plug-in are the Module Parts inaccessible and the Module appears as the smallest unbreakable unit. Therefore it is only possible to define entire Modules to be allowed by a Slot, even when such Module consists of more Parts. Internally this means, that all Parts of the Module are allowed to be placed into a Slot. In practice this should not cause any problems or imprecisions. It is being automatically handled by the WFC Solver and offers some buffer zone for complex Module placement.

35


V. VIEWPORT PREVIEW AND BAKING

color denotes the desired state of a

A Slot renders in the viewport as a

Slot.

wire frame box. The box is slightly

• Grey - the Slot allows placement of

smaller than the actual Slot, so that it

some Modules or their Parts and the

is possible to distinguish colors of two

overall number of Modules and their

adjacent Slots from one another.

Parts is known. Bright color indicates a high level of entropy - more Modules

A Slot bakes as a regular Rhino box, with dimensions matching the Slot size.

A Slot renders and bakes in different colors, indicating the level of Slot's entropy: • Red - the Slot does not allow place‐ ment of any Module or its Part, there‐ fore is empty and invalid. • White - the Slot allows placement of any Module or its Part that enters the Monoceros WFC Solver.

or their Parts are (still) allowed to be placed into the Slot. Dark grey means the Slot has a lower entropy and is closer to a solution.

VI. SLOT CASTS TO The Casts are meant to shorten the de-construction and re-construction of a Slot. With the following casts it is possible to use one instance of a Slot to construct a new one with the same properties by passing the Slot into individual input Slots of a Slot constructor component.

• Blue - the Slot allows placement of more than one Module or its Part but the overall number of Modules is unknown to the Slot. This is a valid

• Point - representing the center point of the Slot

state for Slots defined by enumera‐

• Box and BRep - representing the

ting the allowed Modules. A Slot is

exact box cage of the Slot

blue even when all Modules are

• Vector - representing the Diagonal

allowed, but they have been listed

of the Slot

namely instead of using the Allow all

• Text (string) - returns a human-fri‐

constructor.

endly report of the Slot's properties in

• Green - the Slot allows placement of

format: Slot allows placement of XY

exactly one Module Part and is ready

Modules. Slot dimensions are XYZ,

to be Materialized. This is currently

center is at XYZ, Base Plane is XYZ X Y.

only possible for Slots processed by the Monoceros WFC Solver. Green


II. MODULE Module Parts are not accessible indivi‐

cannot be placed into the Solution.

dually, the Module is rather presented as a single element.

Monoceros Rules may allow connec‐ tion of Connectors from the same

A Module can consist of a single Part

Module or from two distinct Modules.

or more Parts. The Parts that are

A Rule, therefore also a connection, is

entirely surrounded by other Parts in

only valid when the two Connectors

all 6 orthogonal directions, are not

are in opposite orientation of the

being presented to the user at all. Only

same axis (i.e. negative Y can connect

the boundary walls of Module Parts

only to positive Y).

are visible and form an orthogonal Module is a unit, which is being distri‐

discrete unit cage of a Module.

buted over the specified Envelope. The main purpose of the WFC and

Monoceros Rules are referring to Module names and Connector Indices.

II. CONNECTORS

The supplemental Monoceros

or its Part can be placed into which

The Module cages are subdivided to

components for constructing Rules

Slot, so that the adjacencies of

match the size of Envelope Slots in

use visual representation of Connec‐

Modules follows the specified Rule set.

their respective directions. The outer

tors (rectangles or dots) to identify

If this requirement is met, it means

walls of a Module cage are considered

the Rule being created.

the Envelope is Canonical. If there is

to be Connectors. Connectors are

exactly one Module or its Part allowed

numbered from 0 to n-1, where n

to be placed into every Slot, the

stands for the number of (outer)

Envelope is Deterministic and solved.

Connectors of the respective Module.

I. MONOCEROS MODULE PARTS

The Monoceros Modules are designed

Monoceros is to decide, which Module

offers a possibility for Modules to span over (occupy) more Slots. In such case, In the original WFC algorithm, the Module occupies exactly one Slot. Monoceros the Module consists of more Parts, each of a size of a single Slot. If the Module is compact (conti‐ nuous, consistent) then the Parts always hold together (this is secured by the Monoceros WFC Solver). The

to connect to each other through their Connectors. To enable such connection it must be described by a Monoceros Rule. A Connector can occur in multiple Rules, allowing it to connect to multiple counter-Connectors, out of which one will be chosen by the WFC Solver. Each Connector must occur in at least one Monoceros Rule, other‐ wise the Connector cannot have any neighbor, therefore such Module 37


III. MODULE GEOMETRY

When it is being placed into Slots it is

nent.

The purpose of a Monoceros Module is

only being translated (moved) and

• Base Plane defining Module's coordi‐

to place geometry into dedicated

never rotated. There are maximum of

nate system. The discrete world coor‐

Slots. The Module data type is not

24 different discreet 90 degree rota‐

dinate system's origin and axial orien‐

bound to its geometry, which means

tions of an object. Rotating all

tation matches that of the Base

the shape, size and location of Module

Modules automatically would take a

Plane. For a Module to be compatible

geometry has no relation to the Parts

lot of control from the user. Therefore,

with Slots, their Base Planes must

of the Module or Slots it may occupy.

if any rotation is desired, it has to be

match.

This is an intentional feature because

done manually by creating a new,

in real-life architectural and design

different rotated version of the

applications, the Modules will need to

Module. The best way to do this it to

posses extending parts (physical

rotate and adjust all input data

connectors) that would not fit the

(Module Part Points, Module

cages of Module Parts and therefore

Geometry) and give it a different

would compromise the WFC solution.

name.

Therefore, the Module Geometry may

V. MODULE PROPERTIES

Connector rectangle, with Normal

be small, larger, different than the

• Name - is a string unique identifier

pointing outwards and origin at the

Module cage or remain completely

assigned by the user. The Name is

Connector center. The Connector

empty.

automatically converted to lowercase.

Indices (or their order in this list) does

All Monoceros components with

not represent their direction.

Module list input check if the Module

• Connector Directions - unit vectors

names are unique. If not, they do not

aligned to the base plane indicating

compute. The name is the sole identi‐

the direction of connector's normal

fier of a Module for all purposes, so

(i.e. positive X direction is always {1, 0,

that it is possible to replace a set of

0}, negative Z is always {0, 0, -1}).

Modules within a solution with a diffe‐

Returns a list parallel to the list of

rent one.

Connectors.

analyzes input geometry (no matter

• Module Part Center Points - center

• Connector Use Pattern - is a boolean

whether it is the same geometry that

Points of Module Parts in cartesian

list computed from the Module and

is being held by the Module or a diffe‐

coordinate system. The points are

the list all Rules indicating whether

rent one) and returns exact centers of

automatically calculated and can be

the Connectors have been already

Slots that may be occupied by Module

used to create a new Module with the

described by any Rule. The Monoceros

Parts.

same Parts (cage) or to define the

WFC Solver requires each Module

Slot Envelope exactly around the

Connector to be described by at least

Module.

one Rule, therefore it is important to

• Geometry - geometry to be placed

generate some Rules for all unused

into Slots with Materialize compo‐

Connectors before attempting to find

• Module Part Diagonal - defining Module Part's dimensions in X, Y and Z directions as defined by the Base Plane. For a Module to be compatible with Slots, their Diagonals must match. • Connectors - reveals the Module Connectors as Planes tangent to the

Therefore a Module is being constructed from different input data than its Geometry. To mark Module Parts (Slots the Module may occupy) the user specifies Points inside these Parts. For convenience, it is possible to use Slicer helper component, that

IV. ORIENTATION AND PLACEMENT A Module has a fixed orientation.


a solution. Returns a list parallel to the

The Out Module is present in each

list of Connectors.

solution. It is a Module with a single

• Is Compact - single boolean value

Part, exactly the size of a single Slot

indicating whether the Module Parts

and holds no Geometry. It is automa‐

create a coherent compact continuous

tically placed into Slots outside the

blob. If there are any gaps or Parts

user-defined Envelope. All Out Module

touching only with edges or corners,

Connectors are marked with Indiffe‐

the Module is not compact. Such

rent Rules, so any Module with an

Module would not hold together in the

Indifferent Rule marked Connectors

WFC solution and therefore is auto‐

can be placed next to it - in other

matically skipped by the Monoceros

words, it enables the Indifferent

WFC Solver. It is allowed to construct

Modules to be on the boundary of the

such Module and to preview it in the

Envelope. The Out Module does not

viewport, so that the user can

render in preview, nor bakes.

manually adjust the input parameters and construct a compact Module.

The Empty Module with a single Part,

• Is Valid - internally, there are many

exactly the size of a single Slot, no

reasons why a Module could be invalid,

Geometry and all Connectors marked

but only one reason is allowed to

with Indifferent Rules has to be

happen in Grasshopper: if a Module

constructed manually with a dedi‐

consists of too many Parts. The

cated Monoceros component. It

current upper limit is 256 Parts for all

behaves as any other Module because

Modules combined. If a single Module

it is a regular Module that can be

outreaches this value, it is marked as

constructed also without the special

invalid. It is allowed to construct such

Monoceros component. It render in

Module and to preview it in the

viewport, it can be baked, so that indi‐

viewport, so that the user can

vidual Rules can be assigned to it. The

manually adjust the input parameters

Empty Module helps complex Mono‐

and construct a valid Module.

ceros setups to find a solution, because it fills the gaps between

VI. SPECIAL MODULES: OUT AND

complex Modules and their Parts.

EMPTY There are two reserved Module names in Monoceros: Out and Empty. It is not allowed to manually construct a Module with such name, because they are being constructed automatically.

39


7. VIEWPORT PREVIEW AND BAKING

Cages to define a Rule graphically.

Module preview renders in Rhinoceros viewport with many helper items:

VIII. MODULE CASTS Module casts help using the Module

• Cage - boundary Connectors of

directly as an input to various

Module Parts render and bake as wire

components, even when they require a

frame rectangles. The Cage is white

Module name, i.e. Rule or Slot

when the Module is valid, red when it

Constructors.

is invalid because it is no compact or

• Module Name - is a special Mono‐

consists of too many Parts.

ceros data type that wraps a string

• Name - renders as a large text, green

name of a Module. Direct cast to a

if the Module is valid, red it is invalid.

string is already taken by the user-fri‐

The Module Name bakes as a text dot

endly report, therefore the Module

with the Name as a label.

first casts its name to Module Name

• Connectors - render and bake as text

type, which then casts into text

dots with Connector Index as a label.

(string) for user-friendly report.

The dots are placed in the center of

Monoceros components, however,

the Connector rectangle. The dots

expect the Module Name type. This

render in colors indicating their direc‐

way it is possible to use the Module as

tion:

an input where a Module Name is

• Red = X • Green = Y • Blue = Z

expected and there is no need to deconstruct the Module to its proper‐ ties. • Text (string) - returns a human-fri‐

• White text = positive orientation

endly report of the Module's proper‐

• Black text = negative orientation

ties in format: Module "XY" has XY

• Geometry - renders as regular Gras‐

connectors and has XY parts with

shopper geometry but does not bake

dimensions XYZ. and either The

The helper geometry preview does not follow the Grasshopper convention of a transparent green material for selected items and red for unselected.

The purpose of Module baking is to provide helper geometry and anchors for defining Monoceros Rules. It is possible to snap to Connectors or

Module is compact. or WARNING: The Module is not compact, contains islands and therefore will not hold together.


III. RULE Monoceros Rule is a distinct data type

does not for check such cases because

not indicate their direction, it is only

describing an allowed adjacency of

the WFC Solver itself prevents such

possible to check this when the

two Modules by aligning their Connec‐

situations from happening. That

respective Modules are provided.

tors facing opposite direction. The

means that even though a Rule is

Therefore a full validity check is

Monoceros WFC Solver parses the

valid, it may never occur in the

performed only when both data is

Slots so that they only allow place‐

solution.

available, most importantly in the

ment of Modules or their Parts that can become adjacent neighbors accor‐ ding to the Rule set.

Monoceros WFC Solver. When the I. EXPLICIT RULE Explicit Rule is closest to the original WFC Rule. It refers to a Connector of

Explicit Rule is created, it is only checked whether it refers to two diffe‐ rent Connectors.

Internally, the WFC Solver only works

one Module that can connector to a

with Explicit Rules, but for conveni‐

Connector of another Module. Its

Explicit Rule is bi-directional, therefore

ence Monoceros offers also a Typed

textual representation follows a

a:1 -> b:4 equals b:4 -> a:1.

Rule. A Typed Rule is automatically

pattern module:connector -> module:

unwrapped into one or more Explicit

connector, i.e. pipe:1 -> bulb:4, which

Rules by the WFC Solver and other

translates to: Module "pipe" can

supplemental components. Both types

become a neighbor of Module "bulb" if

of Rules manifest as a single data

their connectors 1 and 4 touch.

type, can be processed together.

Explicit Rule properties • Source Module Name - is the unique text identifier of the source Module • Source Connector Index - is the unique integer identifier of the source

An Explicit Rule should only allow The Rule refers to Modules via their

connection of two non-opposing

string (text) names and to Connectors

Connectors, which makes the Rule

via their integer indices. This allows

invalid. Because Connector indices do

Connector of the source Module • Target Module Name - is the unique text identifier of the target Module

the same Rule set to be used with a different (yet fully compatible) set of Modules.

A single Module Connector can be referred to by multiple Rules but at least one referring Rule is required.

In some cases the Modules cannot connect even though a Rule allows it because their Parts collide. Monoceros

41


• Target Connector Index - is the

one Module, which then can connect

identifier of the (source) Module

unique integer identifier of the target

to any opposite Connector of any

Connector Index - is the unique

Connector of the target Module

Module with the same "connection

integer identifier of the (source)

type" assigned by another Typed Rule.

Connector of the (source) Module

Explicit Rule casts An Explicit Rule can be cast from a text (string) that has format identical to the user-friendly Explicit Rule text report: module:connector -> module: connector. An Explicit Rule does not casts to any other data type.

Its textual representation follows a pattern module:connector = type, i.e. player:1 = jack, which translates to ` Module "player" can become a neighbor of any Module if its connector 1 touches the other

Type - is the unique text identifier of the connection type. Two Modules with opposing connectors assigned the same connection Type can become neighbors.

Module's opposing connector if both connectors are assigned type "jack".

Typed Rule casts A Typed Rule can be cast from a text

Explicit Rule Viewport preview and baking

A Typed Rule needs to be unwrapped into one or more Explicit Rules before

(string) that has format identical to the user-friendly Typed Rule text report: module:connector = type. A

An Explicit Rule cannot be displayed

entering the WFC Solver. This is done

on its own. Following a precedent of

automatically by the Monoceros WFC

Vector display component in Gras‐

Solver component and by supple‐

shopper, there is a Rule Preview

mental components such as Unwrap

component in Monoceros. When

Typed Rules or Collect Rules. For

Typed Rule Viewport preview and

provided with all Modules, it displays

Typed Rule unwrapping it is necessary

baking

an Explicit Rule as a line between the

to provide all Modules so that only

connectors described by the Rule. The

A Typed Rule cannot be displayed on

opposing Connectors of the same

color of the line indicates the direction

its own. Following a precedent of

type can unwrap into valid Explicit

of the connectors (and therefore also

Vector display component in Gras‐

Rules. Even non-opposing Connectors

of the Rule): red means the connec‐

shopper, there is a Rule Preview

can be assigned the same type. In

tors are facing X direction, green

component in Monoceros. When

such case, only valid (opposing)

represents Y direction and blue indi‐

provided with all Modules, it displays a

couples will be unwrapped into Explicit

cates Z direction.

Typed Rule as a line between all

Rules.

couples of opposing Connectors

Typed Rule does not casts to any other data type.

assigned the connection Type. The An Explicit Rule preview can be baked.

II. TYPED RULE

As the Typed Rule is in fact a half-rule,

color of the line indicates the direction

it is always valid as long as it refers to

of the connectors (and therefore also

an existing Module and its Connector.

of the Rule): red means the connec‐ tors are facing X direction, green

Typed Rule is a convenience data type introduced by Monoceros. It assigns a

Typed Rule properties

"connection type" to a Connector of

Module Name - is the unique text

represents Y direction and blue indi‐ cates Z direction. In 1/3 (to prevent


collision because in real-life use cases

Even the indifferent Rules need to be

lines cross in their middle) of the line

constructed manually using the

there is a dot with a text label indica‐

Construct Typed Rule or simpler

ting the connection Type.

Indifferent Rule From Point. In the usual use case, the Indifferent Rule is

A Typed Rule preview can be baked.

assigned to those Connectors, that have not been described by any other intentional Rule. For such cases, there

III. INDIFFERENT TYPED RULE

is a shorthand constructor component

For convenience, Monoceros intro‐

Indifferent Rules For Unused Connec‐

duces a built-in Rule type: indifferent.

tors.

When a Connector is marked Indiffe‐ rent, it can connect to any other Indifferent connector of any Module. The purpose of such Typed Rule is to indicate, that the user does not care about specific adjacency of the given Connector and at the same time to satisfy the WFC requirement, to

Just like any other Rule, Typed or Explicit, also the Indifferent Rule can be assigned to a Connector that already is described by another Rule. It can also be used as a disallowed Rule with the Collect Rules component.

describe each Connector with at least one Rule.

43


MONOCEROS WFC SOLVER Over the course of multiple iterations

Slots and be of any voxel-based shape

output thanks to the backwards

(called observations) occurring inter‐

as long as their Parts connect in a

mapping metadata generated by

nally inside the WFC Solver, Wave

continuous fashion - i.e. they touch

lowering.

Function Collapse gradually changes

with faces and not just edges. A

the state of Slots from non-determi‐

Monoceros Module Part (not available

nistic (allowing multiple Modules) to

as public data type) is equivalent to a

deterministic (allowing exactly one

vanilla WFC Module.

Module). This iterative process happens in the Solver component, where the Slots are observed based on pseudo-random numbers until either every Slot ends up in a determi‐ nistic state (success), or any Slot ends up in a contradictory state (failure). If the result is contradictory, the Solver component internally re-tries up to a predefined number of attempts, each attempt using the already modified random state and thus producing a different result each try.

As mentioned earlier, Monoceros builds on top of the original Wave Function Collapse to make it more useful for architecture and industrial design. The essence of the Monoceros extension is how it treats Modules. In original Wave Function Collapse a Module always has the dimensions to occupy exactly one Slot. While Mono‐ ceros Modules are aligned to the same discrete grid, they can span multiple

II. CANONICAL WORLD STATE Because Monoceros allows us to modify and customize the initial state of the world and vanilla WFC has an

I. RULE AND MODULE LOWERING

opinion on how valid world state looks

Because it is not immediately clear

like, the Rust solver needs to detect

how to implement a solver for

whether the world is Canonical (valid

Modules as defined by Monoceros,

in terms of vanilla WFC).

Monoceros utilizes a technique called lowering (sometimes also called desu‐ garing) to change their representation into lower-level, vanilla WFC Modules and also produce metadata necessary

A world is Canonical if: • Every Slot allows every Module (this is the initial WFC world state),

to reconstruct the Monoceros Modules

• The world is a result of applying both

from the vanilla Modules.

the observation and subsequent cons‐ traint propagation phases on an

Even though not visible to the user,

already Canonical world.

Module Parts are carefully tracked throughout the plug-in, and since

For example, running an observation

Rules effectively work with Module

without subsequently propagating

Parts already, the Grasshopper Solver

does not produce a Canonical world

lowers the Module and Rule defini‐

and WFC does not define how this

tions into their low-level forms and

world should behave if observed or

feeds those into the Rust solver over

propagated any further.

the C API. After the Rust solver finishes successfully, Monoceros

Setting the state of the world

Modules are reconstructed from its

manually rarely produces a Canonical


world. Therefore the Rust solver always Canonicalizes the world before running an observe/propagate operation. Canonicalization is imple‐ mented by starting the constraint propagation phase on every Slot as though it was just observed. This process can in theory be expensive, but fortunately needs to run just once per invocation of the Solver compo‐ nent. The Rust solver provides the information whether the world needed canonicalizing as part of its output.

45


COMPONENTS

SLOT-RELATED

Construct Slot With All Modules Allowed

Construct Slot With Listed Modules Allowed

Deconstruct Slot

MODULE-RELATED

Are Slots Boundary

Construct Module

Add Boundary Layer

Construct Empty Module

Deconstruct Module


SOLVER

POST PROCESSING

SUPPLEMENTAL

Monoceros WFC Solver

Materialize Slots

Slice Geometry

Assemble Rule

Rule Preview

47


COMPONENTS

RULE-RELATED

Construct Explicit Rule

Construct Typed Rule

Unwrap Typed Rules

Deconstruct Explicit Rule

Deconstruct Typed Rule

Collect Rules

Is Rule Explicit

Is Rule Typed

Explicit Rule From Curve


Typed Rule From Point

Indifferent Rules For Unused Connectors

Rule At Boundary From Point

Indifferent Rule From Point

49


EXAMPLES Definition

Result


Definition

Result

51



02 RESEARCH

53


OUR DEFINITIONS Main features of the algorithm WFC

Architectural

Economical

With discrete aggregation methods,

Wave Function Collapse (WFC) fills

With a limited number of prefab

we build complex structures with

an entire segment of space with

elements, it is possible to build an

emergent interactions from a finite

repeating prefab elements, while

unlimited number of customized

set of prefabricated building blocks.

making sure they connect to each

objects, which will have the expected

The declarative property of the

other properly and organize according

functional and structural properties.

methods enables us to generate a

to given rules. WFC creates diversity

variety of candidate solutions from

and complexity while maintaining the

which we choose based on both algo‐

expected properties.

rithmic and subjective criteria. Our approach to design, fabrication

Conceptual WCF, unlike aggregation methods, inherently creates interwoven rhizo‐ matic structures. It almost does not rely on randomness and offers a solution rather than its simulacrum. It creates global complexity while exposing clear local rules.

Practical WFC allows building various objects in multiple scales out of a limited number of prefab element types, securing their compatibility and cohe‐ rence of the resulting assembly.

and assembly merges the modernist prefabrication with parametric complexity and customization. We are able to precisely control complex patterns of spaces, purposes, struc‐ tures and materials to build effec‐ tively high-performance architecture of the 21st century with fabrication methods of industry 4.0.


Aim To develop and master a meaningful materialization method of datadriven design with available fabrica‐ tion methods.

Software To develop full-fledged software tools tailored for academic and commercial needs od Subdigital.

Process To generate a multitude of abstract and applied examples in various scales, that can be later used for partial tasks in architectural design. Discretization With a limited number of prefab elements, it is possible to build an unlimited number of customized objects, which will have the expected functional and structural properties.

55


FIRST EXPERIMENTS WITH BASIC MODULES 57 essential single modules

The library of shapes are abstract geometries indicating just their direc‐ tion and orientation, set in regular cubic grid. The modules have 6 possible ways of aggregation, and geometries have multiple possibilities of rotations. With a goal of creating complex, peculiar solutions of given space, we came up with 56 different modules and then tested their combi‐ nations in terms of solvability. Why some attempts are complicated and other are rigid? After some time of testing it became obvious that achieving more complicated, inter‐ connected 3dimensional solution of the space is dependent not only by the number of used modules within the set but also by the inner limitation of modules. Straight shapes defined by only one of the axes, therefore with two connec‐ tors and without any other limitations and rules will fill up space with rigid, repetitive shapes. More limited modules, two or three-axed modules, with more specifically defined, exclu‐ sive connections, and the ability of one-axed modules to chain them‐ selves are some of the aspects of results complexity.


57


BASIC MODULES Experiments with subsets of the essential modules

1 module World size 10x10x10 slots Number of explicit connections: 1 Sides without connectors are indifferent

2 modules World size 10x10x10 slots Number of explicit connections 2

3 modules World size 10x10x10 slots Number of explicit connections 3


4 modules World size 10x10x10 slots Number of explicit connections 5

2 modules World size 10x10x10 slots Number of explicit connections 2

6 modules World size 10x10x10 slots Number of explicit connections 14

Without empty module

With empty module

59


6 modules World size 10x10x10 slots Number of explicit connections 17

No empty modules

With empty modules

No empty modules

With empty modules

No empty modules

With empty modules

6 modules World size 10x10x10 slots Number of explicit connections 11

6 modules World size 10x10x10 slots Number of explicit connections 11


4 modules World size 10x10x10 slots Number of explicit connections 10

5 modules World size 10x10x10 slots Number of explicit connections 8

4 modules World size 10x10x10 slots Number of explicit connections 7

5 modules World size 10x10x10 slots Number of explicit connections 13

Without empty module

With empty module

61


7 modules World size 5x5x5 slots Allowed connections are defined by typed rule from point

8 modules World size 5x5x5 slots Allowed connections are defined by typed rule from point


63



03 APPLICATIONS WFC in real-life projects

65


APPLICATIONS Testing and improving our skills and sensitivity with our toolset on real-world applications in various scales – from the scale of product design to urban planning

S

M


L

XL 67


NEONS Modular light sculpture Fixing an emergent aggregate of neon

Modules and rules

Assembly results

tube loops into a an intricate, yet fairly regular frame.

In early stages of the development we tested the WFC solver on simple directional stick assets. The Neons application is its direct offspring: a complete set of directi‐ onal and cross-pipes were used for the structural frame together with several special modules with neon tubes. The ruleset required the neons to form closed loops, each of a different color.

The design of a spectacular lamp with a complicated wired net of ledstrings, which would be still connected through framing system providing successful materialization of the lamp.

structure lights

One component


69 Rendering by Patrik Kučavík



71 Rendering by Patrik Kučavík


PIPES Sculpture

Modules and rules

A series of continuous winding pipes should entirely fill the given spatial envelope, each starting at its vertical top and ending at its vertical bottom. The result should be simple to produce yet feature an intricate aesthetics.

Twelve modules, that can be replaced with only two different physical elements, were used. The ruleset allowed for the modules to aggregate into continuous pipes exclusively in the vertical direction. Specific modules were selected to be at the beginning and at the end of each individual aggregated pipe. The asset was used for testing the WFC solver toolset, as it showed easy-to-evaluate results and featured nontrivial ruleset.

The WFC application was a remake of an older design, which was generated by a growth algorithm. The WFC fills any spatial envelope entirely, allows to define specific modules at selected areas. The asset can be extended so that the pipes intertwine more vigo‐ rously and still fill the envelope entirely. The setup and solution time is significantly shorter than in the case of the growth algorithm.

Assembly results


73


LALALAMP Public space light installation

Is it possible to fill space with a bran‐ ching system of closed pipes, that has a strong dynamic spatial orientation?

Modules and rules

A simple set of modules follows care‐ fully defined rules, that ensure the result is horizontal rather than omni‐ directional, yet it creates closed pipe loops that intertwine also in the third direction. It would be entirely impossible to achieve such density of pipes with growth algorithms or manually. The requirement of generating a closed lopped system of pipes was easy to achieve with WFC.

Assembly results


75


PLAYGROUND MAZE School project This project challenges the flexibility of discrete assemblies we can generate with WFC. The aim was to

Modules and connection rules

create a diverse network of tunnels and stairs to become a playground for children.

A single basic “communication“ element was set with have many directional aggregations, with being full (stairs) or dull (tunnel). Later, a “house” element was added to the ruleset.

All pieces assembled together preci‐ sely fill an arbitrary space with tunnels and staircases fluently interconnected into a playful maze.

Assembly results


Playground maze

77



79


HOUSING A series of architectonic exercises

The housing industry is battling overpopulation in cities, and pressure of global housing crisis.

The prediction of near future seems to

The resulting system is generating site

shift from 3D-printing back to prefa‐

(space) -specific designs with limit‐

brication and discrete design.

less number of variations.

How to automatize housing design

Depending on the given space, the

process? The objective of this project

system can combine rules and

is to create functional, generic housing

modules into valid single houses,

system that is flexible, adaptable on

apartment blocks or into superstruc‐

given spatial and social conditions.

tures.

The housing industry in battling over‐

The strong side of discrete design and

population in cities, and pressure of

our WFC-generated housing is in its

global housing crisis.

plurality and the ability to create

Such system should be ready for

connected unique spaces using a finite

prefabrication and repetition of mass

number of parts while preserving the

production, while maintaining the

given relationships between them.

uniqueness and peculiarity of every resulting design. Our building system is defined by finite number of repeating basic elements, and the relationship between them. In this case modules are representing horizontal and vertical communica‐ tions, rooms and facades and the rela‐ tionship are taken from basic common building typologies.

If the rules and relationships are correct, every result is valid.


81


Source modules

43 mega-modules consisting of 175 single modules

Main hallway modules

Connecting hallway modules

Rooms

Staircase landings modules

Stairs modules

Facade modules


Result

Modules are designed to join by floors

1st floor

Housing

83


The process of finding and developing a functional system originated in our established set of abstract set of modules and its translation into architectural language. The basic set of modules and rules

called “hallway megamodules” and

were defined by geometries set in

“stairs megamodules” and got various

cubic grid with 6 possible directions of

types of connectors, some with the

aggregation. In the world of architec‐

ability to connect to each other and

ture that means 4 cardinal directions

create a continual path within a

plus two vertical directions – the

building and some with the ability to

above and below. In this regular cubic

connect the rooms.

world, our tests had proven that too

The set that follow these communica‐

many modules with too complex,

tion megamodules, the “room mega‐

undefinable rules would have to

models” and “façade megamodules”

repeat to achieve the variety of

have another types of rules and

elements essential to construct valid

connections that helped us control

architectonic space. Our solution was

and define the interior and exterior of

the creation of various clusters of

our system and the relationships

modules with constant internal rules.

within them.

This optimization created the defini‐

By this variety of architectonically

tion of “megamodules”. In this way we

defined “megamodules” we have

achieved the ability to define and gain

proven the relevancy and applicability

control over different sized spaces

of our wfc algorithm in the design

that are required to create a building.

process of scale of architecture.

Differently sized and shaped “mega‐ modules” were then given external connection rules and qualities of various architectonic elements. In this case we defined a set of “megamodules” which doubled as set of elements required to create a hori‐ zontal and vertical communication within the building. These we have

A basic example of a floor plans of a result generated by WFC


Housing

85


Variations

Different seeds and space definitions


Housing

87


HYPERLOOP DESERT CAMPUS Conceptual proposal for competition Project by Miriam Löscher and Eva Kvaššayová

How to fill specific spatial envelopes with a given set of interconnected elements? Cross-scale design of the campus / small-scale masterplanning consisting of various program types (in large scale) and separated networks of infrastructure assembled with various types of facilities and amenities (in a small scale). We were able to choose from a multi‐ tude of program organizations and then populate them with smaller inner components. By setting strict rules we could precisely control the density of horizontal and vertical circulation, empty and filled spaces. And thus also the permeability of the structure and movement of people. The algorithm helped us find solutions, which wouldn't be possible to find by traditional ways of design. Parated networks of infrastructure assembled with various types of facili‐ ties and amenities (in a small scale).

Case studies and development of the structure


89


Programe scheme The hyperloop campus is going to be

which creates assemblies from given

tions and cells and let the space of

first of its species, basically a flagship.

elements according to their defined

former designed voxels be filled with

therefore it needs to breathe with

adjacencies.

those. a spectacular net of communi‐

future and mediate the feeling from

in first step we set voxel volumes

cations was created, where visitors

the novelty of hyperloop itself to

based on space requests from brief,

can enter all accessible areas and

those, who come to visit this center.

designed their logical connections and

enjoy the view of mountains and

one of the most up-to-date digital

let the algorithm assemble it for us.

desert as well as the inner organiza‐

design methods is using the wave

secondly we designed the communica‐

tion.

function collapse - an algorithm,

APARTMENTS HEADQUARTERS

GYM AND POOL

OFFICES

RESTAURANT RECEPTION

VISITORS TOUR ARENA

WELCOME CENTER

MUSEUM RELAX AREA

LABORATORIES

LABORATORY & CLASSROOMS

TRAINING CENTER


Elements Digitally developed autofill of the

SIGN (+) CAN CONNECT WITH THE

space - wave function collapse algo‐

side of the another VOXEL WITH THE

rithm - automatically fills the space

MINUS (-) in the same axis.) it allows

with the Modules of specific size (s, m,

us to precisely control the density of

l, xl; smallest module - 3x3x3m) with

the Communication, empty and filled

given set of the rules - marked as a +

spaces - therefore, ensure the proper

or - (side of the voxel with THE PLUS

permeability of the structure.

COMMUNICATION

FACILITIES AND AMENITIES

HORIZONTAL MODULES paths, halls, courtyards

path1_S

cells with specified functions

path2_S

turn1_S

turn2_S

turn3_S

turn4_S

path1_M

path2_M

OFFICE platform1_XL

platform

platform

platform3_L

platform2_XL

platform4_L

platform3_XL

platform5_L

APARTMENT

platform6_L CLASSROOM

LABORATORY

VERTICAL MODULES Elevators, ramps, stacks

VERT1_S

VERT2_S

L3_S

L4_S

L1_S

L5_S

L2_S

L3_M

L1_M

L4_M

L2_M

RAMP1_L

L5_M

L6_S

RAMP2_L

L7_S

L8_S

RAMP3_L

L6_M

RAMP4_L

L7_M

L8_M

91


Elements - specific cells We set six main functional cathego‐ ries of cells, out of which some have modular variations of furnishing and size (basic module: 3x3x3 m). These are evenly distributed among the set space and bound with many paths and platform, so that the daily routine walk to office, relax facilities and back into the appartment becomes an adventurous route through hidden desert paradise.

OFFICE

CLASSROOM APARTMENT

LABORATORY

GARDEN ELEVATOR


Exploded and assembled isometry with modules

APARTMENTS

RAMPS

CLASSROOMS

OFFICES

ELEVATORS

LABORATORIES

PLATFORMS

SPACE DEFINING SURFACES

93


Longitudinal section A-A 1:500

Floorplan 1:500

LABORATORIES

MUSEUM

a

OFFICE LABORATORY

ELEVATORS


ES

RESTAURANT

APARTMENTS

RECEPTION

a

MAIN ENTRANCE

95


HYDROGEN ISLAND Urban strategy for independent future Diploma project by Jiri Vitek Studio Hani Rashid, Vienna 2020

The project hydrogen island has aim to develop strategies and methodolo‐ gies for urbanisation of the aban‐ doned and forgotten landscapes using current technologies and focusing on topologies qualities, multiplicities and smooth and stripped spaces. For bottom up generative systems were used existing pathways, points and datascapes interpreting into ground and solar tissue. Such a defined mass needs to be carefully translated into architectural use, when instead of just slicing we can push it further via topological system such as Wave Function Collapse - Monoceros by Subdigital.

Masterplan


97


Clusters Simplified geometry of one cluster

Given mass was understood as space for habitats / architectural program _ such as residential units, public space units, gardens, ateliers, work spaces, corridors and very importantly energy production units contains H2 store facility, solar panels and wind turbos as well as recycling grey water facility. In this synergy effect each cluster could be independently existing and be fully sustainable. Right definition of connectors and play with algorithms end up in very nice, differentiated, rich and contextual results.

Plan of production geometry of the cluster

Section of production geometry of the cluster


99


Components and architectural Language

The language is coming from struc‐

Modules and connection rules

tural understanding of basic frame units and its possibilities of variations. It's quite intelligent and it's able to become an energetic facility or interior spaces in residential units. Relations between parts and whole is consi‐ dered a field allowing transition between private and public spaces. Such strategies generate a rich and very structural environment.

Assembly results - sustainable cluster of units

Simplified geometry

Production geometry


101


WFCITY Land Jakob Dostert Studio Architecture III, UMPRUM 2020/2021

The project is exploring possibilities of discrete assemblies via Monoceros. The exploration was conducted on three urban/housing scenarios LAND, COAST and WATER as a reference to an imminent danger of rising seawater levels.

LAND The land scenario of the WFCity explores the possibility to cover as much as possible of a given landscape. It is achieved to cover more of the terrain over time by adding more modules and rules with every evolutionary step. Connected terraces can be used for gardening, streets connect the land to the water, where the land scenario unifies with the coast.


103


WFCITY Coast Adam Varga Studio Architecture III, UMPRUM 2020/2021

COAST Lagoons, bays and shallow waters are all alive. So are the spaces above them, rising on the columns. COAST WFCity scenario encourages to imagine urban schemes, organized by an algorithm, on the borders between water and land.


105


WFCITY Water Petra Sochůrková Studio Architecture III, UMPRUM 2020/2021

Project explores possible housing typologies based entirely on water. It consists of several branches of designs for different functions. The main goal is to connect the city with the water seamlessly and create typology, which can be applied on different input conditions. This can be achieved thanks to WFC, which can create endless possible aggregates that are applicable on any given state of input landscape.


107



04 PROTOTYPES Fabrication experiments

109


MATERIAL MORPHOLOGIES Aggregation formal study

Internet is full of images. Creating an appealing render of unreal, digital geometries that stays within the borders of computer screens is most of the time not convincing enough to reach the wider audience outside our community. Our interest in Subdigital is therefore to transform the digital results of our design to the real world, to bridge between digital and physical.

It seemed difficult, if not impossible to fabricate and materialize a complex and compelling aggregated structure using conventional methods. Current parame‐ tric design tools are creating spectacular results on the computer screen. Not all these geometries are possible to recreate with the limits of physics laws and fabrication methods. Most of those design tools required use of voxelization, a brute force of geometry, to turn the data into matter. It mostly required timeconsuming process of 3D printing the complex objects, or tedious man-power driven work, assembling the multitude of unique components.


Prototypes

111


Formal study

What if we created a method that would grant us the possibility of easier fabrication without losing the complexity? Previously available tools were o�en limited to define the geometry within the limits of one material. It o�en takes some level of post-produc�on, to define a coherent object with mul�ple materials.

How to design a system of multiple weaved aggregated structures? Aim of this case study was to apply the Wave Function Collapse (an algorithm, at that time we were developing an implementation of this algorithm into our computational tools) in design prepared for fabrication, test the detai‐ ling of connections between elements, and to test material possibilities. Our implementation of the WFC algorithm helps us turn data into an aggregate of well-defined discrete elements of several types that connect to each other in a prescribed way. The elements are designed with digital pre-fabrication in mind, they never overlap and never fall into a wrong place.


Variations

We defined one type of connectors for the elements of one material type. The rules defined within one type ensure, that the modules of the same type have some kind of connection or relationship between one another. Various rules are defining how these one-material elements are aggregable within the system. Together having three materials means having three types of connectors with own rules. Another type was then also defined due to inter-material interactions. Indifference and exclusion rules between the units of different materials ensure their coexistence and intertwined character of the structure. WFC system of Material Morphologies is therefore based of two main ideas – rules of connections and rules of indiffe‐ rence and exclusion. Precisely defined connections between units of one material not only arrange a structure of predictable technical detail for physical assembly of the structure, but also creates a “flow” of material in the struc‐ ture. After all the necessary information is assigned, rules and connectivity defini‐ tions necessary for our tool using the WFC algorithm will fill a defined space. Using the design principle based on local connections, not global appearance allowed us to unify the construction details without having to compromise the formal complexity.

113


Modules and connection rules The name Material Morphologies refers to the complex landscape of several units made of a few of mate‐ rials. One material creates one layer of landscape, multiple layers coexist and intertwine, forming one object. The aggregated structure creates coherent flow of materials with changing spatial characteristics. We evaluated the structure by aesthetic and spatial criteria, considering it to be a proto-architectural object. We have developed a design-oriented version of the Wave Function Collapse aggregation method that can be later used for partial tasks in architectural design. A software tool that can be used to generate a multitude of abstract and applied examples in various scales.

METAL

PLEXI

WOOD


Result

What if we created a system that is defined by finite number of repeating modules of different materials with its own inner rules of connectivity within itself and in between these materials?

METAL

PLEXI

MATERIAL LAYERS

WOOD

RESULT

115


Materialization

The whole WFC system follows and

easily located and assure quick and

obeys the laws of a rasterized 3D

effortless assembly of the elements in

space. Discreet elements were

physical model.

designed with the intent to behave

This way the finished object can stay

and fit within this kind of space as

organic and fluent and remain the

well. Of course, that does not neces‐

order and inner organization neces‐

sarily mean to stay trapped within the

sary for creating a documentation

borders of boxes with the design of

and following materialization of the

discreet elements entirely. The inevi‐

digital model.

table requirement for the algorithm to successfully compute the result are the locations of the connectors. It is the location between two slot faces of the invisible rasterized space that holds all the information, all the rules and relationships necessary for assembling pieces together.

Exactly this had proven to be not a limitation, but an advantage while fabricating and assembling physical model. Not all slot faces need a physical connection. Some connec‐ tions stay hidden within the coherent discreet element that spans across multiple slots of the space. Some places of connections, by the pre-de‐ fined rules of indifference can stay empty. The remaining places of contact are consequently not neces‐ sary creating a regular rasterized grid, but still are regular enough to be

How to turn the digital image into a physical object?


Exhibition

This project was a part of the Studio Architecture III Vysoká škola uměleckoprůmyslová v Praze exhibi‐ tion at Designblok, Prague Internati‐ onal Design Festival 2020. Many thanks to our team!

Mimi Löscher (FAD STU, Die Ange‐ wandte), Suulsak Sk, Eva Kvaššayová (UMPRUM), Ľuba Ondrejkovičová (FAD STU), Hugo Fekar (UMPRUM), Ján Pernecký (UMPRUM / Subdigital), Tomáš Tholt (FAD STU / Subdigital), Janči Tóth (Subdigital), Michaela Krpalová (AFAD / Subdigital), Kristyna Uhrova (Subdigital).

Great work on digital fabrication of components was done by 4from media, sro and Colab Slovakia.

117



119



121 Rendering by s.h.e. renders



05 WORKSHOPS AND EVENTS

123


SUBDIGITAL SUMMER SCHOOL 2020 How it started!

In the summer of 2020, a group of authors Ján Pernecký, Tomáš Tholt, Ján Tóth, Michaela Krpalová, Kristýna Uhrová, Hugo Fekar, Alexander Kupko, Eva Kvaššayová, Miriam Löscher and Ľuba Ondrejkovičová prepared a research project, the result of which is a proposal to adapt the mathema‐ tical method / algorithm Wave Function Collapse for architectural design purposes.

The subject of Subdigital Summer School 2020 was current and near-fu‐ ture big topic in computational design, prefabrication and discrete design. The early objectives were to identify the present state of the discrete design scene, as well as to learn and channel the mindset the principles of wave function algorithm while develo‐ ping a comprehensive software tool that would support such design processes.


Summer school desk crits

Within the span of summer months, we consulted our progress with guest specialists of various backgrounds. With their help we acquired an insight from theoretical and academical point of view, trough the view of software developers. We met and discussed with technologists and professionals in computational design, digital fabri‐ cation and robotics as well as enduser specialists, on the for interdisci‐ plinary collaborations between art and tech community, and the UX professionals.

Guest reviewers Imro Vaško/UMPRUM Shota Tsikoliya / UMPRUM Martin Kossuth / MORE Aldo Sollazzo / Noumena / IAAC Michal Hladký / EHMKK 2013 Lucia Dubačová / Sensorium Martin Uhrík / DataLab Roman Hajtmanek / DataLab Alessio Erioli / Co-de-iT

125


ONLINE WORKSHOPS 2021


127



129


Subdigital 2021


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.