We need your help! 🔥
Please consider disabling your ad-blocker to support this website! 🔑
We are a free, community-supported website! 🥰
We only display small unobtrusive ads which help us stay online! 💯
Thank you in advance! ❤️
Main
Module
Rule
Slot

Monoceros

ADDON. Version 1.3.0.1. Released on 14-Jun-2021. Provides 33 components. Created by Jan Pernecky Subdigital. Features 0 video tutorials.
Monoceros is a suite of tools for optimally occupying an Envelope with discrete Modules, where the spatial relationship between those Modules can be constrained by a set of user-defined Rules. By using the Wave Function Collapse algorithm, it provides an innovative and fast solution to the emerging architectural problem of Discrete aggregation for purposes of design, architecture and urban planning. Monoceros is an implementation of the Wave Function Collapse (WFC) algorithm developed for game design by Maxim Gumin and extended and promoted by Oskar Stålberg with his game Townscaper. WFC is an algorithm that fills an entire spatial envelope with Modules in a meaningful way. The envelope is divided into discrete box-like Slots. The algorithm selects and places Modules into the Slots, making sure any two placed Modules can become neighbors (do have a common connector) according to specified Rules. Discrete aggregation is one of the hottest approaches of computational design, along with the emergent swarm intelligence and AI. It recognizes small distinct parts that can be assembled into larger aggregates according to certain requirements. The parts are often represented by material components assembled using connectors. Most prominent discrete approaches are voxelization, discrete growth and constraint modeling, such as Wave Function Collapse.

Rule

Construct Explicit Rule between 2 Lists (RuleExp2Lists)
Construct a Monoceros Explicit Rule (connector-to-connector) between all listed Connectors of all listed Modules of two lists
Are Rules Equal (AreRulesEq)
Returns true if the provided Monoceros Rules are equal.
Unwrap Typed Rules (UnwrapRules)
Convert Monoceros Typed Rules into Monoceros Explicit Rules and deduplicate.
Scan Slots for Rules (RulesScan)
Scan Slots and extract Rules describing connections in them.
Suggest Rules from Geometry (RuleSuggest)
Suggest Rules based on naked geometry at connectors. The two Modules described by the generated Rule can be joined or welded. Supports Curves, BReps and Meshes.
Construct Indifferent Rule (RuleIndiff)
Selected Connectors of a Monoceros Module connect to any opposite indifferent connector of any Monoceros Module.
Construct Rule At Boundary (RuleBound)
Rule allowing the Monoceros Module to touch the boundary of the Envelope with a Connector of the given index. All connectors with an Indifferent Rule can automatically touch the boundary.
Is Rule Explicit (IsRuleExp)
Returns true if the provided Monoceros Rule is Explicit (connector-to-connector).
Is Rule Typed (IsRuleTyp)
Returns true if the Monoceros Rule is Typed (connector-to-all-same-type-connectors).
Deconstruct Typed Rule (DeconRuleTyp)
Deconstruct a Monoceros Typed Rule (connector-to-all-same-type-connectors) into Module name, Connector index and Connector type.
Deconstruct Explicit Rule (DeconRuleExp)
Deconstruct an Monoceros Explicit Rule (connector-to-connector) into Module names and Connector indices.
Collect Rules (CollectRules)
Collect, convert to Explicit, deduplicate, sort and remove disallowed Monoceros Rules. Automatically generates an Out Module and its Rules.
Preview Rules (RulePreview)
Preview Monoceros Rules as lines connecting individual Connectors of Monoceros Modules.
Indifferent Rules for unused Connectors (RuleIndiffUnused)
Unused connectors of Monoceros Modules connect to any opposite indifferent connector of any Monoceros Module.
Rule at Boundary from Point (RuleBoundPt)
Rule allowing the Monoceros Module to touch the boundary of the Envelope with a Connector marked with a Point. All connectors with an Indifferent Rule can automatically touch the boundary.
Indifferent Rule from Point (RuleIndiffPt)
Connectors of a Monoceros Module marked with a Point connect to any opposite Indifferent Connector of any Monoceros Module.
Typed Rule from Point (RuleTypPt)
Create a Monoceros Typed Rule (connector-to-all-same-type-connectors) from a Point tag. The connector Type will be converted to lowercase.
Explicit Rule from Curve (RuleExpCrv)
Create an Monoceros Explicit Rule (connector-to-connector) from a curve connecting two opposite connectors.
Construct Typed Rule (RuleTyp)
Construct a Monoceros Typed Rule (connector-to-all-same-type-connectors) from Monoceros Module name, Connector index and Connector Type
Construct Explicit Rule (RuleExp)
Construct a Monoceros Explicit Rule (connector-to-connector) from Monoceros Module name and connector number

Slot

Assemble Rule into Slots (AssembleRule)
Create deterministic Slots that contain Monoceros Modules assembled according to the given Monoceros Rule.
Slots from Geometry (SlotsFromGeometry)
Identify Module geometry and construct Slots containing it. Ignores connection to boundary.
Add Boundary Layer (AddSlotBound)
Add one layer of Monoceros Slots around the existing boundaries.
Are Slots Boundary (AreSlotsBound)
Are Monoceros Slots on the boundary of the world?
Slice Geometry (Slice)
Populate geometry with points ready to be used as Monoceros Slot and Monoceros Module centers. Supports Point, Curve, Brep, Mesh.
Deconstruct Slot (DeconSlot)
Deconstruct a Monoceros Slot into its center point, base plane, diagonal and list of allowed Monoceros Modules.
Construct Slot with Listed Modules Allowed (SlotModules)
Construct a Monoceros Slot with allowed Monoceros Module names.
Construct Slot with All Modules Allowed (SlotAll)
Construct a Monoceros Slot with all Monoceros Modules allowed.

Module

Construct Empty Module (ModuleEmpty)
Construct an empty Monoceros Module.
Construct Module (ConstModule)
Construct a Monoceros Module from Slot centers. The specified production geometry will be used in Monoceros Solver result.
Deconstruct Module (DeconModule)
Deconstruct Monoceros Module into name, base plane, Connector planes, Connector numbers and properties.

Main

Materialize Slots (Materialize)
Materialize Monoceros Modules into Monoceros Slots.
Monoceros WFC Solver (WFC)
Monoceros Solver for the Wave Function Collapse

Site design © Robin Rodricks.   Monoceros and associated data © 2024 Jan Pernecky Subdigital.  
Rhinoceros and Grasshopper are registered trademarks of Robert McNeel & Associates.  Hosted by GitHub

Report an Issue  |  Terms of Service