Cliff or Sudden Drop in Kangaroo Mesh at Arc's OnCurve

Hi everyone, I am having trouble figuring out how to make a clean mesh for this pavilion model. I was able to achieve the shape I want like below, but the mesh is not clean.

I am going to use the kangaroo mesh to make arches that go across the roof like this, but with my current mesh, the resulting curves when I slice this mesh look jagged like here. I think this has to be because the mesh is not clean.

To fix the mesh, I had to revisit how it was made. Here is the overview of how I made it look the way I want. The kangaroo goals I used are as follows

  • edge length
  • load (vertical)
  • anchor (points at the ends of the arcs)
  • smooth
  • OnCurve

Each side of the base mesh has 3 arcs. 1 arc standing straight up and 2 arcs leaning outwards. To get the mesh to ride or flow along these arches, I used base curves (BCrv _) to select vertices on the mesh to put them on the arches like below. Each arc has a corresponding base curve like how Arc 1.1 corresponds to BCrv 1.1 and how Arc. 1.2 corresponds to BCrv 1.2.

With this method combined with a smooth goal, I was able to make the mesh flow along these arches the way I want. This only worked when I played with the offset of the base curves.

Here is the cliff or sudden drop mentioned in the title that happens when the offset is changed. As seen in the images below, there is the cliff where the vertical arc is at when the offset of BCrv 1.0 is -300 and -500. When I play with it and change it to -900 and -1400 the mesh smoothens out. I think me fixing this made the mesh messy, but I don’t know how else I can get rid of this cliff or sudden drop without the offset. I’ve tried several things such as applying a load just on the center points (which I included in the attached gh file) but this offsetting of the base curve works best to get the shape I want.

As you can see at the corners the mesh looks messy like here and here, which I think is why the curves are jagged when I split the mesh like in the first few images.

Here are links to my previous posts about the same project.

  1. Creating a Single Smooth Roof Surface for an Organically Shaped Pavilion - #12 by rhino38

  2. Retrimming the Surface Division of an Untrimmed Surface - #15 by rhino38

  3. How to Reorder a Data Tree To Create U and V Polylines for a Pavilion?

  4. Pulling Mesh Vertices on Tween Curve in Kangaroo for a Pavilion Arc - #6 by rhino38

  5. https://discourse.mcneel.com/t/pavilion-roof-mesh-from-multiple-curves-arcs-as-anchor-constraint/218784

Here is the grasshopper file.

Pavilion cliff mesh gh for forum 05-21.gh (88.4 KB)

Any sort of help or advice to point me in the right direction on how to clean the mesh is much appreciated. Thanks!

Pavilion cliff mesh gh for forum 05-21 Edited v0.gh (80.4 KB)


Notice this Tolerance parameter.

Wow Quan Li, just saw your script. It must have taken a good chunk of your time, especially as there are clusters within clusters and even explanations. Thank you so much for that. I will have to study what you did deeply as there are a lot of components you use that I haven’t used yet and ways of thinking about the problem that I haven’t thought of. Thank you so much.

One quick question though about the tolerance parameter. What exactly does it change? I notice when I change it to 0.2 0.3 0.4 or whatever, I don’t see any noticeable difference.

The default value is set to 0.001, which is far too tiny to fit your actual project scope since you’re working on architectural building design.

K2 operates based on independent nodes, also commonly referred to as spatial points. Any two individual points that fall within the preset tolerance range will be automatically identified and merged as a single unified node. But why 0.1 is better than 0.001, I cannot explain, maybe Chatgpt?