Mozilla Skin*/?>

What's new in Conduit 2

From ConduitWiki

This document covers the most important changes in Conduit Suite 2.0. These features are available in all the Conduit plugins as well as the standalone Conduit Live application.

Contents

Curves

One of the most popular image adjustment tools in Photoshop is Curves which allows the user to modify the image’s tone range with a high level of control. Since version 1.0, Conduit has included a Bezier Curve node, but its user interface has been quite basic (although it does offer a quality advantage: Conduit’s Bezier Curve is computed individually for each pixel with full 32-bit float precision, whereas Photoshop uses an 8-bit lookup table).

Conduit 2 includes a new Curves node with an array of new features:

  • Separate curves for individual RGBA channels as well as the combined color (master channel)
  • Adding and deleting points on the curve
  • Automatic curve interpolation (no need to manually tweak Bezier handles)
  • Scrubbable number entry fields for extremely precise control over curve points

Like all the tools in Conduit, the new Curves node operates at float precision by default. Thanks to float precision, it's possible to use Curves to lift highlights above white and have those “superwhites” retained throughout the Conduit processing pipeline.

File:Conduit2_in_fcp_curves_20100411_editor_720px.png

Floater windows

The above screenshot shows the Curves interface in the Conduit Editor. Clearly the Curves node could benefit from a larger curve plot for easier visual manipulation of the curve points, but there just isn’t much more space available in the Editor window. To solve this problem, Conduit 2 introduces node-specific “floater” windows that allow a clutter-free view of the important tools right on top of the image being edited:

File:Cl2_masking_and_curves_red_20100411_halfsize.png

Nodes can offer floater UIs that are completely separate from their regular interface in the Conduit Editor. As shown in the above screenshot of the Curves floater, Conduit also offers a set of inverted (black background) controls that fit much better within the dark floater interface than the regular Mac or Windows controls that assume a light background.

Image analysis nodes

Conduit 2 introduces the possibility for nodes to analyze the image and send the results back to the Conduit user interface. The Curves node takes advantage of this feature to display color histograms in the curve floater window:

File:Cl2_masking_and_curves_20100411_floatercrop.png

Scopes everywhere

Conduit Live has a complete set of video scopes. In Conduit 2, these scopes are also available in the Conduit plugins (in Final Cut Pro + Express, Motion, Photoshop and After Effects).

Conduit Live 2 now allows multiple scope windows to be open at the same time, displaying different sources or rendered images.

File:Cl2_scopes_rgbparade_20100426.png

On-screen controls

For many image tools (including masking/rotoscoping), it’s necessary to be able to draw overlay graphics on top of the rendered image, receive mouse clicks and other user events that occur within the image, and map those user interface events to the image space.

Conduit 2.0 offers the necessary programming interfaces that allow nodes to render accelerated overlays and handle mouse and tablet events. These interfaces aren’t just for the benefit of plugin writers or internal development: users can take advantage of them even if they don’t know the first thing about C programming or GPU image processing, thanks to the new scripting functionality covered in the next section.

Shapes

The Shapes node can be used to create high-quality vector masks and shapes.

A single Shapes node can contain any number of shapes, and a shape can contain any number of control points.

The node provides on-screen editing controls. These editing controls can be viewed over any other node's output using the "solo" display mode (double-click on the node to view, then single-click on the Shapes node to view its controls).

File:Cl2_viewer_shapes_20100424.png

Conduit shapes can be stored in a human-readable plain text format, so they are easy to transfer between systems and convert to other formats.

To learn more, see Shapes Tutorial

Place Over node

The Place Over node is a layering tool that offers better quality and more options than the existing combination of 2D Transform and Over nodes.

Place Over supports rotation and does high-quality antialiasing.

In Conduit Live 2, Place Over can be controlled by a source in the Conduit Live 2 project view. Using this feature, a layer's transform can be easily driven by a Conduit Live 2 node for tracking or scripting effects.

