generative modeling for Rhino
I got to a point, where I don´t really know, if the way, that i took is the right one. Also it´s the first time, that I really get into generative/ iterative modeling.
That´s my little exercise piece:
Gaps in a solid, that create a rock-like, natural appearance.
For now I don´t worry about the white surfaces, but just focus on the lines.
Each line follows the grid, but the kinks are randomized in x and y direction (easy).
There is one big constraint, that makes it complicated for me: the lines may never intersect.
All right, that´s it. I attached the first Grasshopper-definition draft and left some notes at the critical points. Everything besides that is pretty clear.
I´m thankful to every little advice, or hint.
Replies are closed for this discussion.
This is a good one for Grasshopper and Coffee challenge !
^No ones been drinking coffee lately :(
This is a bit tricky. I think you're right to use hoopsnake, but you might be setting it up the wrong way. For one, as a general rule you should only ever use a single hoopsnake component to loop through your data - careful management of your data trees (using entwine and explode tree for example) allows you to pass multiple sets of data through one hoopsnake component.
The approach that I took was to start by calculating far too many kinked lines, not caring about whether or not they intersect. Then I used hoopsnake to run through this list one by one. For each curve in the list, starting with the first one, if any of the other curves intersect it, I throw it out. Then I pass the curve that I've already tested to a separate list of already-checked curves, and repeat the process on the rest that were not rejected.
I've annotated the definition in a bit more detail, but let me know if there's anything I can explain further.
Hi Andrew ,great definition!is a bit of time that i trying to figure out how to get something like this, but there is a passage that I can not understand where you're testing the smaller of the list-length output from the random component and the values of the curve divided by a length parameter (min spacing catch). if you can Could you kindly explain me the logic behind it ?
the idea behind this portion is just to ensure that very short contours (such as at the corner of a rectangle when the contours are taken diagonally) don't have far too many division points for their length. It effectively sets a limit by length on the number of points each contour can be divided into.
Thank´s for everybody´s input,
I´m now working on a nice solution, an will share it afterwards if you will.
For now, I´m gonna stop this discussion here.