[Addon] Mirror Mesh

What does it do:

Mirrors a mesh along the normals of a defined mirror mesh, creating a copy inverted on the other side of the mirror mesh.

How to use:

  • Download from git: Blender-Mirror-Mesh (click “download as zip” button)

  • Create a “mirror mesh” that will be used as a mirror

  • Select all other mesh objects that you want mirror and set the “mirror mesh” to be the active object.

  • Use function “Mirror Mesh”

Intended use:



(Original on the right and mirror result on the left)

The final result where the mesh was mirrored on a bent plane mesh. The mesh that is mirrored has a subdivision modifier on it which is preserved on the mirror mesh (script will ignore any modifiers and add them back to the mirrored result).

“Mirror Mesh” used to achieve result:


The mirror mesh is created with a simple mesh and then a subdivision surface modifier is added to create a smoothed surface (do not apply subsurf modifier it will be done through the script)

Execution results and result of different subdivision count:


  • Notes: The subdivision count is on the mirror mesh. Verts are vertice count on the mesh that is mirrored. Mirror Faces are the total face count of the mirror mesh (after subdivision).

The mirror mesh needs to be smoothed to get an even distribution on the result. To large distances will result as in the first case where the vertices will be curved inward over the face.

Convex mirror showing how the vertices are mirrored:


The vertices will be moved along the normals (blue lines) of the mirror mesh. The result is the compressed mesh on the right.

Concave mirror:


Result of a concave mirror mesh.

Setting: Smoothed


Result where smooth is disabled. The mesh will only be mirrored along the normal of the mirror face it intersect, creating a “edge” in the result.

Setting: Closest intersection



-Note: Very expensive: should not be used unless small mesh or specific result required.

Forces the closest intersecting face to be used as mirror. Warning: the distance is measured to the plane of the face not the “distance to the face” so might not always give “the closest intersection”. However if you want to use a mirror mesh with disconnected parts this setting must be used. Very expensive as it checks every vertex with every mirror face, 531 seconds compared to 3 seconds (third image)

Setting: Intersect verts only


Ignores any vertice that is not inside a mirror face, to intersect it must be between the normals of the mirror plane. The ignored vertices is not removed.

Setting: No backface intersection


The if the verts is behind a mirror face they will not be recognised as intersecting it.

Not intended use of the function:


Creating a mirror mesh where the normals of the mirror faces start intersecting each other (red area) it will not give a good result.

A mesh inside the green area would be mirrored properly.