How to make a twist donut using curve tilt node?

twisted donut from curve tilt node.blend (3.3 MB)
I try to make a twisted donut using a curve tilt node in Geometry Nodes(picture 1 is my goal).

I remap the ID of the control point so to get the twist angle for each control point of the curve circle.
Then I add these angles to each control point.
I checked the spreadsheet and confirmed each control point gets twisted to the desired angles, but the result is not as wished.
I am confused here, I am not sure why this is not working.
Need community help.


When you plug values into Angle sockets I will use radians instead of angles, so in your case you rotating 360 radians

Thank you for answering my question!
If I connect the viewer just after the Set Curve Tilt node, the spreadsheet will show every control point is tilted to the right angle. I am not sure if this socket expects a radian or degree value, but seems like things are not wrong here.


Geo nodes always use radians internally, the angle input when it’s not plugged is just UI element that converts angles to radians

Use 2pi (you can type “tau” in to max socket) to do 360 degrees


Thank you very much, this is working!

May I ask one more question?
In the Map Range node, the From Max is set same as the resolution of the curve cycle.
But if we see the spreadsheet, the ID of the control points ends at 15, because the first one starts from 0.
Shouldn’t we match the exact bound of the data range(ID numbers, from 0 to 15) when we remap this ID data into the new angle data?
It is confusing me a lot.
Why the wrong range(bound of data) can produce the very right result here?


Oh, I get it!
If I map it from 0 to 15, the exact range of the ID, the last CP will tilt 360 degrees, but if I do it from 0 to 16, the last one will tilt less than 360, so it can match the first CP with a tilted angle.
Thanks!@ higgsas

1 Like

Same difference:
Good luck


Thank you very much!
This is also a good solution!