Bmesh: how can I import custom vertex normals I have a question concerning BMesh and custom vertex normals editing. At the moment I am writing a little blender importer for a custom data format and I am stuck with importing/manipulating custom vertex normals. I am using the bmesh module because I want to use it's functionalities before transforming the bmesh into a real mesh.

Can anyone tell me if it is possible to set the normals with bmesh? Do I need to import them with the Mesh module?

Thanks a lot in advance for any tipp!
I believe since Blender 2.74, this was made possible for the bpy Mesh type. You can use the mesh normals_split_custom_set method to do this.

In this example, I only have per-vertex normals so I create a new list with one normal corresponding to each loop.

normals2 = []
for l in mesh.loops:
    normals2.append(normals[l.vertex_index])
mesh.normals_split_custom_set(normals2)
mesh.use_auto_smooth = True


Note that auto smooth needs to be enabled for this to work.

In my case, I could have used the normals_split_custom_set_from_vertices method, and passed in normals directly.