I am trying to create a cylindrical shape model with the taper and the using this shape create a romb pattern something like this

enter image description here

Does anyone know how to do it with Geometry nodes?

  • $\begingroup$ Hello and welcome. Please use a title that matches the content of the post. It should read like a question, be descriptive but succinct, unique and identifying, summarizing the problem so that anyone searching for similar issues is likely to find this. Remove anything superfluous, avoid using words like "this", "help with", "issue" or "question about", instead describe what "it" is. Remember, your title is the first thing visitors see, answers you get depend heavily on it. See What is the problem of asking “How do I do this?" $\endgroup$ Commented Jul 1 at 17:01
  • $\begingroup$ reminds me of... blender.stackexchange.com/a/276293/60486 $\endgroup$ Commented Jul 1 at 17:02
  • 2
    $\begingroup$ There's a comprehensive (and long) tutorial by Erindale using Geometry nodes to create similar shapes here which might show you how to do it. $\endgroup$
    – John Eason
    Commented Jul 1 at 17:31

1 Answer 1


(Using Blender 3.6.12)




Starting object: An edited BezierCircle defining the cross section of the pillar in the (X,Y) plane. Starting point

GeometryNodes modifier input parameters:

  • Ribs: the number of lines turning around the pillar in one direction, clockwise or counter-clockwise.
  • Levels: Resolution in Z direction.

GN input parameters


  • To start from a (X,Z) grid, with X used as the Factor to sample the original curve, that is "wrapped" around the pillar with an offset along X function of Z to shear the grid horizontally in the clockwise direction.
  • To scale in the (X,Y) plane each section by a function of Z to change the cross section size.
  • To capture the normal to the surface to set the curve tilt afterwards.
  • To delete all horizontal edges to keep only "ascending" curves.
  • To use the classical Mesh to Curve and Curve to Mesh nodes combo to extrude a profile along the curves.
  • To mirror a copy of the achieved mesh to create the counter-clockwise mesh.

GeometryNodes modifier

Overview: GN Left GN Right

The (Factor,Z) grid (blue nodes): Grid generator

The grid "wrapped" around the pillar cross section (green nodes): Sample Curve node The Float Curve node controls the Factor offset function of Z. The Multiply Add node scales this offset and adds it to the Factor. The Wrap node keeps the Factor between 0 and 1.

The pillar cross section scaling (brown nodes): Scaling The Float Curve node controls how fast the pillar is made larger from the base to the top. The Multiply Add node scales this value and adds 1 to keep this factor larger than 1.

From surface mesh to strings of edges (pink nodes): Delete Only edges with a variation along Z are kept.

Curve tilt correction to align to the captured surface normals (sand nodes): Before tilt correction After tilt correction For details, see the link in Resources section.

Duplication and mirroring: Mirror


  • $\begingroup$ That works great! Do you know is there a simple way to make them connect at the top when arraying them in a grid manner like that i.sstatic.net/0kl5GvsC.png $\endgroup$ Commented Jul 5 at 9:39
  • $\begingroup$ Do you know is there a simple way to make them connect at the top when arraying them in a grid manner? $\endgroup$ Commented Jul 5 at 9:40
  • $\begingroup$ @SamirMamedov Do you mean that the top section is a square, instead of the shape defined with the BezierCurve ? $\endgroup$ Commented Jul 5 at 16:16

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .