All about Natron Community Plugins

Hello all, The official community plugin repository for Natron is:

If you want to share any plugin/pyplug/shadertoy node in this repository, you can follow the steps below and create a pull request:

Natron Community Plugin Upload Guideline

Or if you are not comfortable with Git, just upload it in your cloud or here and submit here in this thread. We will assist you as much as we can.



Hi… I’m new here :smiley:
I’m a programmer and I’m interested in making OFX plugins. I have read a little bit about the guide, but the documentation of the SDK is kinda minimal.
For example, I’m still not sure how to sampling the source image. We can only access it by the exact pixel address, surely I can interpolate it manually, but I think may be there’s already a library to do that thing, that’s why I’m asking more resource in this documentation. If anyone can give my the direction, I’ll be really happy :smile:

For OFX discussion your best mentor would be @devernay
Some API reference OFX: OFX : Open Plug-Ins For Special Effects

Hey thank you for the reply :D…
I have searched that documentation, and if I’m not mistaken, it’s only the base SDK, and as far as I know, there’s no library to do sampling in the base SDK.

And I have found this

I think there’s what I need, but it seems, this code doesn’t have any documentation… ._.

To sample an image using various filters, use:

There are comments in the file, and many sample uses in the openfx-misc set of plugins. take a look at CornerPin for example.

1 Like

Hey thanks for the response… Yeah I’m checking that library now :D…
I’m still confused how to correctly use it. For example for ofxsFilterInterpolate2DSuper, there’s Jxx, Jxy, Jyx, Jyy. I’m not sure what to put in it. Looking at the example, it’s only some calculation without explanation.

Those are coefficients of the Jacobian (first derivatives) of the transform function.

oh thank you, it’s much clearer now :smiley:

I’ve created a Lightning_GL node but I don’t know Github. Can you please place this plugin in the Plugins/natron-plugins/GLSL/Source/ folder. I’ll try and figure out Github this weekend if I have time.
Fahad - Feel free to replace the x/y controls for mouse input if you have time. I couldn’t figure out how to do it with the plugin.

1 Like


1 Like

Dude that was fast. Thanks!

1 Like

Most Welcome :slight_smile:

1 Like

Hi!! I’m playing with Natron and I redesigned the current community Cryptomatte node.
Now it’s possible to easilly add or remove Ids, even from a string list.
Also you need to connect only one input. The layer setup is within the node properties
There is a limit of 20 IDs
If anyone found any bug please contact me
Here is the link!


Should this replace the current one in the Community nodes?

@ivan.stephan @tmorley
Hi, Let me know if you want to PR/Submit it in git. Will merge it.
If this one excels the existing one then replacing is better. But no harm of having two too. can be named old one legacy.
I am not in crypto pipeline currently. So a community beta testing is suggested.

I agree with a beta testing!!! I did some significant changes in the previous code.
I’ll do a beta with my students and I’ll post the result here too.

May I commit this version in the git directly? @cgvirus I’ll need some advices in this topic!!
Thank you and all the best

Yes, sure you can create a pull request (PR) from github.

Here is a simple demo. You can search for “how to create pull request in github” for additional information.
Note that you may need to pull the repo from the main repository and push it to your fork if the main fork gets updated in future. You can search for “How to push and pull with gihub”. You will need terminal for push-pull BTW.

Hi, @ivan.stephan

I did a quick test of your new Cryptomatte node. It is simpler to use than the old one and good in general. But in first test I found 2 issues that would be good to improve.


  • If Cryptomatte node is connected to input and user wants to add a dot between nodes for cleaner routing with Ctrl-leftClick, Cryptomatte fails to load crypto layers. It shows as a value not existing warning. It actually still is usable if not clicking to Crypto layers to change them to none, which is only option at this point. But still thing to fix for proper use.
  • A dot can be included without above issue by creating it to node graph by shortcut “.” and then connecting.


  • I have a pretty clean method which I use in Nuke to grade different elements of 3D rendered image. That is by having one vertical Cryptomatte pipe which consists of stacked Cryptomatte nodes to connect individual Grade or CC nodes in comp.
  • If I stack multiple Cryptomatte nodes, those below the first one display crypto layers as none. It actually works, but for user to know everything is alright it would be better to still be able to see crypto layers in node instead of none. Seems like Cryptomatte Node does not read layers from another Cryptomatte node. If I connect Cryptomatte to some other node then I can access all original EXR layers even after first node.

If you need more info or testing on these, just let me know.

1 Like

I noticed one addition that would be useful. Cryptomatte node could have Clear All button to quickly remove all selections. Can be done now also by clearing ID list, but one button would be fastest.

Also thought of not only asking things, but to contribute as well something, so I’m sharing a download link for lowres/lowsample main render pass straight from Blender of an image I used to test Natron first time (Spring 2019). Could be useful for others to test Cryptomatte or other CGI compositing techniques. Image has lot of different elements to test… small, big, smoke, etc.

Everyone are free to go and download, but please do not share it elsewhere and no other than personal use. Can of course use it to showcase features or issues of Natron in this Forum if like. Original render was 4k and higher sampling quality.

(330mb, 32bit EXR, 2000x2000px)

Please notice that when you load it to Natron, it first displays Ambient Occlusion pass due to the way Blender saves passes in EXR. But just change output layer in Read node to Combined.

Attached is also the original output image in low res which I did, but I didn’t use Cryptomattes at that time. In another thread I actually posted screencapture of the Node Graph of the original comp. This was my first test of Natron, Blender and Gimp without prior experience on any of those software at the time.


Thank you very much for your feedback!!!

I corrected all bugs, plus added some extra features, like clear ids button, force node update button and also now it’s possible to combine multiple crypto nodes alpha channels.

I’ll try to make a git upload soon!!