JavaScript

Conduit 2 introduces far-reaching scripting possibilities through its JavaScript engine and a complete set of JavaScript APIs.

JavaScript is probably the world's most popular programming language. It's used in web browsers, Adobe Flash, Adobe Creative Suite, and many other applications. Conduit's JavaScript environment is easy to learn and stays as close as possible to a web browser. Thus the mental investment of learning Conduit scripting can be easily translated to web development -- and vice versa. Learning graphics programming has never been easier.

Some highlights of scripting in Conduit 2:

  • Render high-quality 2D graphics
  • Render GPU-accelerated effects and 3D graphics
  • Combine Conduit effect trees with scripts
  • Create custom user interfaces
  • Package scripts and assets as plugins

For more information, check out Tutorials and the Conduit 2.0 JavaScript API Reference.

(The standalone application Conduit Live 2 offers even more scripting APIs to control its tools; these are separately documented in the Conduit Live 2 manual.)

Canvas 2D graphics API

Canvas is a JavaScript graphics programming interface. You can use Canvas to render shapes, patterns, gradients, text, images, and almost any imaginable combination thereof.

Canvas is supported in modern browsers like Safari, Firefox and Opera. It's slated to become part of the upcoming HTML 5 standard. Conduit's Canvas implementation is fully compatible with code written for web browsers.

Supernode

Probably the flagship feature of Conduit 2 is the supernode: a special node that combines all of Conduit’s technologies into a single encapsulation. Supernodes can be easily used to package conduit effects as nodes, i.e. macros, but their possibilities go much further. With Supernode, ordinary users can create complex realtime visual effects, package them as plugins, easily distribute their creations -- and even sell them as protected binary plugins.

At the base level, supernodes are built in JavaScript. Firstly, they have the functionality of the aforediscussed Canvas node for 2D graphics. Exclusive to supernodes is the Surface API which allows rendering graphics and visual effects on the GPU (graphics processing unit).

Supernode capabilities extend beyond scripting because they can contain assets, including entire conduit effects. These nested “sub-conduits” can be opened for editing in the Conduit Editor window, and an info bar will be displayed above the node view to let the user navigate back to the higher level:

(The name supernode derives from this nesting capability: the supernode is literally “above” the conduits contained within it.)

This kind of encapsulation of conduits within nodes is familiar from other node-based applications (Shake calls them macros). It's a feature that has been missing from Conduit until now. However, the supernode implementation in Conduit 2.0 is more powerful than e.g. Shake’s macros because scripting available in the Conduit supernode gives the user complete control of what gets rendered.

The default script for a supernode does act like a Shake macro: it simply renders using the first contained conduit. But the user has free roam to modify this behavior, using conduits as GPU rendering programs. (Conduit is the perfect environment for doing scripted GPU rendering because there’s no need to expose something as complicated as a shader language to the user –- Conduit effect trees serve that purpose.)

For example, to create a plugin that shows two effects side-by-side, the user could add another conduit into the supernode and render some portions of the output image using that conduit instead; then generate a matte image with the Canvas API, and use that image to blend between the images rendered by the two conduits.

To learn more about scripting and creating effect plugins, see Tutorials.

Scripted binary plugins

For distribution, effects created using Canvas or Supernode can be packaged into a binary plugin. Using this format, the script behaves like a regular plugin: the source code for the effect is not visible to the user.

Binary plugins can be created directly from the Conduit Editor.

Native plugins (Lacefx C API)

In addition to JavaScript plugins, Conduit 2 includes a traditional C language interface for developing plugins. Called Lacefx, the API offers a cross-platform programming interface for rendering graphics on the GPU which isolates the developer from the underlying native graphics API (OpenGL on Mac, Direct3D on Windows).

The Lacefx SDK for developing native plugins is available upon request.

Conduit Live 2

Conduit Live has been completely revamped for version 2. For more information, see the User's Guide.