6
$\begingroup$

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.

$\endgroup$

3 Answers 3

11
$\begingroup$

  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
$\endgroup$
1
  • $\begingroup$ Very clear and works perfectly, thanks! $\endgroup$
    – Karl
    Jun 4, 2022 at 17:32
7
$\begingroup$

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.

result

result2

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.

$\endgroup$
2
$\begingroup$

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.

$\endgroup$

You must log in to answer this question.

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