Tool to apply wood textures to 3d prints
A little while ago I came across an interesting post on reddit on how a wood displacement map can enhance the look of 3D prints.
Just a bit before I also played with the fuzzy skin feature in prusa slicer 2.4. That made me wonder whether the wood effect could be achieved directly in the slicer by tweaking the fuzzy skin feature. I had a quick look at the prusa slicer source and it looked like it would be fairly easy to add.
To prototype the idea and gauge whether there is any interest in it I decided that it would be best to create a little web app using three.js.
For the effect to just work I had to avoid uv maps. Instead I’m using a basic volumetric (3d) procedural wood texture derived from sine waves and a bit of noise.
Preliminary results
To test the process I designed and printed a very simple phone stand and a 3D benchy using Polymaker PolyWood filament.
Benchy and phone stand on the prusa mini.
The phone stand lit by the sun.
Known issues
When processing STL files I first tesselate the geometry and then perform the displacement mapping. Luckily there is a simple tesselator built into three.js which I could use. Unfortunately it creates t-juction (when running out of iterations). The displacement mapping can also lead to self intersections.
I also included a process for directly modifying G-code to test how this process could work when integrated into the slicer. When processing g-code I simply look for the perimeter comments inserted by prusa slicer and modify the G1 movement commands. Moves are currently not sub divided.
So the tool is far from perfect but I’m quite happy with the results I got from it so far.
Possible future work
If there is enough interest in texturing features like this I think it would be pretty cool to integrate them directly into the slicer.
Obviously the wood effect isn’t the only pattern that could be achieved with this approach. Playing with different textures could definitely be fun as well.