Kangaroo Anchor Points Breaks Mesh Result

I am having three issues with the mesh result from my Kangaroo script. I’ll split it up into three different parts:

Issue 1:
I want the roof to be completely flat but with the current anchor points, it seems to bulge downwards. The red line below is at 90 degrees and I want the top of the mesh to be aligned to that. I have identified the anchor points I want to be flat too.

Mesh to be aligned to redline:

The component which maintains mesh anchor points from being move:

Issue 2:
The second issue is related to the first where I’ve got the clothed anchor points selected to maintain a flat top. However, when I plug the selected points into the target vertices this result happens (image below). The vertice which is stuck isn’t selected as one of the anchor points so I am unsure why this is happening.

The component which causes this issue but also attempts to keep a flat plane:

This is what the mesh is meant to look like. Clothed anchor component unplugged to show this example:

The reason I want to use those anchor points to create a flat surface is that it will be the ground level that people can walk on for my project.

Issue 3:
The final issue is with the structure meeting to the ground plane. For some reason, the mesh doesn’t meet the anchor points.

Purple is the mesh and white is the anchor points I want to connect to:

I made a test script earlier and it worked but for some reason, this file doesn’t achieve the same result.

Test script here: Ground_Level_Landscape_Test.gh (149.8 KB)

Screenshot from the test script of the structure meets the ground I want to achieve:

Here is the script which has all of the issues presented:
Ground_Level_Landscape_Mesh_Issues.gh (108.2 KB)

I have highlighted the areas with red and white groups to let narrow down where were issues occur.

I think the way you select anchor points is quite complicated and time consuming. Somehow you also had way too many target points for the inner anchor point set.

I adapted your file with a different way to select points: using closed curves is more flexible, also in case your input mesh changes.

Ground_Level_Landscape_Mesh_Issues.gh (42.5 KB)

Hi Martin,

Ah thank you I still fairly new to Grasshopper and was wondering if a more effective way to select a large number of points.

There is still just a few issues with the result.

The reason for the large number of target points was because I wanted those areas of the mesh to be parallel to the red line as people will be walking on that plane for my project.

The mesh is still bulging downwards and I was wondering if you know a solution to ensure this plane is flat.

The last issue mesh still doesn’t meet the anchor points on the ground floor:


Ground_Level_Landscape_Mesh_Issues.gh (47.3 KB)

The anchor points just needed a bit higher strength.

The edge being pulled downwards can be fixed by pulling all points of the upper naked edge to the plane.

Check the file. On the pointy end, your mesh is being squeezed a bit too much and it is not so nice yet


Hi Martin,

Thank you I’ve studied your script and managed to almost get the mesh the desired result. I just have 2 more issues I am unsure of how to fix.

Issues 1:

I am still unsure how you achieve the perfect anchor points to attach to the ground.

I am trying to avoid triangulate the mesh since it makes an undesirable result.

Issues 2

Do you know if there is a way to change the scale and the shape of the skylight?

I want to change the scale and shape of each side independently of the skylight (black line) and the structure (blue line) that meets the ground floor.

Script: Ground_Level_Landscape_Mesh_IssuesV2.gh (111.5 KB)

Hi martin~

You’re very sharping man!

Thank’s for sharing~

You need to pay more attention to define the right anchor points and targets, as well as to dial in the goal strengths more prudently. Starting from the default values and gradually testing and adapting where needed, is a much better approach than defining huge, custom strengths for each goal.

Also you should avoid defining the same goals more than once for duplicate points, meaning avoid duplicate points! It’s okay though to define different goals for the same vertex! That’s different.

I’d recommend you to start with an overall different mesh from the get-go, if this is the goal.
Doing this to the existing relaxed Kangaroo mesh will probably not result in a pleasing model.

That said, in my current revision the shape of the skylight can be slightly modified.

However, to accomplish this, you need a second Kangaroo solver, because the relaxed mesh from the first one is required as a starting geometry.

Ground_Level_Landscape_Mesh_IssuesV3.gh (61.4 KB)

1 Like


Thank you for your attempt I understand that this could be an issue with the starting mesh, but the problem is I am unsure how to build the mesh differently to achieve the desired result due to me being fairly new to Grasshopper.

After some failed attempts and looking at solutions I may have found a way but unsure how to execute the result.

Kangaroo has a Grab command which allows you to manually move vertices and updates the mesh cleanly, but they always bounce back to their original state. Is there a way to have the vertices you grab and move remain in the updated position?

Ground_Level_Landscape_Mesh_Issues-V4.gh (107.1 KB)

You would model a three-dimensional, low-poly base mesh by hand that already kinda has the rough features, shape, and topology that you envision your final model to have, instead of starting from an overly simple, flat mesh.
In Grasshopper and Kangaroo, you’d then just do the relaxation of the further refined (subdivided) base mesh.

I’m not sure, whether the Grab component is really meant to do live modelling like this? I haven’t used it much so far.

Since it is probably just another force that gets applied, you have to make sure that none of the other forces or goals that make up your simulation, cancel it out or override it. I’ve noticed that you again dialled up all the strengths like crazy in your current file, and I don’t like to repeat myself, since already warned you twice about the involved risks.

Instead of Grab, what might be more useful for you here is the Target input on the Anchor component, as shown here:

1 Like

Hi Daniel,

Thank you for your help it worked perfectly and managed to achieve the desired result.

Here is the script for anyone who has that a similar issue in the future too:

Ground_Level_Landscape_Wing_1 (Edited Skylight).gh (173.7 KB)

1 Like

That’s quite a tall structure!

Haha, yeah the project is still at very early stages and it’ll be underground and won’t tower over everything like it’s shown in the screenshot. But hasn’t been moved to the correct position yet.