Scripts on wood

Script to generate texture via temperature gradients to get horizontal stripes that “look like wood”.

The owl is Cushwa’s popular design.

It was printed here with LAYWOO-D3 wood filament
It works also somehow with some other filament (just tweak the temperature), with a less drastic effect.

This is a piece of source code of mine, originally made for Skeinforge within Cura 12.08, now part of the official releases, and is now also an independent standalone Python script.


Move the .py python file to the plugin folder in Cura.

Ultimaker website does not seem to tell which one, but look with your file manager for a folder named “plugins”, or better, for a plugin which is shipped by default (e.g. Then simply copy/paste this file alongside, and restart Cura.

After multiple requests and at last, I finally converted it to a standalone Python script that no more needs Cura nor Skeinforge. I documented the process here by the way:

You’ll need Python on your computer. Then run the script as follows:

python –min minTemp –max maxTemp –grain grainSize –file gcodeFile

or in brief mode:

python -i minTemp -a maxTemp -g grainSize -f gcodeFile

This will “patch” your gcode file in place (it will be modified), so keep a backup if you need one.

minTemp is the minimum temperature to use (the code ensures that it is reached)
maxTemp is the maximum temperature to use (the code ensures that it is reached)
grainSize lets you tweak the “average thickness” of the layers
The gcodeFile is the only compulsory parameter.
Initial temperature settings will be overridden by the varying pattern that is generated by this script (a variant of recursive Perlin noise). You can run it multiple times to test different values and generated temperature curve until you like it.

Default values are minTemp=190, maxTemp=240 and grainSize=3. Higher temperature give darker bands (due to the wood being burnt). Do not let the wood stay too long in your nozzle else you will most probably clog it with carbon!