Markovian generative 3d modelling for Grasshopper.
Provided with an example model that uses 3d instances, the algorithm will read the relationsips (transforms) between adjancent instances.
In the generative stage the algorithm will generate a new block assembly that retains features from the example assembly.
To start, the algorithm will choose a block at random from the pool of available blocks. Based on the learned relationships it will choose a canditate block. If the canditate does not collide with the existing geometry it will be added to the generated assembly. Repeat this step as required.
A copy of Rhino 3d is required. A free trial version is available. An example file is provided.
Reading existing objects:
var reader = new ReadTransitions();
var transitions = reader.Read(instances, distanceThreshold);
Generating a new assembly:
var generator = new GenerateBlockAssembly(seed);
var assembly = generator.Generate(transitions, obstacles, steps);
This project is licensed under the GPL v3 License - see the LICENSE
file for details.