Information for developers

Want to customize your NUKEHIERO or MODO? See below for information to help developers do just that.


 

NUKE

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.

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


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 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:


 

HIERO

HIERO Python scripting engine

HIERO's Python scripting engine allows developers to manipulate the underlying data in a HIERO project and to manipulate HIERO's user interface. It allows rapid development of everything from custom exporters to custom user interface panels within HIERO to communicate with 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.

For more information see the following resources:


 

MODO

Every license of MODO includes the MODO Plug-In Software Developers Kit (SDK). The MODO 701 Plug-in Software Developer Kit provides an application programming interface (API) and numerous source code samples that enable developers to read and write MODO 701 scene, image, and movie files, introduce new commands and items into MODO, as well as plug-in scripting support (with an example Lua interpreter). The MODO SDK is based on COM, with C++ wrappers for many of the published APIs, and is available for both Mac OS X and Windows 32-bit and 64-bit versions of MODO 701.


MODO plug-in Software Developer Kit

The MODO Plug-in Software Developer Kit provides an application programming interface (API) and numerous source code samples that enable developers to read and write MODO scene, image, and movie files, introduce new commands and items into MODO, as well as plug-in scripting support (with an example Lua interpreter).

The MODO SDK is based on COM, with C++ wrappers for many of the published APIs, and is available for Mac OS X, Windows 64-bit and Linux versions of MODO.

What you can do with the MODO SDK

  • Export data from MODO into the rest of your pipeline or tool suite (e.g. game engine). Control how MODO data looks to your application, for seamless downstream use in your asset pipeline
  • Dump the contents of an LXO file into human-readable form
  • Import data from another application into MODO. Read a proprietary in-house format or tackle an industry standard format
  • Copy the contents of one LXO to another, applying custom operations as needed
  • Introduce new procedural textures into MODO like pudding or boiling mud
  • Add new Commands to MODO that execute native C++-based actions
  • Introduce new types of geometry into MODO like nuts and bolts and screws
  • Create new tools for MODO users that provide new ways to create and edit geometry
  • Add new Replicator point generators to MODO. For example, you could create a condensation plug-in that places replicators, as you’d see on a sweating drinking glass
  • Design innovative new ways for users to pick colors in MODO

Scripting language support inside MODO

MODO can be scripted in LUA, Perl or Python. You do not need a special version of MODO for this. To invoke a script stored on disk, hit F6 inside of MODO.

You can evaluate the processing of scripts you have loaded via the Event Log in MODO (accessed from the Systems > Advanced > Event log) off of the main menu bar.


Editing the MODO User Interface using “Forms”

The MODO user interface is composed of “forms”. If you hit F3 inside of MODO, you can see or modify existing a wide variety of forms. These forms can be resized or torn off inside MODO to further optimize the user interface. We have built useful combinations of forms that we provide as “layouts” to MODO users. New layouts (be they rich or sparse) can be easily created and saved by both users and developers of MODO.


Toolpipe (custom tool creation)

MODO’s Toolpipe lets you create an infinite number of specialized modeling and selection tool variants that you can assign to hotkeys or other parts of the user interface. With the Toolpipe, you are able to combine MODO’s robust set of powerful modeling tools with falloffs and action centers in new combinations to customize the way a given tool feels, looks and affects geometry. You can either use MODO’s tools as supplied, or leverage the Toolpipe to create a tailored set of tools that work exactly the way you want them to.


Nexus

We have developed a software architecture called Nexus®. Nexus is a cross-platform, media-aware architecture for rapid deployment of 2D and 3D authoring and visualization applications. MODO is itself built from Nexus, and we are actively involved in licensing this technology to companies. Dassault Systèmes SOLIDWORKS Corp. and Bentley Systems have licensed Nexus technology to deliver rendering and animation capabilities for their customers.

Nexus architecture

Our MODO development is based upon an internally developed architecture called Nexus® that provides a consistent and malleable foundation to develop products upon. Nexus is a highly layered, cross-platform, generalized, time-aware architecture for rapid development of media applications – both 2D and 3D.

PhotoView 360, built on Nexus

Nexus technology was used to jointly develop PhotoView 360, the new design visualization application from SOLIDWORKS. Designed to deliver new levels of interactivity, the software features physically based lighting, a library of realistic surface appearances and a collection of studio-quality lighting environments. Nexus is the core rendering technology behind PhotoView 360.


 

KATANA

Katana can be customized extensively through use of C++, Python, and Lua APIs. This includes integration with renderers, asset management systems, file formats, and geometry processing libraries, as well as customization and automation of projects, nodes, and the user interface. Geolib3's Op API enables complete control over creation and manipulation of the 3D scene.

For more information see the KATANA Developer Guide.

“Our primary goal in developing PhotoView 360 was to allow our customers to get to a great looking image with minimum effort and expertise. Nexus technology has allowed us to deliver a product to our customers that removes a lot of the mystery in rendering and delivers very rapid results.”
Austin O’ Malley, CTO at Dassault Systèmes SOLIDWORKS Corp.