I have created a 3d curve from a group of points. I have done this by reading point coordinates from a CSV file and created the curve within Blender using Python. The curve is available here.

I am wanting to use this curve as the target curve in the Array modifier. I am currently testing with Suzanne. But you can try almost any mesh (eg a cube).

The issue is the array result is not what I am expecting as each mesh is rotated weirdly(!) along the curve.

Everything is fine when I build up a curve in Blender. But for some reason, it's not working as expected when the curve is imported or created with python.

The following image shows Suzanne's orientation at the beginning of the curve. It is almost facing up after the first round in the helix.

enter image description here

and here is the end of the curve where Suzanne is almost upside down: enter image description here

I have tried to tweak the Array modifier properties but that obviously is not the right solution.

I am looking for a way to have Suzanne's front normal aligned with the curve tangent vector all along the way. Pretty similar to how a vehicle sits on a road or a trolly on a roller coaster rail, always following while facing the same direction as the curve's front normal.


Go to your curve settings and change the Twist Method from Minimal to Z-Up.

To get the look in the image (one facing the back of the next) I had to rotate the Suzanne head (in edit mode) 90 degrees on the Z axis. I also added a subdivision surface modifier, simply because the smoothed models seemed easier to see in the screenshot.


  • 1
    $\begingroup$ where are they all headed? $\endgroup$ – Allen Simpson Mar 31 at 5:11
  • $\begingroup$ to see the new king kong movie :) $\endgroup$ – Jachym Michal Mar 31 at 8:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.