Grasshopper Docs

Community documentation for Grasshopper add-ons & plugins

Monoceros

ADDON. Version 1.2.3.5. Released on 2021-Apr-18. Provides 32 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.
Main
Module
Postprocess
Rule
Slot

Rule

Collect Rules (CollectRules)
Collect, convert to Explicit, deduplicate, sort and remove disallowed Monoceros Rules. Automatically generates an Out Module and its Rules.
Construct Explicit Rule (RuleExp)
Construct a Monoceros Explicit Rule (connector-to-connector) from Monoceros Module name and connector number
Construct Typed Rule (RuleTyp)
Construct a Monoceros Typed Rule (connector-to-all-same-type-connectors) from Monoceros 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.
Deconstruct Typed Rule (DeconRuleTyp)
Deconstruct a Monoceros Typed Rule (connector-to-all-same-type-connectors) into Module name, Connector index and Connector type.
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).
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
Explicit Rule from Curve (RuleExpCrv)
Create an Monoceros Explicit Rule (connector-to-connector) from a curve connecting two opposite connectors.
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.
Indifferent Rule from Point (RuleIndiffPt)
Connectors of a Monoceros Module marked with a Point connect to any opposite indifferent connector of any Monoceros Module.
Indifferent Rules for unused Connectors (RuleIndiffUnused)
Unused connectors of Monoceros Modules 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.
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.
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.
Scan Slots for Rules (RulesScan)
Scan solved Slots and extract applied Rules.
Unwrap Typed Rules (UnwrapRules)
Convert Monoceros Typed Rules into Monoceros Explicit Rules and deduplicate.

Slot

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?
Construct Slot with All Modules Allowed (SlotAll)
Construct a Monoceros Slot with all Monoceros Modules allowed.
Construct Slot with Listed Modules Allowed (SlotModules)
Construct a Monoceros Slot with allowed Monoceros Module names.
Deconstruct Slot (DeconSlot)
Deconstruct a Monoceros Slot into its center point, base plane, diagonal and list of allowed Monoceros Modules.
Slots from Geometry (SlotsFromGeometry)
Identify Module geometry and construct Slots containing it. Ignores connection to boundary.

Postprocess

Assemble Rule (AssembleRule)
Materialize Monoceros Rule.
Materialize Slots (Materialize)
Materialize Monoceros Modules into Monoceros Slots.
Slice Geometry (Slice)
Populate geometry with points ready to be used as Monoceros Slot and Monoceros Module centers. Supports Point, Curve, Brep, Mesh.
Preview Rules (RulePreview)
Preview Monoceros Rules as lines connecting individual Connectors of Monoceros Modules.

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.
Construct Empty Module (ModuleEmpty)
Construct an empty Monoceros Module.

Main

Monoceros WFC Solver (WFC)
Monoceros Solver for the Wave Function Collapse

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

Report an Issue  |  Terms of Service

$ADFOOTER__$