Nuke's open, flexible architecture gives developers immense freedom to integrate with their pipeline and create custom tools
Nuke 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 integrate external asset management tools. Python users can additionally benefit from a vast range of pre-built modules (a.k.a Python's Batteries Included philosophy), including tools for XML reading, database access and much more.
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.
OpenFX (OFX C API)
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 like as Blackmagic's Davinci Resolve, Assimilate's Scratch, FilmLight's Baselight and more. The interface is designed to prevent exported symbols from being changed between versions, removing the need to frequent recompilation for new host versions. It also avoids per-application fragmentation of plug-in development and support.
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 is 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.
Cat File Creation Reference Guide & Examples
Nuke's .cat File Creation Reference Guide details how developers can convert their PyTorch models to a .cat file that can be used inside Nuke. This will enable users to load third party model natively inside their composites. This guide outlines how to convert a PyTorch model to the TorchScript file format, and how this TorchScript file can be converted to a .cat file using the CatFileCreator node. This .cat file can then be loaded into the Inference node and used to apply the model to an image in Nuke. This guide also includes example PyTorch models and Nuke scripts.
FnUsdAbstractionLib provides a wrapper around Pixar's Universal Scene Description (USD), isolating Nuke from specific USD versions. By providing the source code to this library it is, then, possible to build it against different USD versions so your pipeline can benefit from the latest features or in-house specific customisations. Nuke becomes more flexible to different USD based pipelines.