Offset based on Vertex Colors For you a tricky question : do you know a way to apply negative and positive offsets on different surfaces based on its colors in Blender ?

For this key, the green represents the surfaces without offset. The blue represents the down-facing surfaces where I expect a lack of material, so I would like to do a positive offset on the geometry. Finally, the red represents the up-facing surfaces where I expect a surplus of material, so I would like to do a negative offset on the geometry.

The goal is to 3D print this key and prevent the surplus or lack of material during the print.

Tell me if you have any ideas,

Thank you,

Clement
Unfortunately blender doesn't provide many options for doing much with vertex colours.

If you can convert the colours to greyscale texture, with values in a range of 0 to 1 (with your current green value as 0.5) instead, you can use this to control a displace modifier on the mesh. Set the midpoint to 0.5 and the strength to the difference between the maximum increase and maximum decrease that you want. This will require UV unwrapping your mesh. The conversion to texture could be achieved by creating the right shader and baking surface colour.

Alternatively, you could create 2 vertex groups for the positive and negative displacement and use these to control two displacement modifiers without textures, one using a positive strength, the other a negative. No UV unwrap is required here. A script would be required to convert the vertex colours to groups.