Natron Portable Changelog

What's new in Natron Portable 2.5.0

Dec 30, 2022
  • Known issues:
  • Rendering sometimes silently stalls after X frames. #248
  • Some image formats may have issues (PCX, PSB). #602
  • MTS video files are sometimes not read correctly. #186
  • Changes (compared to 2.4.4):
  • Use Python 3 rather than Python 2 (which is not maintained anymore). This will require very few changes to the Python code (mainly print statements), and most code can be easily adapted to be 2-3 compatible. #686
  • Use QtPy==1.11.2 rather than PySide. QtPy is an abstraction layer for PyQt5/PyQt4/PySide2/PySide (newer versions support PyQt6/PySide6). QtPy uses the Qt5 layout (where the QtGui module has been split into QtGui and QtWidgets). Using QtPy guarantees a higher level of forward-compatibility with future versions of Natron, which may use Qt5 or Qt6. PySide can still be imported explicitly, if required, but the resulting code will not be forward-compatible. Note that 2.4.4 binaries include qtpy, but still import PySide by default. #687
  • Detailed Changes:
  • RB-2.5: use qtpy rather than pyside by @devernay in #687
  • RB-2.5: python3 support by @devernay in #686
  • Compatibilize with Qt5 in Gui by @YakoYakoYokuYoku in #699
  • Errata on QWindow header by @YakoYakoYokuYoku in #703
  • Initial GitHub workflow implementation by @YakoYakoYokuYoku in #700
  • Support for building with Shiboken2 in Engine by @YakoYakoYokuYoku in #697
  • Shiboken2 postmerge fixes in Engine by @YakoYakoYokuYoku in #704
  • Update bug and feature request templates by @Shrinks99 in #707
  • use a different (fake) enum namespace for shiboken & shiboken2 by @devernay in #713
  • Support for building with Shiboken2 in Gui by @YakoYakoYokuYoku in #698
  • Initial Qt5 sources for Gui by @YakoYakoYokuYoku in #716
  • Initial Qt5 sources for Engine by @YakoYakoYokuYoku in #715
  • Deprecate usage of qSort in ToolButton by @YakoYakoYokuYoku in #717
  • Set tab stop distance with tabStopDistance in Gui by @YakoYakoYokuYoku in #718
  • Substitute recursive mutex enum with QRecursiveMutex by @YakoYakoYokuYoku in #720
  • Invoke system in global PySide config by @YakoYakoYokuYoku in #721
  • Renovate usages of QLineF intersections by @YakoYakoYokuYoku in #719
  • Query screen geometry using static QGuiApplication methods by @YakoYakoYokuYoku in #722
  • Renovate QWheelEvent in Gui by @YakoYakoYokuYoku in #723
  • Index model children with QAbstractItemModel by @YakoYakoYokuYoku in #726
  • Use QMargins for table model view by @YakoYakoYokuYoku in #727
  • Use default QFlags construction instead of zero by @YakoYakoYokuYoku in #724
  • Renovate QString splits with newer enum in Gui by @YakoYakoYokuYoku in #725
  • Replace qrand with QRandomGenerator in tests by @YakoYakoYokuYoku in #730
  • Replace width with horizontal advance for font metrics by @YakoYakoYokuYoku in #729
  • Suppress Wnonnull for GCC 11 by @YakoYakoYokuYoku in #728
  • Allow node name reuse after delete by @devernay in #733
  • Insert to bimaps left instead of directly to avoid crashes in caching by @YakoYakoYokuYoku in #734
  • Save backup versions of projects by @devernay in #740
  • Remove ISSUE_TEMPLATE.md by @YakoYakoYokuYoku in #746
  • Only display the overlays for nodes that are in the viewer render path and have their properties panel maximized by @devernay in #745
  • Hide viewer buttons when roto/tracker properties panel is minimized by @devernay in #748
  • Fix issue forms for proper bug reporting by @YakoYakoYokuYoku in #750
  • Color selector palette by @rodlie in #754
  • Update CONTRIBUTORS.txt by @devernay in #753
  • Add AppImage build script by @TheAssassin in #739
  • Query site packages path using the Python site module by @YakoYakoYokuYoku in #760
  • Fix grammatical error in documentation by @kemonprogrammer in #758
  • Fixes spelling errors by @Shrinks99 in #761
  • Gui: added taskbar support by @rodlie in #766
  • Substitute QGL classes with QOpenGL by @YakoYakoYokuYoku in #764
  • Update intro.rst by @solecism in #774
  • qt 4.8.7 archive download page correction by @cgvirus in #787
  • PythonUtils: more portable version of dirExists() by @devernay in #792
  • Natron.rc: Use productName for FileDescription on Windows by @rodlie in #799
  • Document Qt5 build and install for Linux/BSD by @YakoYakoYokuYoku in #802
  • Copy node or group background and overlay color by @YakoYakoYokuYoku in #821
  • OpenGL rendering command line flag by @YakoYakoYokuYoku in #810
  • Shiboken generation in QMake for Python bindings by @YakoYakoYokuYoku in #803
  • Initial CMake build system implementation by @YakoYakoYokuYoku in #809
  • Fix freeze in Tracker when not in viewer path by @YakoYakoYokuYoku in #823
  • Implement offscreen rendering in Wayland in OSGLContext by @YakoYakoYokuYoku in #765
  • Gui/GuiPrivate: don't cast qint64 to Q_PID by @rodlie in #831
  • Partially revert Shiboken generation in QMake for Python bindings by @YakoYakoYokuYoku in #830
  • System libs for glog and Ceres in CMake by @YakoYakoYokuYoku in #829
  • fixes to build using cmake on macOS/Qt5 by @devernay in #834
  • Engine/CLArgs.cpp: allow dot in writer name by @rodlie in #840

