Subdivide given area into randomly sized blocks with no gaps

Wow that is incredibly interesting. I’ve been meaning to make a move to c# and this is a fascinating case study. Thanks so much for in input!

See there I put the sript

It is classical Catmull Clark subdivision

Made this once to complete Colombo, Sri Lanka, where OSM had no data (green=OSM, red=script)
Rectangles were rotated to the nearest street, scaled, random reduced and culled if the proportions are over 4x1.

Following a part of the script. It requires Anemone.

uneven (16.9 KB)


Such an elegant solution! and beautiful results too.

There’s also this old thread that might be relevant:


Here a version with tileable subdivision. The same logic as previous, I add some mesh output so could be used to make a single mesh or a big tile. (38.7 KB)

Continuing to play with the subdivision script and mesh output, here on a torus.


Hey Laurent,t thanks for sharing this that script looks amazing, but when I load it I get the following error message:

  1. Error (CS1061): ‘Rhino.Geometry.Mesh’ does not contain a definition for ‘RebuildNormals’ and no extension method ‘RebuildNormals’ accepting a first argument of type ‘Rhino.Geometry.Mesh’ could be found (are you missing a using directive or an assembly reference?) (line 204)

do you know what this might refer to?

It is v6 command. I think you use rhinov5

True. Thanks for the reply

The function could be replaced by mesh.faces.compute normals then normals.compute normals … Or something like that.
Daniel Abalde work

1 Like

Mesh.Normals.ComputeNormals() for the vertex normals and Mesh.FaceNormals.ComputeFaceNormals() for the face normals respectively .

1 Like

Thank, not easy to answer correctly with a phone. I just think we must begin by normals of face then vertex.

1 Like

this is pretty interesting! is it possible to change the rectangular curve input ?

this is pretty interesting! is it possible to change the rectangular curve input ??

Great work

Was this illustration used for a Master plan presentation of sorts ?

Laurent, this is an awesome script, thanks for sharing. What if I already have a defined set of rectangle sizes and a defined bounding rectangle. How would I go about packing them? I’m working on a little fabrication project and I want to lay out a set of rectangular parts on a large sheet to optimize material.

Seems to be a job for OpenNest! :wink:

Hello as said by @diff-arch you need some nesting tool.

This is great. Thank you so much.