Alternating point offset patterns per layer, advanced 3d printing

cylinder_offset.gh (9.9 KB)

Hi everyone,

I’m new to Grasshopper and still learning how to properly think in terms of lists, indices and data trees.

At the moment I’m a bit stuck and can’t really move forward on my own anymore, so I ask for some guidance here.

I’m working in Grasshopper with closed contour curves (cylindrical geometry) with the book advanced 3d printing Clay / FDM.

Setup:

- A cylinder is sliced using Contour, resulting in one closed curve per layer.

- Each contour curve is divided into points.

- Based on these points, I apply point-based offsets to generate a surface pattern.

Intended pattern:

The pattern is strictly layer-based and should follow this sequence:

Layer 0: no offset

Layer 1: offset pattern 1 (every other point offset outward)

Layer 2: no offset

Layer 3: offset pattern #2 (same offset amount as pattern 1, but shifted by exactly one point along the curve)

Layer 4: no offset

Layer 5: offset pattern 1

Layer 6: no offset

Layer 7: offset pattern #2

… and so on.

Problem:

When I try to implement this by further splitting or dispatching the point lists

(e.g. using Split List or Dispatch on already processed points),

I get visible artifacts at the seam of the closed curves.

It looks like the point order or curve start point changes between layers.

What I’m looking for:

- a robust way to handle or stabilize the seam on closed contour curves

- a clean and understandable method to switch between offset pattern

- ideally explained in a beginner-friendly way that helps me understand the underlying data logic

The book “Advanced 3D Printing with Grasshopper (Clay & FDM)” explains the general principle of such patterns, but assumes prior Grasshopper experience and does not show the concrete implementation steps, which is where I’m currently struggling.

I’ve attached a minimal Grasshopper file and screenshots.

Any guidance, best practices or hints in the right direction would be highly appreciated.

Thank you very much!