Hello everyone,
I’m looking for a way to procedurally generate random orthogonal footprints in Rhino 7 (Grasshopper or RhinoPython).
The generated footprint should satisfy the following requirements:
- One single closed outer boundary.
- Only 90° angles (horizontal and vertical edges).
- Every coordinate should lie on a 0.5 cm grid.
- Edge lengths should be multiples of 0.5 cm, but not all edges should be 0.5 cm long.
- Around 80–120 recesses/notches to create a fairly complex outline.
- No self-intersections.
- A different valid footprint should be generated every time (or controlled by a random seed).
The result should look like an irregular footprint with many orthogonal recesses, similar to the attached example.
I’m open to:
- a Grasshopper definition,
- a GhPython script,
- a RhinoPython script,
- or an existing algorithm/library that generates random orthogonal polygons and can be adapted.
Does anyone know of an existing implementation, or have suggestions on the best algorithm for this type of procedural generation?
Thank you!






