A symmetry correction Modeler plugin for LightWave 3D that restores lost symmetry in a model by automatically deleting one side of the object and mirroring the other side.

There are still certain modeler tools that break symmetry or doesn't respect the symmetry mode. That's when this plugin comes in handy, quickly correcting those problems.

The idea of this plugin is based on Kevin MacPhail's pmirror.p plugin released a few years back.

I used that plugin all the time, unfortunately it's only available for 32-bit LightWave, when I made the switch to 64-bit, this was a missed gem for me.

So I wrote my own version, which should work on all current LightWave 3D platforms.


SymmXMirror automatically corrects symmetry errors in an object with a brutal technique. Basically the plugin selects the -X side of the mesh, flattens it, deletes it, mirrors the +X side and merges the points, which is a quick way to restore symmetry in an object if it gets broken.

I added an extra method that tries to intelligently find the center through the object if it or some points has moved away from the 0 position. This is pretty common for instance in situations where the object has been brought to ZBrush and back.

The tool is designed to be used in the initial stages of modeling when symmetry is wanted, when you get into the phase of adding vertex maps, UV maps and such this tool shouldn't be used anymore as it might destroy some of those maps if they are unique on each side. For those occasion you might want to give my Fix Symmetry tool a spin.

Demonstration Video


Available downloads for the SymmXMirror tool.

Latest Release

Older Releases

Source Code

SymmXMirror is released as an open source project under the new BSD License. The project is hosted on GitHub where the repository can be browsed or forked.<

Or use git to clone the repository with complete history:

git clone git://


I'm very interested in your contributions... What else deserves to be in this plugin? How can it be improved? Coders, feel free to fork the repository, make any updates and then send me a pull request. Non-coders, submit a request in the issue tracker.


There is no official support for this plugin, but if you run into any problems or bugs, you can file a report in the issue tracker and it will be looked into. You need to have a Google Account to file a new issue.


SymmXMirror has been tested on LightWave 3D 9.5 / 9.6, win32 and win64. As far as I know it should also work fine on the Mac.


The development history of SymmXMirror.

Version 1.1 - 4 Jul 2008

  • Added a Progress Monitor when processing dense high polycount meshes.
  • The script can now be safely aborted while the progress monitor runs by pressing ESC.

Version 1.01 - 28 Jun 2008

  • Minor Update, changed the internal name of SymmXMirror to include the prefix JS_.

Version 1.0 - 17 Feb 2008

  • Initial release of the plugin.

Discuss this article

The conversation has just started. Comments? Thoughts?

I'm on Twitter and Mastodon, or come to the Discord server and hang out.

Sign up to the newsletter to get occasional emails about my game development.

Legacy comments

  • DmitryApr 30, 2010
    Thanks! It’s great and fast working on even very big models.
  • Roger AbramsonAug 16, 2010
    Tried it. Love it. Works as advertised. Thank you! This is a lightning fast "brute force" plugin. It cannot be used while symmetry mode is on. It would save the user a step if it could temporarily swap itself out of symmetry mode while operating and then resume symmetry mode. Despite the extra step this is the fastest way to restore symmetry as long as there are no vertex maps. The plugin does switch to Polygon mode, welds any points which occupy same location, and does not flip or unify polygons.
    • JohanAug 16, 2010 // reply to Roger Abramson

      Thanks for your nice words. About turning off symmetry automatically, it's currently not possible to do that with LightWave's architecture. I did file a request with NewTek when I did the script if they could implement access to the symmetry mode from the SDK/Script environment. If that would be added to a future LightWave version I'll update the script to take advantage of it.