In edit mode with these settings:

  • Face selection
  • Pivot point: individual origins
  • Transformation orientation: Normal

The faces don't rotate around the normals, is there another required setting that I overlooked?

enter image description here


You need to press a key to specify the axis. (i.e. X, Y or Z)

Setting the Transform orientation aligns the XYZ coordinates to something, e.g.:

  • Global aligns the axes to the world

  • Local aligns the axes to the selected object(s) rotation

  • Normal aligns the axes to the selected element(s) normal


Note that pressing the axis key once always snaps to the Global orientation, regardless of the setting in 3D view > Header. To use the orientation specified in 3D view > Header, press the axis key twice. (e.g. GZZ)

With your settings, (Individual origins, Normal, Face) to rotate each face around its normal we should rotate around the Z, see the wiki:

The z-axis of the manipulator will match the normal vector of the selected [element]

So by pressing RZZ:

enter image description here


Yes you can do this, all accessible from interface but included keys

  1. Enter Editmode (Tab)
  2. Change to face-editing (3)
  3. Select all (A)
  4. Mesh -> Edges -> Edge Split (CtrlE, D)
  5. Change orientation to normal (,, 2)
  6. Change pivot to individual origins (.,2)
  7. Rotate about the Z axis `(R, ZZ) ... move mouse:

enter image description here

  • $\begingroup$ how would I do this in python? $\endgroup$ – BluePrintRandom Oct 25 '20 at 19:20
  • $\begingroup$ That should be a separate question. $\endgroup$ – ideasman42 Oct 26 '20 at 2:33
  • $\begingroup$ I have the answer :D $\endgroup$ – BluePrintRandom Oct 26 '20 at 21:29
#python to rotate all faces 

#rotate all faces on mesh by 1 degree
import bpy, bmesh,math
from mathutils import Matrix
bm = bmesh.new()
for face in bm.faces:
    axis = face.normal
    rot = Matrix.Rotation(math.radians(1) , 4, axis)
    cen = face.calc_center_bounds()
    mat = bpy.data.objects['Cube'].matrix_basis
    bmesh.ops.rotate(bm, cent=cen, matrix=rot, verts=face.verts,space = mat)

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.