New in Natron Portable 2.4.4 (Nov 17, 2022)

  • Known issues:
  • Crash when closing a project window on macOS 12+ (Qt4 only). #712
  • Rendering sometimes silently stalls after X frames. #248
  • Some image formats may have issues (PCX, PSB). #602
  • MTS video files are sometimes not read correctly. #186
  • Changes:
  • Rework the right-click nodegraph menu. #836
  • Allow simple expressions in project settings (e.g., frame range). #837
  • Allow dot in writer name on the command-line. #840
  • Plugins:
  • Fix issues with Transform viewer interaction and undo support. #839

New in Natron Portable 2.4.3 (Nov 17, 2022)

  • Added support for render progress in taskbar icon (Windows/macOS). #766
  • Added palette support in color selector. #754
  • Allow creating a node with the same name that was just deleted. #732
  • Natron can now keep up to 32 project backups (see Preferences/General/Save versions). #562
  • Only display the overlays for nodes that are in the viewer render path and have their properties panel maximized. Can be disabled in Preferences/Viewer. #744
  • Fix rendering from Python (by calling app.render()) when nodes use Python expressions. #560
  • Fix drawing of closed Bezier overlays. #659
  • RotoPaint does not reconnect to the viewer at each stroke by default. Added a button to the viewer interface to re-enable this behavior. #641

New in Natron Portable 2.4.2 (Dec 30, 2021)

  • Known issues:
  • Crash when closing a project window on macOS 12+ (Qt4 only). #712
  • Rendering sometimes silently stalls after X frames. #248
  • Some image formats may have issues (PCX, PSB). #602
  • MTS video files are sometimes not read correctly. #186
  • Changes:
  • Fix OpenFX overlay actions being executed in the wrong order. #711
  • Fix enabling node preview from Python. #710
  • Do not display the "Loading project" splashscreen on macOS 12+ to avoid crash due to Qt4 bug. #712
  • Plugins:
  • Fix bug in Transform plugin interact. #708
  • Fix EXR reader outputing the color plane only when an OCIO transform is applied. #714

