# OpenColorIO

## Open Source Color Management

Home Compatible Software Configurations Installation User Guide Developer guide FAQ Downloads ChangeLog License ### Quick search | # ChangeLog Version 1.0.8 (Dec 11 2012): After Effects plugin Core increased precision for matrix inversion Core md5 symbols no longer leaked CMake compatibility with OIIO 1.0 namespacing Cmake option to control python soname Nuke register_viewers defaults OCIODisplay to “all” Nuke ColorLookup <-> spi1d lut examples Windows uses boost shared_ptr by default Windows fixed csp writing Windows build fixes ociobakelut supports looks Version 1.0.7 (April 17 2012): IRIDAS .look support ociolutimage utility added (handles image <-> 3dlut) CMake build allows optional reliance on system libraries CMake layout changes for python and nuke installs Bumped internals to yaml 0.3.0, pystring 1.1.2 Optimized internal handling of Matrix / Exponent Ops Added INTERP_BEST interpolation option Python config.clearLooks() added Python docs revamp Nuke config-dependent knob values now baked into .nk scripts Nuke OCIOLookTransform gets reload button Nuke nodes get updated help text Version 1.0.6 (March 12 2012): JNI (Java) updates ocioconvert arbitrary attr support Version 1.0.5 (Feb 22 2012): Internal optimization framework added SetLoggingLevel(..) bugfix Python API Documentation / website updates Clang compilation fix Version 1.0.4 (Jan 25 2012): ocio2icc deprecated (functionality merged into ociobakelut) rv integration (beta) nuke: updated channel handling Documentation / website updates Version 1.0.3 (Dec 21 2011): Tetrahedral 3dlut interpolation (CPU only) ociocheck and Config.sanityCheck() have improved validation Mari: updated examples Makefile: misc updates to match distro library conventions Version 1.0.2 (Nov 30 2011): 3D lut processing (cpu) is resiliant to nans Nuke OCIOFileTransform gains Reload buttons Installation on multi-lib *nix systems improved Installation handling of soversion for C++/python improved ociobakelut improvements Initial version of Java bindings (alpha) Version 1.0.1 (Oct 31 2011): Luts with incorrect extension are properly loaded ocio2icc / ociobakelut get –lut option (no longer requires ocio config) DisplayTransform looks do not apply to ‘data’ passes. Version 1.0.0 (Oct 3 2011): ABI Lockoff for 1.0 branch General API Cleanup (removed deprecated / unnecessary functions) New features can be added, but the ABI will only be extended in a binary compatible manner. Profiles written from 1.0 will always be readable in future versions. Fixed Truelight Reading Bug ocio2icc no longer requires ocio config (can provide raw lut(s) Version 0.8.7 (Oct 3 2011): Fixed Truelight Reading Bug Version 0.8.6 (Sept 7 2011): Updated .ocio config reading / writing to be forwards compatibile with 1.0 (Profiles written in 0.8.6+ will be 1.0 compatible. Compatibility from prior versions is likely, though not guaranteed.) Better logging Added ColorSpace.equalitygroup (makes ColorSpace equality explicit) Substantial Nuke node updates Added support for Iridas .itx read/write Windows Build Support Version 0.8.5 (Aug 2 2011): Nuke OCIODisplay fixed (bug from 0.8.4) Updated Houdini HDL Reader / Writer Version 0.8.4 (July 25 2011): Native Look Support Core / Nuke OCIODisplay supports alpha viewing Added Houdini (.lut) writing Added Pandora (.mga,.m3d) reading Additional internal bug fixes Version 0.8.3 (June 27 2011): OCIO::Config symlink resolution fixed (bugfix) Nuke OCIODisplay knobs use string storage (bugfix) Makefile cleanup Documentation cleanup Version 0.8.2 (June 7 2011): Numerous Windows compatibility fixes Python binding improvements OCIO::Baker / ociobakelut improvements Lut1D/3D do not crash on nans (bugfix) Nuke UI doesnt crash in known corner case (bugfix) Version 0.8.1 (May 9 2011): New roles: TEXTURE_PAINT + MATTE_PAINT Mari API Example (src/mari) FileFormat registry updated to allow Windows + Debug support boost_ptr build compatibility option Version 0.8.0 (Apr 19 2011): ABI Lockoff for stable 0.8 branch New features can be added, but the ABI will only be extended in a binary compatible manner Otherwise identical to 0.7.9 Version 0.7.9 (Apr 18 2011): Added support for .vf luts Misc. Nuke enhancements Adds optional boost ptr support (backwards compatibility) Makefile enhancements (Nuke / CMAKE_INSTALL_EXEC_PREFIX) cdlTransform.setXML crash fix Version 0.7.8 (March 31 2011): Iridas lut (.cube) bugfix, DOMAIN_MIN / DOMAIN_MAX now obeyed Exposed GPU functions in python (needed for Mari) Nuke OCIODisplay cleanup: Fixed knob names and added envvar support ociobaker cleanup tinyxml ABI visibility cleaned up Removed Boost dependency, tr1::shared_ptr now used instead Version 0.7.7 (March 1 2011): Lut baking API + standalone app Truelight runtime support (optional) Cinespace (3d) lut writing CSP prelut support Boost argparse dependency removed SanityCheck is more exhaustive FileTransform supports relative path dirs Python enhancements (transform kwarg support) Makefile enhancements (OIIO Path) Processor API update (code compatible, binary incompatible) Version 0.7.6 (Feb 1 2011): Updated Config Display API (.ocio config format updated) Added ocio2icc app (ICC Profile Generation) Revamp of ASC CDL, added .cc and .ccc support Documentation Improvements Makefile enhancements (Boost_INCLUDE_DIR, etc) Version 0.7.5 (Jan 13 2011): ociodisplay enhancements gpu display bugfix (glsl profile 1.0 only) Makefile enhancements Nuke installation cleanup Doc generation using sphinx (html + pdf) Version 0.7.4 (Jan 4 2011): Added ‘Context’, allowing for ‘per-shot’ Transforms Misc API Cleanup: removed old functions + fixed const-ness Added config.sanityCheck() for validation Additional Makefile configuration options, SONAME, etc. Version 0.7.3 (Dec 16 2010): Added example applications: ociodisplay, ocioconvert Makefile: Add boost header dependency Makefile: Nuke plugins are now version specific Fixed bug in GLSL MatrixOp Version 0.7.2 (Dec 9 2010): GPUAllocation refactor (API tweak) Added AllocationTransform Added LogTransform Removed CineonLogToLinTransform A few bug fixes Version 0.7.1 (Nov 15 2010): Additional 3d lut formats: Truelight .cub + Iridas .cube FileTransform supports envvars and search paths Added Nuke plugins: LogConvert + FileTransform Improved OCIO profile formatting GCC visibility used (when available) to hide private symbols A few bug fixes Version 0.7.0 (Oct 21 2010): Switched file format from XML to Yaml Version 0.6.1 (Oct 5 2010): Exposed ExponentTransform Added CineonLogToLinTransform - a simple ‘straight-line’ negative linearization. Not strictly needed (could be done previously with LUTs) but often convenient to have. Added DisplayTransform.displayCC for post display lut CC. Many python improvements A few bug fixes A few Makefile enhancements Version 0.6.0 (Sept 21 2010): Start of 0.6, “stable” branch All 0.6.x builds will be ABI compatible (forward only). New features (even experimental ones) will be added to the 0.6 branch, as long as binary and source compatibility is maintained. Once this no longer is possible, a 0.7 “dev” branch will be forked. Split public header into 3 parts for improved readability (you still only import <OpenColorIO/OpenColorIO.h> though) Added MatrixTransform Refactored internal unit testing Fixed many compile warnings Version 0.5.16 (Sept 16 2010): PyTransforms now use native python class inheritance OCIO namespace can now be configured at build time (for distribution in commercial apps) Updated make install behavior DisplayTransform accepts generic cc operators (instead of CDL only) A few bug fixes / compile warning fixes Version 0.5.15 (Sept 8 2010): OCIO is well behaved when $OCIO is unset, allowing un-color-managed use. Color Transforms can be applied in python config->getProcessor Simplification of API (getColorSpace allows cs name, role names, and cs objects) Makefile enhancements (courtesy Malcolm Humphreys) A bunch of bug fixes Version 0.5.14 (Sept 1 2010): Python binding enhancements Simplified class implmentations (reduced internal header count) Version 0.5.13 (Aug 24 2010): GPU Processing now supports High Dynamic Range color spaces Added log processing operator Numerous bug fixes Numerous enhancements to python glue Exposed PyOpenColorIO header, for use in apps that require custom python glue Matrix op is optimized for diagonal-only subcases Numerous changes to Nuke Plugin (now with an addition node, OCIODisplay) Version 0.5.12 (Aug 18 2010): Additional DisplayTransform improvements Additional GPU Improvements Added op hashing (processor->getGPULut3DCacheID) Version 0.5.11 (Aug 11 2010): Initial DisplayTransform implementation ASC CDL Support Config Luma coefficients Version 0.5.10 (July 22 2010): Updated Nuke Plugin, now works in OSX Fixed misc. build warnings. Continued GPU progress (still under development) Version 0.5.9 (June 28 2010): Renamed project, classes, namespaces to OpenColorIO (OCIO) Added single-pixel processor path Improved python path makefile detection Continued GPU progress (still under development) Version 0.5.8 (June 22 2010): Support for .3dl Support for matrix ops Code refactor (added Processors) to support gpu/cpu model Much better error checking Compilation support for python 2.5 Compilation support for OSX Version 0.5.7 (June 14 2010): Python API is much more fleshed out Improved public C++ header Version 0.5.6 (June 8 2010): PyConfig stub implementation Dropped ImageDesc.init; added PlanarImageDesc / PackedImageDesc Dropped tr1::shared_ptr; added boost::shared_ptr Version 0.5.5 (June 4 2010): .ocio supports path references Switch config envvar to $OCIO Added 3D lut processing ops Version 0.5.4 (June 1 2010): Initial Release CMake linux support XML OCIO format parsing / saving Example colorspace configuration with a few ‘trivial’ colorspaces Mutable colorspace configuration API Support for 1D lut processing Support for SPI 1D fileformats. Nuke plugin