Nuke Developers

Nuke's open, flexible architecture gives developers immense freedom to integrate with their pipeline and create custom tools. See https://www.foundry.com/products/nuke/developers for the developer guides available for download.

Nuke and Hiero Python Scripting Engine

Nuke's Python scripting engine mainly focuses on interface and higher level node manipulation. It fosters rapid development, giving Nuke developers dynamic control over everything from quickly altering the contents of multiple node control panels to easily integrating external asset management tools. Python users also benefit from a vast range of pre-built modules, including tools for XML reading, database access, and more.

Developer Guides

https://learn.foundry.com/nuke/developers/15.1/pythondevguide/

https://learn.foundry.com/nuke/developers/15.1/HieroPythonDevGuide/

Reference Guide

https://learn.foundry.com/nuke/developers/15.1/pythondevguide/_autosummary/nuke.html

Nuke Developer Kit (NDK C++ API)

The NDK is Nuke's low level C++ API. It lets Nuke developers build everything from image process operators to Deep ops and custom op types. Users of the NDK benefit from a range of convenience functionality, and an API tailored directly for 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 and minor releases. As such, it often requires recompilation of derived operators.

https://learn.foundry.com/nuke/developers/15.1/ndkdevguide/

https://learn.foundry.com/nuke/developers/15.1/ndkreference/

Blink API and BlinkScript

The BlinkScript 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 BlinkScript 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.

For a guide detailing how to use the Blinkscript node, and a full reference of the available functionality see the Guide to Writing Blink Kernels.

The Blink API allows C++ plug-in developers to harness 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 is not available in the BlinkScript node. This results in the ability to create faster and more complex effects.

The Blink API ships with Nuke and enables you to use the Blink framework inside an NDK plug-in. To get started creating custom complex effects see the Blink API Reference.

CatFileCreator Documentation

The CatFileCreator node creates custom .cat files from PyTorch models in the TorchScript format, and these can be loaded and run in the Inference node.

Note:  It is important to note that not all PyTorch models work without modification. In order to correctly construct a TorchScript model from a PyTorch model please follow the guidelines laid out in the PyTorch user guide at https://pytorch.org/docs/stable/jit.html

CatFileCreator allows you to define your model's input and output channels and resolutions, and lets you create knobs to control your model. With the CatFileCreator and the Inference node, third-party models can be integrated into Nuke, converted into Nuke tools with modifiable knobs, and shared across a team. This workflow makes it easier to use machine learning in pipelines, and get even more out of machine learning in Nuke.

https://learn.foundry.com/nuke/developers/15.1/catfilecreationreferenceguide/

USD C++ API Reference

USD-specific API reference documentation for Nuke's new USD-based 3D system.

https://learn.foundry.com/nuke/developers/15.1/FdkBaseLib/index.html

https://learn.foundry.com/nuke/developers/15.1/FnUsdAbstractionLib/index.html

https://learn.foundry.com/nuke/developers/15.1/FnUsdEngineLib/index.html