Programming plugins for DaVinci Resolve with the Fusion Fuse SDK
[12:05 Tue,18.July 2023 by Rudi Schmidts]
Even though the range of functions of many editing, grading and compositing systems has grown extremely - there are always special cases and ideas that make an extension of the system useful. Often these are repetitive tasks that can be realized by relatively simple scripts.
Sometimes, however, the problem is larger and the solution requires correspondingly more "programming logic". In these cases the hour of the so-called Plugins strikes. These are additional programs that can be integrated into the main application to extend its functionality. Usually one gets additional plug-ins for the personal use case, however, there is of course also the possibility to program a plug-in for oneself - or of course for other users.
Unfortunately, there is a proliferation of plug-in interfaces in the field of video editing programs - and a cross-system standard has not yet become established. Thus, a plugin for After Effects must be programmed completely differently than for Resolve, for example. And even within Resolve, there are several plug-in interfaces, but again, not all of them are equally well documented. OpenFX, for example, is considered rather inaccessible, especially for beginners.
If you've been looking for a less rocky path into Resolve plugin programming for a while, you might be happy to know that the documentation for the Fusion Fuse SDK has now been refreshed. The plugins (fuses) developed with this SDK run not only in Fusion but also in Resolve and offer a number of conveniences for development:
- They can be developed in a text editor without the need for compilers and development environments. - There is a built-in UI toolbox with many different controllers and onscreen widgets. - Development is integrated as fuses can be developed and reloaded without restarting Resolve and Fusion. That is, when testing, editing and reloading, the updated source code is compiled and executed immediately. - There are built-in core functions such as blur, merge, color operations and Image operations that run on the GPU. - Fuse's source code uses Lua, a C-like programming language. For commercial exploitation, the source code can easily be converted to C++ source code for the Fusion SDK.
The best part, however, is the relatively easy-to-understand and very detailed documentation, which makes the first steps relatively easy for users with programming experience. So if you want to add your own to Resolve or Fusion, you should take a look at the Fuse Plugin Guide.