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!

