Hi Grasshopper community!

I am working in one architecture atelier as programmer and I got an assignment in Grasshopper. Never worked there before and need some community help.

I have a csv file with trees coordinates in a park (x, y, safe_radius). I have it visualized as points and circles around them.

Then, I define a list of points in the viewport. The first is supposed to be the start, the last - end of the curved wall. In between points are suppose to mark the approximate direction of the wall. The goal is to construct a curved wall, so that it does not intersect any safe area of any tree and has some more constraints:

- Wall consists of segments of length SEG_LEN (1m<=SEG_LEN<=3m).
- Every segment is an arc of a circle of two predefined radiuses (SEG_RAD_1, SEG_RAD_2).
- Between the segments there should be a gap of a variable length (SEG_GAP \in <2mm, 10mm>).
- Wall must not intersect the tree safe zone (or very slightly).
- It should be smooth

It is a bit overwhelming for a first task and I have no idea how to address this problem. I was thinking about implementing some king of constraint satisfaction optimization algorithm, but it seems a bit overkill. Maybe there are some built-in functions to use for this task Iâ€™m not aware of. Couldnâ€™t find any related topics/tutorials/blogs so asking here now.

Any ideas? Would be really grateful for your help.