New in Natron Portable 2.4.1 (Oct 26, 2021)

  • Known issues:
  • Rendering sometimes silently stalls after X frames. #248
  • Some image formats may have issues (PCX, PSB). #602
  • MTS video files are sometimes not read correctly. #186
  • Changes:
  • Default number of render threads is more reasonable on multi-core systems: min(num_cores, RAM/3.5Gb). #554
  • Fix checkerboard drawing on macOS Catalina and later. #614
  • Fix undoing "Reset to default" on parameters. #630
  • Fix NodeGraph manipulation and navigation issues. #491 #627
  • Fix Retina/High-DPI display issues on macOS, Windows and Linux/X11. #635
  • Fix multi-dimensional parameter linking (bug introduced in 2.4.0 #594). #631
  • Fix bug where any argument containing an integer between commas would be interpreted as a frame range. #644
  • Python: app.saveProject and app.saveProjectAs now do project variable substitution, as in app.saveProjectAs("[Variable]/output.ntp").
  • Fix ASCII curve import. #656
  • New color selection dialog for RGB and RGBA knobs. #210
  • Fix histogram smoothing (was 5 times too strong).
  • Add Python functions guiApp.copySelectedNodes and guiApp.pasteNodes. #390 #674 #675
  • Plugins:
  • Transform, CornerPin, Position and Ramp nodes now display the motion path.
  • HueCorrect now has the ability to do hue vs. hue adjustments, with an option to change the background curve guide. #610
  • Merge: Fix behavior on most operators when A is not connected or A's RoD and B's RoD are disjoint. #647
  • Reformat: fix bugs when "turn" is checked with Resize Type = None or Type = Scale.
  • Write: Remove file first when overwriting. #666
  • Mirror: Fix crash. #660
  • SeNoise: Add option for colored noise.

New in Natron Portable 2.4.0 (Apr 23, 2021)

  • Known issues:
  • Rendering sometimes silently stalls after X frames #248
  • Some image formats may have issues (PCX, PSB, CR2) #602
  • Changes:
  • Updated documentation. #572 #566 #551 #539 #538 #537 #520 #514
  • Handle console output on Windows. #524
  • Detect user installed fonts on Windows 10. #523
  • New Windows installer. #596
  • Improvements to SequenceFileDialog. #565
  • Snap timeline alpha cursor to nearest frame. #574
  • Handle UTF-8 values in KnobTable (fixes use of project path containing Unicode). #578
  • Tabs UI adjustments. #564
  • Do not allow Python keywords as node name or scriptname. #588
  • Always serialize nodes with an expression or a link, even if they have the default value. #585
  • Support cloned group nodes or hard links between groups. #568 #579 #594 #598
  • Default keyframe interpolation method for strokes and shapes is now "Smooth" (was "Linear"). #597
  • Fix animation of Roto Beziers with non-broken tangents. #202
  • Remember properties panels state when reopening project. #168
  • Plugins:
  • ReadFFmpeg, WriteFFmpeg: upgrade to work more nicely with the FFmpeg 4 API. #148 #231 #241
  • ReadFFmpeg: add support for reading AV1 & Canopus HQ/HQX/Lossless.
  • WriteFFmpeg: add support for writing AV1 & Cineform HD.
  • Fix another bug in DenoiseSharpen that caused crash when stoping/aborting. #300
  • Fix Lin2Log to be consistent with Log2Lin. #570
  • Merge: never consider RGB as being transparent by default - this is OK for unpremultiplied compositing (After Effects) but is invalid in a premultiplied compositor such as Natron or Nuke. Users still have the option to ignore the alpha channel. #571
  • WriteOIIO: Do not add "Color." to the channel names of the color plane (affects mainly OpenEXR). #583
  • Writers: when writing RGBA to format that does not support alpha, just drop alpha - don't premultiply. #582
  • RGBtoHSL: Fix bug with white and superwhite values. #512
  • Reformat: Default to project size. #533

New in Natron Portable 2.3.15 (Jun 8, 2020)

  • Inputs of the selected nodes are now always visible.
  • Avoid crash and issues when NatronEngine.Effect.destroy() is called. #368
  • macOS: fix version numbers in Finder information. #372
  • Fix callbacks in PyPanel and PyModalDialog. #379
  • Fix recursive Python calls and handle the Python GIL properly.
  • Fix loading of Python Toolsets, and document how Toolsets are detected.
  • Fix using Rotopaint with multiple layers. #420 #205
  • Fix loading project settings. #439
  • Fix property panels of PyPlug nodes. #449
  • Fix missing python API entry points. #485
  • Make "Use Host Interact" setting available from user parameters. #490
  • Fix deadlock when creating a dialog from initGui.py. #487
  • Plugins:
  • Fix bugs in DenoiseSharpen that caused crashes. #300
  • Add support for chromatic aberration correction when reading RAW files. #309
  • Update CImg and G'MIC to 2.8.4 and fix several issues in GMIC plugins (which are still beta).
  • Many new GMIC plugins, including GMIC Custom Code.
  • FrameRange: New options "Loop" and "Bounce". #411
  • Update OpenImageIO to 2.1.11.0. #350
  • Fix reading multi-view EXRs. #429
  • Support for reading and writing HEIF/HEIC images. HEIC is the still-image sibling of HEVC (a.k.a. H.265), and compresses to about half the size of JPEG but with higher visual quality.
  • Text: Added SRT subtitle format support.
  • AudioCurve (audio curve generator): new plugin.
  • Fix plugin bugs (IO and CImg) with images that take more than 2GiB of memory (e.g. 12000x12000 RGBA float). #456
  • Fix "Fill" PyPlug: was not filling everything if the Source was larger than the project. #475
  • Shadertoy: use the preset name as a sublabel.
  • LensDistortion/IDistort/STMap: add "Use src RoD" option to override format.
  • Blur: fix handling of render scale when computing derivatives. #496
  • Text: fix animating font family and retiming the text output. #482 #476

New in Natron Portable 2.3.15 RC 17 (Mar 21, 2020)

  • Inputs of the selected nodes are now always visible.
  • Avoid crash and issues when NatronEngine.Effect.destroy() is called. #368
  • macOS: fix version numbers in Finder information. #372
  • Fix callbacks in PyPanel and PyModalDialog. #379
  • Fix recursive Python calls and handle the Python GIL properly.
  • Fix loading of Python Toolsets, and document how Toolsets are detected.
  • Fix using Rotopaint with multiple layers. #420 #205
  • Fix loading project settings. #439
  • Plugins:
  • Fix bugs in DenoiseSharpen that caused crashes. #300
  • Add support for chromatic aberration correction when reading RAW files. #309
  • Update CImg and G'MIC to 2.8.4 and fix several issues in GMIC plugins (which are still beta).
  • Many new GMIC plugins, including GMIC Custom Code.
  • FrameRange: New options "Loop" and "Bounce". #411
  • Update OpenImageIO to 2.1.11.0. #350
  • Fix reading multi-view EXRs. #429
  • Support for reading and writing HEIF/HEIC images. HEIC is the still-image sibling of HEVC (a.k.a. H.265), and compresses to about half the size of JPEG but with higher visual quality.
  • Text: Added SRT subtitle format support
  • AudioCurve (audio curve generator): new plugin

New in Natron Portable 2.3.14 (Jul 20, 2018)

  • ReadSVG: Fix reading layers of SVG files

New in Natron Portable 2.3.13 (Jun 27, 2018)

  • Fix default value for file premult in ReadSVG (should be premultiplied).
  • HSV values in the viewer info lines are now computed from linear RGB #286.
  • RGBToHSV, HSVToRGB, RGBToHSL, HSLToRGB, RGBToHSI, HSIToRGB: Use linear RGB values in computation #286.
  • Tracker: fix bug where Transform tracking was wrong when using more than 1 point #289.

New in Natron Portable 2.3.12 (May 23, 2018)

  • Fix font selection in the plugins that render text (Text and Polaroid from openfx-arena) #269.
  • Python: add Effect.getOutputFormat() method.
  • GCC 8.1 (used for the 2.3.11 binaries) breaks the timeline GUI, revert to GCC 7.3 for Linux builds #279.
  • Disable crash reporter in official binaries (requires maintenance to get it working again), and add crash reporter code to the source tree.

New in Natron Portable 2.3.11 (May 8, 2018)

  • User Guide: Add documentation on tracking and stabilizing.
  • FrameBlend: Add Over operation, add decay parameter, and fix bugs.
  • Fix Python Pseudo-random number generators random(min,max,time,seed) and randomInt(min,max,time,seed)
  • Shadertoy: Document the process to adapt a shader from shadertoy.com to the Shadertoy plugin.
  • Support FFmpeg 4.0 in the ReadFFmpeg and WriteFFmpeg plugins.

New in Natron Portable 2.3.10 (Apr 5, 2018)

  • Add "Overwrite" checkbox to writers to avoid re-rendering the whole sequence #1683
  • Writers do not render the whole RoD on their input anymore (this may result in a huge speed improvement on some projects)
  • Fix bug where effects could be marked as pass-through if their RoD was larger than the project format #1578
  • Add python method setCanAutoFoldDimensions(enable) to Double2DParam and Double3DParam
  • Fix several plugins when included in a PyPlug: ColorSuppress, HSVTool, ImageStatistics, Ramp, Shuffle, Reformat #1749
  • Fix Matrix3x3 and Matrix5x5 GUI (y was reversed)

New in Natron Portable 2.3.9 (Mar 28, 2018)

  • Numerical text fields (aka SpinBoxes) are now auto-reselected when validated #1737.
  • When a node is selected, make its inputs/outputs more visible.
  • Node shape is now thinner in the node graph.
  • In the node graph, the cursor now really reflects what a mouse click would do.
  • All nodes inside a backdrop can be enabled/disabled using the "D" key #1720.
  • Fix the "." shortcut for creating a Dot in the nodegraph on non-French keyboards.
  • Only auto-connect a newly-created node to the input of the selected node if it cannot have an input itself.
  • Made more clear what the "LUT" tab in the project settings is for #1744.
  • Better "hide all parameters without modifications" behaviour #1625
  • Only the keypad number keys should be used to nudge Bezier/tracker, regular number keys switch the viewer #1582

New in Natron Portable 2.3.8 (Mar 22, 2018)

  • Fix crash when Viewer/maxNodeUiOpened=1 in the preferences
  • Fix bug where an exported PyPlug would not have a correct Python syntax if a string had a backslash followed by newline (as may be seen in Shadertoy sources).
  • Fix behaviour of loop/bounce in the Read node when there is a time offset #1734.
  • G'MIC plugins by Tobias Fleischer are now bundled with the binary distributions (beta).
  • Fix bug where the "&" character was not displayed in the plugin creation menus.

New in Natron Portable 2.3.7 (Mar 14, 2018)

  • The viewer timeline can now display information as timecode instead of frames (see TC/TF choice next to fps below the timeline)
  • Disabled Merge nodes (and other nodes with input A and B) now always pass-thru the B input. Preferences should never affect the render results.
  • Shuffle now passes through B by default, and has a new toggle parameter "setGBAFromR" to disable automatically setting G B and A from R.
  • Grade: Add "Reverse" option to apply the inverse function. Usage: clone or copy-paste a Grade node, insert it downstream of the original node, and check "Reverse" in the downstream Grade.
  • Fix RunScript (the bugs were in ReadOIIO and Natron), and better document it.
  • GIF format is now read and written by ReadFFmpeg (most GIFs these days are animated).

New in Natron Portable 2.3.6 (Feb 28, 2018)

  • fix bug when using PyPlugs containing Shadertoy (and possibly other plugins too) #1726 #1637
  • fix bug when creating a group from a plugin with invisible inputs (e.g. Shadertoy)
  • fix bug where Natron would crash when the "clear all panels" button is pressed #1729
  • fix bug where Roto and RotoPaint lifetime would change randomly #1707
  • Plugins:
  • ReadOIIO/ReadPNG: "Image Info..." gives a more explicit message, containing the filename and more info.
  • fix bug in all OCIO plugins where GPU render is wrong if (un)premult is checked (disable GPU render in this case)

New in Natron Portable 2.3.5 (Feb 22, 2018)

  • Plugins:
  • ReadOIIO: fix a bug where the Read nodes are not properly restored when timeOffset is used #1711
  • ReadOIIO: add options for reading RAW files: rawUserSat, rawHighlightMode, rawHighlightRebuildLevel
  • DenoiseSharpen: fix a bug where the plugin would not abort processing when required.
  • ColorCorrect: fix luminance computation when applying saturation #1706
  • Reformat: add a checkbox to use the input RoD instead of the input format (useful when preceded by a crop)
  • ContactSheet/LayerContactSheet: correctly set the format when the output size is changed

New in Natron Portable 2.3.4 (Dec 12, 2017)

  • Binaries distributed through Natron's web site are now built with 8-bit x264. 10-bit x264 (introduced with 2.2.6) causes too many compatibility issues. There are other codecs that support 10-bit output (especially ProRes, vc2, libopenjpeg, libvpx-vp9, and x265 on some systems). In order to get 10-bit x264, it is recommended to encode a quasi-lossless using one of these codecs, and then transcode with a ffmpeg binary capable of encoding 10-bit x264.
  • Work around a possible Qt/Linux bug where tablet events have a negative pressure on Wacom Intuos tablet #1697
  • Binaries: add 10-bit HEVC encoding, Cisco openh264 encoding, VidVox Hap encoding.
  • Plugins:
  • Upgrade SeExpr to version 2.11.
  • Grade: add a "Normalize" button to automatically compute the clack and white points.
  • Matrix3x3, Matrix5x5: new plugins, apply a 3x3 or 5x5 custom filter.
  • ColorCorrect: Fix wrong render for input values outside the [0-1] range #1703
  • ReadOIIO: Adjust Maximum Thr. (used when reading RAW camera files) should defaut to 0.0 #1705

New in Natron Portable 2.3.3 (Nov 12, 2017)

  • Fix computation of remaining time when rendering.
  • Fix loading third-party plugins on Linux #1682
  • Plugins:
  • ColorLookup: add "Master Curve Mode" parameter, which enable selecting different algorithms to apply the tone curve with more or less color shifting. These curve modes are inspired by RawTherapee. Also add the possibility to compute and display the RGB histogram of the source input.
  • WriteFFmpeg: support 10-bit DNxHR 444 and DNxHR HQX (and fix a related FFmpeg bug).
  • Shadertoy: rework many presets so that they work better with Natron, especially the effects in the Blur, Effect, and Source categories. Most blur effects can also be modulated per-pixel using the "Modulate" input to get Z-dependent blur.
  • Shadertoy: new presets: Blur/Bokeh Disc, Blur/Mipmap Blur, Effect/Anaglyphic, Effect/Bloom Paint, Effect/Sawnbringer 4bit, Effect/Sharpen, Effect/CRT, Effect/Fisheye, Effect/Image Cel Shade, Effect/Kaleidoscope, Effect/Noisy Mirror, Effect/Quad Mirror, Effect/Q*Bert-ify, Effect/Stripes, Effect/Vignette, Source/Cloud, Source/Cloudy Sky, Source/Disks, Source/Fireball, Source/Flash, Source/Seascape, Source/Star Nest, Source/Voronoi
  • Shadertoy: add iChannelOffset extension.
  • LensDistortion: add cropToFormat parameter (true by default), to avoid computing areas outside of the project frame.

New in Natron Portable 2.3.2 (Aug 13, 2017)

  • Merge: fix bug #1648, where the alpha from the B input would be used for all consecutive merge operations, rather than updated at each operation.

New in Natron Portable 2.3.1 (Jul 27, 2017)

  • Python: Fix the setTable() function of the PathParam class
  • Windows: Fix a bug where most image formats would not read and write correctly

New in Natron Portable 2.3.0 (Jul 5, 2017)

  • Fix lots of bugs when loading older Natron project files.
  • Internal changes: implement a new OpenFX multiplane suite.

New in Natron Portable 2.2.9 (Jun 30, 2017)

  • Fix a bug where the channel selector would be wrong when loading older projects (e.g. Spaceship).
  • Plugins:
  • SpriteSheet: convert a sprite sheet to an animation.

New in Natron Portable 2.2.8 (Jun 7, 2017)

  • OpenGL interact is now always affected by transforms even if there is motion blur.
  • Plugins:
  • Radial, Rectangle and generators: when the Extent is set to Size, and Reformat is not checked, Bottom Left and Size can be animated.
  • add Box filter to Transform, CornerPin, GodRays, and all Distortion nodes.
  • ContactSheet, LayerContactSheet: Make a contact sheet from several inputs, frames or layers (beta)

New in Natron Portable 2.2.7 (Apr 18, 2017)

  • Reduce noise on the roto shape borders #1594
  • Plugins:
  • ReadOIIO: fix bug when reading EXRs with datawindow different from displaywindow.
  • beta feature) Inpaint: New plugin. Inpaint the areas indicated by the Mask input using patch-based inpainting. Please read the plugin documentation.

