Information for NUKE developers

NUKE Python scripting engine

NUKE's Python scripting engine concentrates mainly on interface and higher level node manipulation. It allows rapid development of everything from snippets to quickly alter the contents of multiple nodes' control panels, right up to integrating with external tools such as asset management software. Users of Python additionally benefit from a vast array of prebuilt modules (a.k.a Python's Batteries Included philosophy), including tools for XML reading, database access and much more.

The import NUKE function allows developers to use NUKE as a module in any Python interpreter. Straight from set up, import NUKE ensures the NUKE Script Editor’s functions and commands are available in any chosen interpreter.

Python is not suitable however for image, 3D and general low level data manipulation, due to lack of fine grained memory allocation control and poor threading.

For more information see the following resources:

NUKE Developer Kit (NDK C++ API)

The NDK is NUKE's low level C++ API. It allows building of everything from image process operators, through Deep ops, to custom Op types. Users of the NDK benefit from a range of convenience functionality, and a API tailored directly to NUKE.

The NDK does not allow external node tree access, so is not suitable for scripting style functionality (although it is able to separately call such). Since the API exports C++ symbols it changes between NUKE major.minor releases and thus often requires recompilation of derived operators.

For more information see the following resources:

NUKE Qt binaries and source files

NUKE 10.5


NUKE FFMPeg binaries and source files

FFMPeg 2.1.4

NUKE OpenEXR binaries and source files

OpenEXR 2.2.0

OpenEXR 2.0.1

The Foundry has submitted a request to add our custom extensions to OpenEXR for NUKE into the main distribution. This can be found at:


The OFX API is an open C standard for visual effects plug-ins. It allows plug-ins written to the standard to work on any application that supports it, with hosts other than NUKE including tools such as Eyeon Fusion, Assimilate Scratch, FilmLight Baselight and more. The interface is designed to prevent symbols exported being changed between versions, and so prevents frequent recompilation being required by new host versions. It also avoids per application fragmentation of plug-in development and support.

OFX does not provide node tree access, so is not suitable for scripting style functionality, nor does it attempt to provide access to areas outside of conventional image processing operator requirements. It is generally suited to commercial image processing operator development.

For more information see the following resources:

Blink API and Blink script

The Blink Script node lets developers write their own image processing operations inside of NUKE using the Blink Framework. To get the best possible performance from your team’s hardware, the Blink Framework ensures code can be written once and then run fully optimized on a variety of devices. The Blink Script node can translate image processing code into standard x86 or SIMD accelerated code to run on the CPU, or OpenCL to run on the GPU.

The Blink API allows C++ plug-in developers to harness the Foundry's Blink technology. Image processing algorithms can now be implemented once and deployed on CPU and GPU devices. The API provides greater flexibility and exposes features of the Blink technology that are not available in the Blink Script Node. This results in the ability to create faster and more complex effects.

The Blink API now ships with NUKE and enables you to use the Blink framework inside an NDK plug-in. For more information, see the following resources: