I have made a spiral using geometry nodes, starting from a cube, but as you can see in the image below, its profile is too flat. I'd like it to be more spherical (see red lines). It seems to be a simple task at first glance, but I don't know geo nodes well enough.

enter image description here

This is the node setup I'm using : enter image description here

I've tried to act on the scale of the last Transform node, without success.


3 Answers 3


  1. Starting with a spiral. The start/end radius isn't all that useful, i just set them both to the same value. Increase the rotation count a bit so we can see what's going on. And move the spiral down 1 unit so its center is at zero (that makes the following math easier) straight spiral
  2. Now i want to offset the curve points such that they form the sphere. Good old Pythagoras helps us here: We keep the Z component the same (so as to not distort the spiral's pitch). The distance to the Z axis must then be sqrt(x^2 + y^2) = sqrt(1 - z^2). Because the original spiral has a radius of 1 we can just multiply x and y by that factor, and voilà. sphere spiral
  • $\begingroup$ Very clear and works perfectly, thanks! $\endgroup$
    – Karl
    Commented Jun 4, 2022 at 17:32

I you want to have an exact sphere, you should go for the solution of lukas_t. But if you just want to have it a bit more spherical and want to play around with the shape, you may take a look at this approach.



node setup

Just as lukas_t, this solution starts with a spiral, that has start and end radius set to the same value.

Next we add an offset to the point positions. To calculate this offset, we map the z-position to a value between 0 and $\pi$. This allows us to use the sine function to get a factor, that we apply on the x- and y-position. Finally we use another factor to define the maximum radius of the spiral.


I have another solution that allows you to easily make any shape you like by mapping the XY scale to a float curve.

Spherical: spherical spiral curve

Custom shape: shaped spiral curve

Geometry nodes: geometry nodes

Start by setting the Start and End radius to the same value so we have a straight spiral. We then remap our Z position based on the height value. This gives us a 0 to 1 range that goes from the bottom to the top of the spiral. Next we plug that result into a float curve and multiply our X and Y positions by the result. Then combine that with our original Z value.

Now the float curve controls the width of the spiral over its height and you can reshape it however you like.


You must log in to answer this question.

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