New in Natron Portable 2.2.6 (Apr 3, 2017)

  • Multi-dimensional parameters don't automatically fold into a single dimension, except for scale and size params.
  • Binaries distributed through Natron's web site are now built with 10-bit x264 and 10/12-bit libvpx-vp9 support. That means the produced video files may be unplayable on some hardware (e.g. phones or TVs), but Natron should really be used to produce digital intermediates with the highest possible fidelity, which can then be transcoded to more suitable distribution codecs.
  • Better cache usage for Readers, ReadOIIO does not use the OIIO cache anymore (partly due to OpenImageIO/oiio#1632).
  • Fix a bug where custom OpenFX plugins directories would be ignored #1584
  • Add a documentation chapter on importing camera data from PanoTools-based software (PTGui, PTAssembler, Hugin).

New in Natron Portable 2.2.5 (Feb 23, 2017)

  • Fix undo when manipulating 2D points in the viewer interact #1576
  • Fix manipulating the interact plugin on non-retiming inputs of retiming effects (e.g. the Retime Map in Slitscan) #1577
  • Fix exporting curves to ascii (eg ColorLookup), and values for xstart, xincr and xend can now be simple expressions

New in Natron Portable 2.2.4 (Feb 6, 2017)

  • Write: remove Python page, add Info page
  • ReadFFmpeg: fix "Image Info..." button (which calls ffprobe) when file path is relative to a project variable
  • fix high-resolution application icons

New in Natron Portable 2.2.3 (Feb 1, 2017)

  • add proper quality options to WriteFFmpeg, including CRF-based encoding for libx264.
  • the online documentation for Read and Write now show the documentation of the underlying plugin.
  • fix bug in the recent files menu #1560
  • fix reading of transparent PNG #1567
  • fix clearing error message for readers/writers.
  • disable MXF writing (too many constraints, use an external transcoder)
  • fix MKV writing

New in Natron Portable 2.2.2 (Jan 25, 2017)

  • This is a bug-fix release:
  • fix hue display in the viewer #1554
  • EdgeBlur now has an optional Matte input used to compute the edges #1553
  • fix reading image sequences that do not have frame number 1 in them #1556
  • better/simpler GUI and documentation for the file dialog.

New in Natron Portable 2.2.1 (Jan 21, 2017)

  • This is a bug-fix release:
  • fix a bug with the file dialog when network drives are detached on Windows
  • the "Open Recent" menu now shows the directory name if there are several files with the same name.
  • Plugins:
  • STMap: was broken in 2.2, fix it.
  • WritePNG: fix writing 16 bit PNG

New in Natron Portable 2.2.0 (Jan 19, 2017)

  • OpenGL rendering is enabled by default for interactive editing in plugins that support it (but still disabled for background rendering)
  • Roto & RotoPaint: ellipses and circles are more accurate #1524
  • When a plugin is not available with the right major version, use the smallest major version above for better compatibility (before that change, the highest major version was returned)
  • Documentation is now licensed under CC BY-SA 4.0, and external contributions are welcome
  • Organize nodes documentation
  • New project formats: HD_720, UHD_4K, 2K_DCP, 4K_DCP
  • Plugins:
  • SeNoise: fix bugs in the Transform parameters #1527
  • PIKColor: do not expand region of definition
  • Shadertoy: support iDate, add presets, fix CPU rendering #1526
  • Transform & CornerPin: additional "Amount" parameter to control the amount of transform to apply.
  • ColorLookup: fix a bug where output was always clamped to (0,1) #1533
  • Grade: fix a bug where negative values were clamped even when gamma=1 #1533
  • STMap, IDistort, LensDistortion, Transform, CornerPin: reduce supersampling to avoid artifacts
  • LensDistortion: add STMap output mode, add undistort output, add PFBarrel and 3DEqualizer distortions model, add proper region of definition support.
  • RotoMerge: a merge plugin that takes an external mask as the alpha for the A input.
  • WriteFFmpeg: DNxHD codec now supports DNxHR HQ, DNxHR SQ and DNxHR LB profiles.
  • The plugins that were made available as beta features in the 2.1 releases are now considered stable:
  • DenoiseSharpen: new wavelet-based denoising plugin
  • EdgeBlur: Blur the image where there are edges in the alpha/matte channel.
  • EdgeDetect: Perform edge detection by computing the image gradient magnitude.
  • EdgeExtend: Fill a matte (i.e. a non-opaque color image with an alpha channel) by extending the edges of the matte.
  • ErodeBlur: Erode or dilate a mask by smoothing.
  • HueCorrect: Apply hue-dependent color adjustments using lookup curves.
  • HueKeyer: Compute a key depending on hue value.
  • KeyMix: Copies A to B only where Mask is non-zero.
  • Log2Lin: Convert from/to the logarithmic space used by Cineon files.
  • PIK: A per-pixel color difference keyer that uses a mix operation instead of a max operation to combine the non-backing screen channels.
  • PIKColor: Generate a clean plate from each frame for keying with PIK.
  • PLogLin: Convert between linear and log representations using the Josh Pines log conversion.
  • Quantize: Reduce the number of color levels with posterization or dithering
  • SeExprSimple: new simple expression plugin with one expression per channel
  • Sharpen & Soften: new plugins.
  • SlitScan: Per-pixel retiming.

New in Natron Portable 2.1.9 (Dec 5, 2016)

  • Natron:
  • Read/Write: Do not automatically set parameters when changing the filename (#1492). Creating a new Reader/Writer still sets those automatically.
  • ctrl-click on a node in the nodegraph (cmd-click on Mac) now opens its control-panel (same as double-click)
  • Curves with a single keyframe can now have a slope.
  • Fix gamma=0 in the viewer
  • Fix a bug where removing all control points from ColorLookup would crash the application
  • Fix bugs in curves drawing.
  • Fix potential crashes when using KDE on Linux
  • Fix a bug where Roto strokes drawn at a different frame of the current frame would disappear
  • Plugins:
  • ColorWheel: antialiased rendering
  • Rectangle: add rounded corners
  • PIKColor: fix black rims issue #1502, rework & optimize
  • PIKColor: remove hard limits on parameters b85f558
  • Grade & Gamma: fix behaviour when gamma=0
  • Shadertoy: support iChannelResolution

New in Natron Portable 2.1.8 (Nov 19, 2016)

  • Fix a bug where several images with file names that contain two numbers would be be considered as a sequence even if both numbers differed.
  • Fix a bug where a disabled Merge node would pas input A if the preferences say Merge should auto-connect to B (#1484)
  • Node Graph: hints for possible links between nodes are now only active when holding the Control key (Command on macOS) (#1488)
  • Roto: The default shortcuts to nudge Control Points has been changed to the num-pad 2,4,6 and 8 keys instead of the arrow keys which were conflicting with the timeline shortcuts. (#1408)
  • Fix a bug where the output channels of the Shuffle node could forget their link or expression (#1480)
  • Fix a bug where the focus on parameter would jump randomly (#1471)

New in Natron Portable 2.1.7 (Oct 28, 2016)

  • Fix a bug where PyPlugs would not load if the PYTHONPATH environment variable was set
  • Fix a bug in the file dialog

New in Natron Portable 2.1.6 (Oct 19, 2016)

  • Fix a bug where Natron would freeze or be extremely slow when using big node graphs
  • Plugins:
  • DenoiseSharpen: Use a more intuitive "Sharpen Size" parameter instead of "Sharpen Radius", and do not sharpen the noise. Add "Denoise Amount" parameter, which can be set to 0 to sharpen only.
  • ErodeBlur: fix the "Crop To Format" parameter (which did not work)
  • (beta feature) HueCorrect: Apply hue-dependent color adjustments using lookup curves.
  • (beta feature) HueKeyer: Compute a key depending on hue value.

New in Natron Portable 2.1.5 (Oct 12, 2016)

  • Bugs:
  • Windows: If Natron is not installed in Program Files using the installer, Fontconfig does not work properly thus the Text node will not work
  • Version 2.1.5:
  • Introduce the notion of "Format", which is basically the area of the image to be displayed (similar to the display window in OpenEXR). Each clip has a format attached, so a project can contain images of different sizes.
  • Fix a bug where deprecated plugins would not be loaded from project file 2561778
  • PyPlug: fix a bug where removing a node inside a Group would break any expression on its siblings
  • Reader: fix a bug where copy/pasting a node would display a "Bad Image Format" error
  • The whole user interface now uses the same font, and dialogs were cleaned up to use standard buttons
  • Roto: fix a bug where the selected tool in the viewer would not refresh properly
  • Fix a bug where Natron would not work properly when installed in a directory containing unicode characters
  • OpenEXR: fix a bug where auto-crop files would not have their origin placed correctly
  • Plugins:
  • Crop: add the "Extent" choice, to chose either a predefined format or a custom size
  • Blur: add the "Crop To Format" option.
  • Reformat: if input has a format, use it to compute the reformated output.
  • NoOp: can also set the format.
  • Shuffle: re-enable the "Output Components" choice"
  • Premult/UnPremult: don't try to check processed channel when rewiring the input
  • (beta feature) ErodeBlur: Erode or dilate a mask by smoothing.
  • (beta feature) KeyMix: Copies A to B only where Mask is non-zero.
  • (beta feature) PIK: A per-pixel color difference keyer that uses a mix operation instead of a max operation to combine the non-backing screen channels.
  • (beta feature) PIKColor: Generate a clean plate from each frame for keying with PIK.
  • (beta feature) Sharpen & Soften: new plugins.
  • (beta feature) EdgeExtend: Fill a matte (i.e. a non-opaque color image with an alpha channel) by extending the edges of the matte.

New in Natron Portable 2.1.4 (Sep 22, 2016)

  • Windows: Fix a bug where the UI would freeze for a long time when reading files over a network share
  • Python: Add ExprUtils class that adds helpers for FBM and Perlin noise (taken from Walt Disney Animation SeExpr library)
  • Tracker: fix add/remove jitter motion types
  • Fix creation of SeNoise node
  • Fix a bug where the data-window would not be read correctly with auto-crop EXR image sequences
  • Fix a bug where the group expand/fold feature would not work correctly

New in Natron Portable 2.1.2 (Jul 19, 2016)

  • Viewer: A new button can now force full-frame rendering instead of the visible portion. This may be useful to remove borders artifacts when panning/zooming during playback
  • Fix a bug where the Glow node would not work correctly
  • Windows: Fix a bug where the 32-bit version would crash on launch with AMD Graphic Cards
  • Fix a bug where the Read node would sometimes show an error dialog but everything was in fact fine
  • Fix a bug where changing the output filename in a Write node would reset encoder specific parameters
  • Tracker: when clicking "Set Input RoD" in the From points of the corner pin, automatically re-compute the To points over all keyframes
  • Tracker: A bug was found in the internal algorithm when tracking with a rotation/affine model. This was fixed in co-operation with Blender developers
  • Fix a bug where the .lock file of a project would not go away even if closing Natron correctly
  • Fix a bug where expressions would not work in some circumstances

New in Natron Portable 2.1.1 (Jul 13, 2016)

  • Fix a bug where enabling GPU rendering from the settings would not be taken into account correctly by the ShaderToy node
  • Fix a bug where panning the viewport during playback could show banding artifacts
  • Fix a bug where the Reformat node would not work properly when loading a project and then switching the Type parameter
  • Fix a crash when adding a control point to a roto shape with CTRL + ALT + LMB
  • Fix a bug where the writing of the OpenFX plug-ins loading cache was not thread-safe. Multiple Natron processes on a same node of a render farm could corrupt the cache thus failing some renders because plug-ins could not load
  • The Dilate/Erode nodes now have the Alpha checkbox checked by default and also have a parameter to expand the bounding box
  • The Auto-Turbo mode is now also enabled when writing out on disk

New in Natron Portable 2.1.0 (Jul 7, 2016)

  • The point tracker was completely reworked. It now uses libmv (from Blender). It now allows tracking different motion types (translation, rotation, scaling, perspective) and can be used for anything that needs match-moving or stabilizing.
  • Readers/Writers are now all under the same Read/Write node. If 2 readers/writers can decode/encode the same format, a drop-down allows to choose between them.
  • Python: it is now possible to pass extra properties to the createNode function to control how nodes are created, see Python reference.
  • (beta feature) New documentation for Natron: Whenever pressing the "?" button in the properties panel of a node, Natron will open-up a page in your web-browser with documentation for this node. Natron also has a user-guide that is work in progress. You may contribute to this user guide, follow these instructions to enrich the documentation.
  • (beta feature) Shadertoy is a new plugin that allows writing plugins using GLSL fragment shaders. It supports both GPU rendering using OpenGL and CPU rendering using Mesa.
  • (beta feature) OpenGL rendering is now supported (enable it in Preferences/GPU rendering). Tested with the Shadertoy plugin and the HitFilm Ignite plugins.
  • ColorLookup now has a background that makes it easier to use as a color ramp.
  • (beta feature) TextFX is a new text plugin with more features than the original text node(s).
  • (beta feature) ReadCDR is a new reader plugin that supports CorelDRAW(R) documents.
  • (beta feature) ReadPDF is a new reader plugin that supports PDF documents.

New in Natron Portable 2.0.5 (Jun 6, 2016)

  • Viewer: The number keys now always switch input A when not shifted, and B when shifted, even on keyboards where numbers should be shifted (such as French AZERTY).
  • Viewer: Reworked the wipe modes. added Onion Skin and stack modes.
  • Several bug fixes.
  • Support Tiffen plugins by DFT.

New in Natron Portable 2.0.3 (May 11, 2016)

  • Fixed a bug where some image sequences would fail to read when a first frame would be missing
  • Fixed a bug where a PyPlug containing another PyPlug would fail to load in some cases
  • Fixed a bug where the play button would not be pressed on all viewers during playback
  • Python: add a function to File parameters to reload the file
  • Fixed a bug where the gui could stop giving feedback when rendering
  • CTRL + left mouse button click can now be used on sliders to reset to their default value
  • Fixed Python call to the onProjectSave callback which would not work

New in Natron Portable 2.0.2 (Apr 21, 2016)

  • Second maintenance release for Natron 2.0. Features several bug fixes, compatibility fixes and enhancements.

New in Natron Portable 2.0.0 (Apr 21, 2016)

  • Python: PyPlugs can now be used to create toolsets, such as Split And Join in the views menu
  • New Glow PyPlug
  • New bloom node
  • The HSVTool node now has an analysis button to set the src color
  • The file dialog performances have been greatly improved
  • It is now possible to list all available drives in the file dialog on Windows
  • New progress panel to manage renders to cancel, queue, pause or restart them
  • EXR format reading/writing speed has been greatly improved
  • ReadFFMPEG/WriteFFMPEG performances have been improved
  • WriteFFMPEG has now a better interface to display possible format/codec combination
  • The viewer now has the ability to pause updates so that no render is triggered upon any change that would modify the displayed image
  • User interface for parameters has been improved and requires less mouse clicks
  • Undo/Redo shortcuts (CTRL-Z or CMD-Z on Mac) now follow the mouse over focus indicated on the interface tabs
  • The curve editor has received major speed enhancements when manipulating thousands of keyframes
  • The dope sheet zoom is now always appropriate, even for still images
  • Fixed issues on Linux/Windows where Natron interface would not display correctly on screens with high DPI
  • Fixed issues on Windows where file paths with non ASCII characters would not be read/written correctly
  • Fixed issues on Windows where reading from/writing to a network share would not work correctly
  • Value parameters can now have Python expressions written directly in their spinbox and can be used as calculators
  • A new demo project from Francois Grassard is available at downloads.natron.fr
  • It contains a fully-featured project demonstrating the use of a complex node-graph including usage of PyPlugs

New in Natron Portable 2.0.0 RC 6 (Apr 21, 2016)

  • New crash reporter to help stabilising the software
  • New Despill node
  • New Reformat node that replaces the old Resize node
  • Improved command-line options and stability using Python scripts
  • More responsive playback
  • Lots of stability fixes

New in Natron Portable 2.0.0 RC 5 (Apr 21, 2016)

  • Improve the creation of PyPlugs with better Page & Groups
  • New right click action on parameters to create an Alias on group to quickly create user parameters. By default they are no longer linked with an expression but with an internal link instead.
  • Fix stability issues

New in Natron Portable 2.0.0 RC 4 (Apr 21, 2016)

  • Write nodes now have a Frame Increment parameter which allows to skip frames while rendering
  • The command-line parameters and Python API have been updated in this regard (see Python documentation)
  • Fix multiple bugs when rendering a multi-layered exr
  • Linux: when crashing, Natron will now print a backtrace if launched from the Terminal. This is temporary and will be soon replaced by a cross-platform crash reports handler
  • RotoPaint: enhancements in the rendering algorithm
  • Color, Double and Integer parameters can now have an expression entered directly in a SpinBox for convenience
  • NodeGraph: optimize for speed when the scene contains a lot of nodes and add auto-scrolling when reaching the border of the view

New in Natron Portable 2.0.0 RC 3 (Apr 21, 2016)

  • The Read node can now read multi-view EXR files. Decoding speed of EXR has been greatly improved.
  • The Write node can now write multi-view and multi-layered EXR files. Encoding speed of EXR has been greatly improved.
  • Viewer: The channel selected in the "Alpha channel" drop-down can now be overlayed on the image when using the "Matte" display channels
  • The RotoPaint/Roto Transform and Clone tabs now have a viewer handle overlay to help manipulating the parameters
  • DopeSheet and CureEditor: The scaling interactions with the bounding box of selected keyframes are now correct but may lead to keyframes being located at floating point times.
  • A "P" indicator at the bottom right of a node will indicate that a node is a pass-through. Hovering the mouse over the "P" will indicate from which input this node is a pass-through of. The pass-through input will also be indicated with a plain arrow whereas all other inputs will have their arrow dashed.
  • Python API: it is now possible to retrieve the layers available on a node with the getAvailableLayers() function, see Python Reference

New in Natron Portable 2.0.0 RC 2 (Apr 21, 2016)

  • Fix a crash with the Shuffle node
  • Fix multiple bugs where reading some layers would not be possible from multi-layered files
  • New TimeDissolve node
  • Roto/RotoPaint: add a "Premultiply" parameter
  • The HostName Preference is now a dropdown menu
  • The Write node can now have custom tile size when writing EXR files. It is also possible to write multiple channels into the EXR.
  • On Windows the console is now hidden by default. It is possible to show it from the Display menu.

New in Natron Portable 2.0.0 RC 1 (Apr 21, 2016)

  • Nodes group to have cleaner graphs with hidden sub-nodegraphs
  • PyPlug: You can export a group as a Python plug-in and it be re-used in any other project as a single node as you would use any other plug-in
  • SeExpr integration within a node: http://www.disneyanimation.com/technology/seexpr.html
  • New SeNoise and SeGrain nodes based on SeExpr
  • RotoPaint node with Wacom tablets support
  • DopeSheet editor: This is where you can control easily keyframes and clips in time for motion graphics purposes
  • Render statistics: Available in the Render menu, use this to debug complex compositions
  • New Text plug-in with much more controls than the previous Text node
  • New TextPango node based on the Pango library to directly input Pango Markup Language (html-like), see https://github.com/olear/openfx-arena/wiki/Pango
  • Many new nodes, based on the ImageMagick library: ReadPSD, ReadSVG, Charcoal, Oilpaint, Sketch, Arc, Polar, Polaroid, Reflection, Roll, Swirl, Tile, Texture
  • Rewrote entirely the WriteFFMPEG and ReadFFMPEG nodes. Most widely used codecs are supported
  • New merge operators: grain-extract, grain-merge, color, hue, luminosity
  • New gamma and gain controllers on the viewer
  • Multiple viewers can now have their projection synchronised to enhance image comparison
  • Support for multi-layered workflows for cleaner graphs
  • Better support for multi-view workflows
  • Various performance and stability enhancements across the board
  • New nodes:
  • STMap
  • IDistort
  • LensDistortion
  • TimeBlur
  • OCIODisplay node
  • GmicEXPR, to enter GMIC expressions
  • Python 2.7 API:
  • Parameters expressions
  • User-defined parameters
  • Script editor to control the application overall
  • User-defined python callbacks
  • Integration of Pyside to the GUI so that the interface is extensible with new menus and windows
  • Python API is available at http://natron.readthedocs.org

New in Natron Portable 1.2.1 (Apr 21, 2016)

  • New GodRays and DirBlur nodes
  • New RGBToHSI/HSIToRGB YUVToRGB/RGBToYUB YCbCrToRGB/RGBToYCbCr nodes
  • Fixed a bug where some TIFF files would not read correctly on Windows versions of Natron
  • FIxed a bug where a crash could occur with the Merge node with mix = 0
  • Fixed a bug where ReadFFMPEG would sometimes decode incorrectly files with bit depth higher than 8
  • Miscellaneous stability fixes