The Minimum Compositor

If someone were going to build a compositor for motion pictures from the ground up in 2020, what would be the minimum viable feature set?

A Strawman:

OCIO
Rock solid node graph
Good OFX support
A roto implementation
A paint implementation
Tracker with plane and point tracking
Timeline with solid keyframing and a low-friction editor for curves and data

What else?

More points for fewer features, not more. The goal is to narrow it down to the smallest set of features that would support a reasonable subset of the most important compositing tasks for VFX.

Here’s a few more!

  • Working space must be 32 bit
  • Common filters: defocus, erode, blur, exponential glow, etc.
  • Keying toolset
  • Multichannel EXR / image support
  • Read/Write to a whole lotta file formats
3 Likes

And should be an open source :v

1 Like

So, you are planning a fork/new compositor? Else I can’t see the relation to Natron.

Minimum viable for who?
Pro-VFX people probably need 3D workspace with complex lighting models if not raytracing.
Casual VFX people might do without that, but need solid Keying, Denoising, defocus, erode, blur, glows already integrated.
Beginner VFX people mostly need a flawless UI/UX to learn and use a node-graph workflow for the first/second time.

All need flawless Colormanagment including options to sensibly go from one Gamut to another.

I think this is very relevant to Natron. Part of managing a large, complicated software project like Natron (especially when development resources are extremely limited) is keeping it focused on only the most important features.

For the non-developers in the room… software features, even when they’re already implemented often contribute significant weight and friction to both the development of new features and to fixing bugs and issues in the software.

It’s potentially a useful strategy for Natron to remove anything that isn’t a very important feature. That’s a strategy that can be employed to help Natron move forward.

I think saying that I’m “planning a fork/new compositor” is a pretty strong reaction. I’m not planning a fork or a new compositor. My intention is to help get Natron into the best possible shape that I can… but sometimes philosophical differences cause projects to fork. That’s just open source. A fork doesn’t really decrease the value of the project being forked in any way, it usually increases its value.

I would very much like to understand what the minimum feature set for a useful compositor looks like for the people who are currently using Natron. I think that’s highly valuable information for Natron. It kind of looks like the target feature set for Natron has been “what does Nuke do?”

For you. What is the minimal feature set you need for a compositor like Natron to be useful in your work.

I would argue that the 3D workspace angle is already covered by Blender. In my compositing work, I’m using Natron (and other compositors) primarily as an adjunct to Blender. Sure, there’s an argument that there’s a workflow advantage to having the compositor and the 3D workspace in the same tool, but that comes at a fairly high complexity cost.

Keying makes perfect sense. Things like denoising, defocus, etc… all primarily come from OFX plugins, not necessarily the “compositor” itself.

1 Like

For anything with lighting Blender is the go-to for 3D, no question about that but having a 3D workspace is very helpful in a compositing program for simple 2.5D stuff with cards and camera moves. It simplifies and speeds up the process massively for this kind of work. Sometimes there are things you just can’t track and add effectively in 2D — smoke and fog on cards comes to mind.

That said I don’t think Natron is ready for a 3D workspace yet and there are many improvements that need to be made to the 2D tools first.

2 Likes

Okay, but I might not be representative. :smiley:

Like @Shrinks99 I disagree to a point. If roundtripping to blender and back is flawless, I would not care too much.

Image-based keying and range-based keying. In principle one could build those from scratch, but are those then fast enough implementations?

As a user I disagree, unless you can show me a good and somewhat fast open-source OFX denoising plug-in for example. :smiley:

I can’t help with the open source part but what I can say is that Neat Video Reduce Noise is what most people use. It’s not cheap but I haven’t found anything that performs as well.

Honestly, I think DenoiseSharpen is really not bad at denoising video footage, and it’s fast. Use the one from 2.3.16b1. See the comparison with NeatVideo here.

3 Likes

Here’s my list of minimum compositor, which would have 90-100% of functions to allow accomplishing decent quality full CGI shots or CGI shots including some live action elements.

To create compositing effects the software would need more tools, but all that would depend what effect to create, so it would be impossible and unnecessary to list in this topic. I think this is pretty much minimum for me, but to have all basic necessities.

General

  • Working color bit depth: 32bit
  • 16bit and 32bit Multilayer Exr support
  • Timeline with keyframing and animation curves
  • Most tool values possible to animate
  • Tools to let choose which color channels to affect
  • Tools to have mask input to allow limit to selected parts of image
  • Tools mask input to have selection which mask channel to use
  • Colorspaces and LUTs support

Viewer

  • Colorspace selection
  • To select which color channels to display (rgba, r, g, b, a)
  • Zoom/pan control
  • Gain control
  • Pixel value info and sample value picker

Tools (nodes)

  • Read (exr, tiff, png, jpg)
  • Write (exr, tiff, png, jpg)
  • Merge
  • Constant
  • Channel copy/shuffle
  • Color grading
  • 3D LUT
  • Add Film Grain
  • Remove Film Grain
  • Lens Distortion
  • Color Keyer
  • Luma Keyer
  • Roto
  • Blur
  • Sharpen
  • Erode/Dilate
  • Premultiply/Unpremultiply
  • Transform
  • Clamp
  • Crop
  • Reformat
2 Likes

Thank you so much!!
I will have a look into it!
Do I see this right, it is working in Natron, but nut really with resolve, although OFX?

That perfectly sums up the dilemma. Technically Neat is (or at least was for a long time) a nicely tuned wavelet-coefficient shrinkage denoiser. I am sure it is worth it’s money BUT I think especially in the open source world better(*) denoisers exist. Just not as an OFX plugin. At the same time, denoising footage is IMHO key for compositing, if you can do it with low artefacting. Same as good regraining.

(*) the definition of better goes beyond the scope of this thread.

At this point Natron is the king on open source de-noising, and it has the potential to do FAR more than it currently does if we can get a few more nodes functioning. The fastest denoisng node in Natron to my knowledge currently is probably the Bilateral_gl node used on separate chroma & luma passes; however, that is technically a shadertoy, but one could do the same basic setup with the other bilateral nodes.

2 Likes

My opinion, if I’m a developer I would improve Natron instead of building something from the ground.

Good thread, and I agree with the step-back approach of figuring what’s necessary and what might be removed in order to reduce drag on the code base.

I can’t add much to the feature lists, which seem very good. But I would draw out one distinction: who is the target audience? Is it those who want affordable options – where free is the most affordable of all? Or is it those who insist on an entirely open source pipeline and don’t want anything proprietary?

That is the community’s and developer’s decision, and I don’t have an axe to grind one way or the other. But I do think that there is a critical strategic distinction between the two.

My thinking is, if the project is serving open-source-only folks then it will probably have to implement more features. Alternative open source 2D options like Blender’s compositing are primitive. (On the other hand, Blender 2.5D or 3D is nice and arguably superior to even paid options, so the issue is smooth/tight integration.)

On the other hand, if the project is serving affordable-options folks then it’s probably best to implement fewer features rather than attempting to go head-to-head with Nuke Indie (free, but limited) or Blackmagic Fusion Studio ($300 one-time fee), which is going to add a lot of development and maintenance costs and probably not really get there.

In some sense, this is a feature valley that’s like 3D’s uncanny valley: don’t get stuck in the middle. Either do less and stay on one side, or do a lot and do it fully to reach the other side.

(I fall into the affordable camp myself, but I also really enjoy Natron.)