Johannes Masanz


Nuke Scripts

The following Nuke tools can be purchased here: on Gumroad

Please get in touch for any kind of feedback and requests.

Anamorphic Flare
# 01

I started to develop this flare for Nuke during a scify project at Mackevision. It has become recognised and has been re-used to create certain looks.

The node has exposed controls for tweaking the underlying noise patterns, distortions and to adjust its quality for a faster preview.

I love how it was used here: Kaercher Battery Universe breakdown (at 00:43 and later on)

Also check out this breathtaking reel of a more recent project by Mackevision. At 0:50 it shows subtle but perfect use of the anamorphic flare:

Remove Edge
# 02

This tool demonstrates a cool way to remove edges without affecting the overall texture of an image too much.

The way it works is by blurring the image equaly in x and y and in a second step reapplying structure only containing detail in one of the two axes.

To make this principle work with edges that are not aligned with x or y, the image is being rotated into place before the effect and rotated back the same amount after.

Included in the download are two examples and a group node with a builtin supersampling option for even cleaner results.

IBK Luma Keyer
# 03

The IBK Luma Keyer requires two rough rotos (core and outside matte) and can generate very accurate results. It is an extremely powerful tool for sky replacements - even in high contrast situations. The secret behind its eficiency is that it knows the fg and bg colours. With that it internally generates three alpha channels for R G B respectively for a correct per channel operation when substracting the unwanted plate bg color from the edge before combining it to a final RGBa outbut. This makes the best fg to bg transition possible with the new bg.

Merge under Over
# 04

Sometimes when having to integrate a middle ground element into a plate with fg and bg objects it can get a bit messy. So here is my favourite method on how to do this. As always file paths are relative in this demo file for easy use.

Autolife on Roto Shape
# 05

The original script was created by Dylan Palmbloom. (

What it does:

Lets you automatically set the lifetime for roto shapes to their first and last keyframes.

What I further improved:

Instead of having to lock shapes and then running the script for all locked shapes: Now a shortcut runs the script for all selected shapes, no matter what their attributes are.

How to use it:

With a roto node selected: Press Alt + L

Just copy / integrate the .py files to your .nuke folder.

Edge Extend
# 06

Extend IBKc

The extend_ibkC tool is based on the same principle but more adaped / reduced to work well with the output of a single ibkColor node. It has added inputs to 'add' or 'stencil' parts of the 'original' plate as well as a constant background colour.

Edge Stretch

The edge stretch tool - as the name suggest - warps / pushes pixels instead of blurring them outward. This one is more simple with only two controls: width and scale.

As a final note it should be said that all of these (edge extending or stretching) are destructive (edge detail can get lost) and should only be used for keying as a last resort or in other more special cases. Always try fixing edges with a good despill fisrt.

Despill to Color
# 07

You can find this tool and more documentation on Nukepedia:

Go To Frame
# 08

What it does: Jumps to a defined frame in the timeline.

How it works: Select one of the following node types and press shift+f:

- any node with a frame number in its label

- stickyNote with a frame number

- frameHold

- tracker (jumps to reference frame)

- retime Tracker (see retimeTracker) Jumps to source frame before retime.

One little extra: The frame number in the framehold and the default text in the stickyNote label now default to the frames they are created on.

If you would like to be even faster, you can use the shortcut Alt+N to create a SticlyNote. I often use that to remember certain frames and to be able to jump back and forth using the shortcut :)

STmap with overscan
# 09

As basic as it is, not all studios have it and sometimes it even happens to me that I don't remember the expression exactly, so I put this up here for later reference.

In my download i combined the top three nodes to a group with a format option and an overscan knob.

Change Values
# 10

This lets you define a knob and a value that gets applied to this knob for all nodes that can be filtered by selection, node class and their label. It also offers a handy way to assign labels and to select nodes by the same filters.

Auto Crop
# 11

What it does:

- Adds the foundry's AutoCrop script to the menu bar.

- Offsets existing values and animations to grow or shrink the crop box.

grow: alt+=

shrink: alt+-

I like to have the Autocrop command more accessible. Growing the box is useful if you want to do just minor tweaks on an element that was alredy autocropped and make sure that it still fits the boundaries without having to redo the Autocrop. In other words, this just lets you add some padding to have a safety area.

Just copy the .py files to your .nuke folder or attach their contetnt to your already existing ones.

Dir Blur
# 12

I am not up to date if the foundry changed the directional blur node in their latest version but I have always been unhappy about a missing function to blur both ways from a center point. (like the 'center' option for motionblur in a transform node)

This one only offers a linear blur but bahaves more like expected.

Card to Bbox
# 13

This python script resizes a card in 3d space to fit the bounding box of its input, without moving the existing texture in space.

This can be useful in two scenarios:

1. When a card is unnecessary big; scaling down to just fit the bbox.

2. When you realise that a card is too small and needs to be extended without changing the existing texture in space. This is similar to a show overscan function but now available for a card.

If the boundingbox is animated, the maximum bbox values for each direction will be used.

Ik Rig
# 14

Here is a script in which I created a simple rig with an IK handle.

Paste to Nodes
# 15

What it does: Paste one or multiple nodes to all selected nodes.

How it works: ctrl+shift+v

Copy the .py files to your .nuke folder or add its content to your already existing py. files.

Shuffle Layers
# 16

This node creates a shuffle node for every channel that runs through it.

There are options to control the layout (vertical or horizontal) and the spacing of the nodes.

Additionally you can use keywords to put layers in front or at the end of the chain.

Rolling Shutter
# 17

This lets you remove or add rolling shutter based on a motionvector.

Because it is hard to generate a detailed motion vector or information about how the camera is moving in between frames, this basic technique works better for fast and fluid movement rather than for shaky footage with little and high frequent motion.

In this example file paths are set relative for easy use.

World Position to Depth Mask
# 18

This is an experimental sample script on how to use a worldposition pass and a camera to create depth passes and mask out rendered elements. It also shows a solution for rendering depth with smooth gradients in semi transparent areas.

In this example I rendered a ground with displacement in Modo and positioned a tree in Nuke's 3d space. The tree is correctly masked out where the surfaces meet.

What it does is calculating the distance from both worldpositions to camera and generating a matte based on which one is closer to camera. All you need to make this work are two images with a pointposition pass and a camera. (example files are included.) I used wordpositions instead of depth values because these are more consistent across software packages.

There are controls for fading out the mask where two surfaces meet and contact shadows.

I spent some more time to get this to work with multiple 3d objects and transparent depth gradients between them for the haze layer:

Roughen Edges
# 19

SplineWarp Saver
# 20

There is a known bug in the splineWarp node, that causes the 'root_warp' knob to lose its values and animations everytime you close Nuke.

As a workaround I created a node that saves all values and animations and (if you choose to) reapplies them everytime you open the nuke script.

When 'setOnScriptSaveAndLoad' is clicked, the project properties 'onScriptLoad' and 'onScriptSave' (located in the python tab) get changed so that the 'apply' and 'save' buttons are executed automatically whenever you save and load the script. Be carefull though in case these project settings are already beeing used by other pipeline tools!