Keeping array objects straight when duplicated along a 3D twisted curve in Blender 2.8 i have defined a 3d NURBS curve and want many copies of an object to be laid on the the 3D curve, but without any deformation or rotation on the object.

I've tried using a curve + array modifier on the object, but that both rotates and deforms the object.

I've then tried using the above solution and manually adjusting the twist of each of the nodes of the curve, it works when the curve is not too tight, but requires tremendous work and is not a practical solution for the many 300+ control point curves that I am using.

Then I've identified a potential solution (available here) that uses dupliframes, and this works for blender 2.79 but not for 2.80 (beta, as of June/19)

What I am trying to replicate is exemplified on this picture - note that the boxes do not change orientation/rotation when places on the curve (copied from another question on SO)



I am now building python code to make this operation, but I am taping on this community to know if there is a faster/easier way for doing this.
The code I wrote to do what I couldn't do through built-in functions is below:

import bpy

skull = bpy.data.objects["Skull"]
curve = bpy.data.objects["xobject_name"]

try:
    newCol = bpy.data.collections.new('Skulls')
    newCol = bpy.data.collections['Skulls']
    # link the newCol to the scene
    bpy.context.scene.collection.children.link(newCol)
except:
    print ("safely ignore")

skull_copy = []
for index, point in enumerate(curve.data.splines[0].points):
    if (index % 2 == 0):
        print (index, point.co)
        skull_copy.append(skull.copy())
        skull_copy[-1].data = skull.data.copy()
        #bpy.context.scene.collection.objects.link(skull_copy[-1])
        newCol.objects.link(skull_copy[-1])
        skull_copy[-1].location[0] = point.co[0] + skull.location[0]
        skull_copy[-1].location[1] = point.co[1] + skull.location[1]
        skull_copy[-1].location[2] = point.co[2] + skull.location[2]