[Addon] Engraver

Engraver is a simple addon with set of few tools designed to help carving decals in 3d models. This addon was designed to support modeling with custom normals workflow. I tested many addons which provide much better functionaltiy than my humble Engraver, like Hard Ops, Decal Machine, Carver, etc… but sadly none of them respects custom normals. My work, especially modeling automotive (where perfect shading is a must), for realtime solutions or game asstets, almost always requiers from me to utilize custom normals in order to get both optimized topology and best possible quality. Some of you, who are familiar with tools like Y.A.V.N.E. or Data Transfer modifier for transfering normals, knows that altering geometry using boolean-like tools, almost always results in breaking normal data and destroying the shading of your meshes. For this and for saving time of modeling I decided to develop Engraver.

Engraver works with Blender 2.7* and Blender 2.8.

How to use it:

Simply select your decal geometry, then select your surface geometry on which you want to place it, use ALT+Q shortcut and chose from available tools:

Tools description :

Engrave - Merges predefined geometry of your decal onto selected surface geometry.


Engrave flat (Experimental) - This tool is still under development. It allows to define simple convex or concave decal from flat geometry. Works similar way as Engrave tool but instead of predefined decal geometry you can use flat geometry. After running the tool you can modify it’s bevel by moving mouse and accept it by clicking LMB. After applying bevel width you’re able to define depth of decal the same way as with bevel: mouse movement+LMP for apply.

Cut - Cut a crevice according to border edges of your flat decal geomtery. width ob bevel can be adjsuted by changing depth value under the Settings submenu.


Booleans - Simple boolean tools which maintains custom normal information of your meshes.


Mirror - Mirror model with custom normals.

Here’s comparision of mirroring model with custom normals using standard mirror method and Engraver mirror.



Nice ! I think I could give it a try for this week challenge. Thank you for making this addon and thanks all the more for making it free. Now, here’s a strange issue : I downloaded the 2.8 version, but Blender still asked for this addon upgrade to 2.8.

It should be fixed now. Try to download it again.

Wow, thanks for this, can’t wait to try it out.

I’m sorry, but I think I’m missing something. The video is very fast and loses details.
When I apply Engrave it does not work and this error appears:

When I apply boolean the appearance of the object gets distorted

Hey uruburei, thanks for testing. This addon is quite sensitive and may not work as expected in every case.
First thing about your error is that decal mesh should be opened from one of the side since script is searching for non-manifold edges to be connected with the surface of second mesh. If you want it to be concave it should look like this.

Another thing is that since the addon is designed for custom normals, all of it’s operators considers using auto-smooth and if it is disabled it enables it by default. Because of that the results will not be correct if you are using simple box mesh with solid shading instead of smooth shading with defined sharp edges.


Apart from all abovea there was a bug related to your example which should be already fixed in version 027.

Boolean operations in Engraver are also designed for custom normals. So in cases where you are not using smooth shading at all i recommend to use built-in boolean tools :slight_smile:

Thank you for reply. Nice work.

Hello! Very ambitious addon. Thank you!
However I challenge with some troubles with Cut - there is errors. Could you make some quick video tutorial for 2.8 with amazing features of this addon in work? And are you still maintain this addon?


Interesting proposal, Blender’s Achilles’ heel is to make Engrave of texts and other things, especially if it were valid for Hard Surface topology. Good initiative.

The interesting approach. Thanks


Blender version: 2.82a
Addon version: 0.28.0

If you try to deactivate the addon, this error appears:

Exception in module unregister(): 'C:\\Users\\Sebastien\\AppData\\Roaming\\Blender Foundation\\Blender\\2.82\\scripts\\addons\\Engraver_(2_8)_v028.py'
Traceback (most recent call last):
  File "E:\blender\blender_official\2.82\scripts\modules\addon_utils.py", line 434, in disable
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\Engraver_(2_8)_v028.py", line 1084, in unregister
NameError: name 'km' is not defined

Then, if you try to reactivate it, this error appears:

Traceback (most recent call last):
  File "E:\blender\blender_official\2.82\scripts\modules\addon_utils.py", line 382, in enable
  File "C:\Users\Sebastien\AppData\Roaming\Blender Foundation\Blender\2.82\scripts\addons\Engraver_(2_8)_v028.py", line 1040, in register
ValueError: register_class(...): already registered as a subclass 'jwcutoperator'



In Object mode, without any object selected.
If you bring the menu up (with Alt+Q), and if you click on Engrave, this error appears:

RuntimeError: class JW_OT_insert, function invoke: incompatible return value , , Function.result expected a set, not a NoneType

location: :-1