PaintFromRef turns any image into a standalone, fully editable RotoPaint node using thousands of painterly brush strokes.
PaintFromRef
First submitted: 1 September 2026
Author: Marty Blumen
Website: https://www.martyblumen.com/
Compatible Nuke versions: 14.0 or later
Compatibility: Source
PaintFromRef turns a reference image into a fully editable RotoPaint node made from real brush strokes.

Point it at a plate, still, matte painting or reference image, hit Create RotoPaint, and a new standalone painting is generated in seconds.
Large strokes establish the overall image, smaller strokes add detail, and the strokes follow the contours of the image rather than simply sitting on top of it.
Why it's different
This isn't a filter or texture effect. The result is a genuine RotoPaint node containing thousands of individual strokes.
You can open the curves and:
Edit, move or delete individual strokes
Paint additional strokes manually
Change brush size, hardness and opacity
Generate anything from a loose sketch to a detailed reproduction
The generated RotoPaint is also completely standalone. The image format and all paint data are embedded in the node, so the original Read and PaintFromRef can be removed and the .nk will still render.
How it works
PaintFromRef is a native C++ implementation based on Aaron Hertzmann's SIGGRAPH 1998 paper, Painterly Rendering with Curved Brush Strokes of Multiple Sizes.
The renderer:
Builds the painting progressively from large to small brush sizes.
Finds areas where the current painting differs most from the reference.
Places strokes along image contours using the local luminance gradient.
Simulates the canvas as strokes are added, so subsequent strokes respond to what has already been painted.
Limits the final stroke count to keep the resulting RotoPaint practical.
The analysis is performed in native code, while strokes are written into Nuke using a single serialized-curves operation rather than the per-stroke Python API.
20,000 strokes can be generated and inserted in around 4 seconds.
Generation is deterministic, so the same image and settings produce the same result.
Features
Draft / Normal / Fine / Ultra quality presets
Manual control over brush size, threshold, density, length, curvature, opacity and hardness
Standalone RotoPaint output with no input dependency
Non-buildup opacity
Cropped data windows supported
Deterministic generation with configurable seed
Headless/farm support via the hidden
run_triggerknobNative C++ processing for fast generation
Automatic Nuke-version binary selection
Install
Copy the PaintFromRef folder to:
%USERPROFILE%\.nuke\
Add to init.py:
nuke.pluginAddPath('./PaintFromRef')
Restart Nuke. PaintFromRef will appear under the Draw menu.
Supported versions: Nuke 14.1, 15.2, 16.0, 16.1, 17.0 and 17.1
Notes
Colours are authored in linear space from the source image.
Windows x64 binaries are included.
Linux is compile-ready but has not yet been load-tested in Nuke.
MIT licensed.
No third-party libraries are bundled.
Based on a reimplementation of Hertzmann's published algorithm.
Opensource
MIT License
Copyright (c) 2026 The PaintFromRef Authors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Comments