Volume Preserving Smoothing ($)

Wow, I didn’t know the difference is that drastic ! Thank you.

The creator of LapRelax here. LapRelax is old and in the days was a quickndirty solution to smoothing when not much was available. This new addon is SO much better, and worthwhile investing in. I just bought it myself. Cant recommend it enough.


Yes I removed the addon in the Blender addon tab before installing the new version. After I try to install the new version, my Blender File View doesn’ t work until I manually delete the python files from where they are installed.

Nice tool, an easy way for fixing stuff to make smoother 3d prints.
Wondering why not sell it through blender market, it was a bit hard to find.

is it possible to add a grab/move brush function to the smooth brush? such as hold shift to smooth. release shift to move verts around. it could be a very nice companion tool for retopology.

You can just use move tool ‘G’ key + soft selection, to move the verts, then using LMB smooth mesh using VPSmoothing.

With DrawXray (version with snapping) you got all the retopo tools you need.


thank you for pointing that out, I totally forget the soft selection.
is there a way to exclude some edge while using the smooth brush? such as the hard edge weight option in standard smooth.

In the tool settings, you can limit smoothing to only selected vertices:


With this kind of mesh (9,680 faces (for the character’s body)), is this normal that VPS 2.4 doesn’t align / smooth edges ?
It does (to some extent) but at some point, it stops smoothing.

Blender version: 2.82a
Addon version: 2.4

This kind of circular looping topology is not optimal for smoothing. However, if you want to increase strength - just press shift+R to repeat last action.

1 Like


Could there be an option to keep the circle displayed while the Volume Smooth brush is being used?

Maybe in future updates. The ‘new’ python tools api is not well documented

1 Like


Blender version: 2.82a
Addon version: 2.4

  1. :white_check_mark: I created a character thanks to the MB-Lab 1.7.7b addon.
  2. :white_check_mark: The mesh was too high poly for my needs so I decimated the mesh with value = 0.15.
  3. :white_check_mark: I smoothed the character with VPS.
  4. :white_check_mark: Then, I used the Tris to Quad feature from the Edit Mesh Tools addon.
  5. :warning: Finally, I retried to use VPS on the mesh and this error appeared:
Traceback (most recent call last):
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\vps_smoothing\smooth_tool.py", line 276, in invoke
    ret = self.numpy_smooth_init(context, method=vps_settings.method, from_brush = True) #sets self.bm and self.p_co
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\vps_smoothing\volume_preserve_smoothing.py", line 182, in numpy_smooth_init
    v1_id = orig_to_new_idx[edge.verts[0].index]
KeyError: -1

location: <unknown location>:-1

Then I retried all the steps above but when I tried to reproduce the error, I got this other error message just after trying to smooth edges on a new character:

Traceback (most recent call last):
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\vps_smoothing\smooth_tool.py", line 207, in modal
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\vps_smoothing\smooth_tool.py", line 176, in smooth_write
    if self.vsmooth_mask[v.index] >= self.vsmooth_mask[mirror_vert_idx]: 
IndexError: list index out of range

location: <unknown location>:-1

Without doing anything special, I also noticed this error in the System Console:

Traceback (most recent call last):
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\vps_smoothing\smooth_tool.py", line 113, in draw_circle_px
    if self.draw_cursor_co:
  File "E:\blender\blender_official\2.82\scripts\modules\bpy_types.py", line 708, in __getattribute__
    properties = StructRNA.path_resolve(self, "properties")
ReferenceError: StructRNA of type VPS_OT_DrawSmooth has been removed

But maybe it’s related to a glitch in the viewport that (randomly) I got ?
I couldn’t get rid of this circle in the viewport:

To get rid of it, I had to disable and re-activate the addon.

Sometimes bmesh glitches out in blender, and that may cause addon malfunction. Did you try hitting tab twice, to exit then enter editmode? If it wont work, can u send the blend file?

test01.blend (376.2 KB)

  1. Go to edit mode
  2. Select one vertex
  3. Start using VPS on the body
  4. it should display the first error that I reported above (in the “Summary” block): errors at line 182 an 276

And after that this error appears, if you load a default scene, you should see the circle at the middle of the viewport (reported above in my GIF).

Sorry, I cant reproduce the error on my end. I added and applied decimate then VPS smooths everything ok. After tris to quad also no problem. I have no idea what may be wrong.

tried the blend scene.
if I select any vert in mesh edit mode, after I rotate the viewport I would get error. after click it away, smooth brush works, but if rotate again, it would show the error again.

if none is selected, no errors.
meanwhile the circle stays in the origin, only restart blender it would disappear.

using blender 2.82.7 zip version and VPS 2.4

1 Like

Ok, I got it now and I reported it to blender devs:
For not just do not use VPS directly after using ‘Focus selected’ (numpad .) - I think this is the main cause

Is there any way of implementing this as an alternative smoothing algorithm in the Sculpt Mode smooth brush?

1 Like