Gaffer - Image Engine's open-source look-dev application / framework

I’ve just stumbled upon an extremely interesting project called Gaffer coming from Image Engine’s open-source kitchen. It’s an application framework focused on writing node-based VFX apps under the surface and a look dev/lighting/compositing app very similar in concept to Katana on top of it. It’s based on Cortex and Python and provides 3Delight, Arnold, Alembic, OpenColorIO and OpenImageIO support amongst other things. Similar to Katana, it can handle complex scenes gracefully, loading only those elements that are active for viewing/editing at the moment and it can be integrated for an interactive workflow with other apps (for ex. acting as a shader authoring tool or lighting tool for Maya). While it may seem pretty rudimentary at the moment, it shows quite a potential down the line.

http://imageengine.github.io/gaffer/index.html
http://imageengine.github.io/gaffer/demos.html
http://imageengine.github.io/gaffer/resources/documents/latest/GafferUserGuide.pdf

Looks interesting. Although I do most of that stuff directly ind Blender.

I heard of katana but never really grasped what the program actually is for. Could some one point me out a couple of really good things I could do better in such a program rather then directly in the 3d package?

However thanks for the interesting report! :slight_smile:

Well i never used it ; but i think it is for huge library management.When I saw the demonstration presentation i remember saying “interesting” , by it self it lets you edit parameters of objects,scenes and materials but when used with conjunction with a 3d package and compositor / nuke it makes the workflow and complex scenes manageable …

it is like a library manager which directly works with render plates… a uber-fancy-detailed outliner / data sheet manager

I understand… well outliner sure is a really important thing for huge projects!

Looks neat! Thanks for sharing.

Not available for Windows though? There isn’t anything in the User Guide about building on Windows either… blargh. I miss Linux.

Off the top of my head, one big advantage of Gaffer (and Katana) compared to “regular” 3D apps like Blender, Maya, etc. is the deferred loading of 3D assets. Meaning that the complete scene can have hundreds and hundreds of millions of polygons, but the user can control which objects are loaded into memory and shown in the viewport and which are represented just with their bounding box. That way you can work with extremely heavy scenes without needing an insane amount of RAM.

Another advantage is the procedural nodal workflow, which once again enables the user to deal with complex scenes that have a huge number of objects/lights/shaders/textures/etc. in an elegant way. For ex. since the assets are stored separately from the scene and are only referenced by the scene, handling changes and different versions of the assets is straight forward. Trying different assets or different versions of the same asset is as simple as disconnecting one node and connecting another or even better using a switch node that controls which upstream node is passed on downstream.

Yet another advantage also related to the nodal approach is the simplicity of building reusable lighting/shading/etc. setups, that can be encapsulated and then have them present only the relevant controls to the user. And so on…

Regarding Katana, it is a look-dev/lighting/compositing app, designed to handle extremely complex scenes. Here is a good overview both as a white paper and as demo videos:
http://www.thefoundry.co.uk/articles/2011/02/21/221/katana-white-paper/
http://www.thefoundry.co.uk/products/katana/customer-demos/

AFAIK both Katana and Gaffer don’t have any modelling, object animation, painting or similar asset creation capabilities. They instead rely on previously prepared assets (for ex. Alembic files) to “populate” the scene.

Unfortunately there are no pre-built Gaffer binaries for Windows at the moment. I don’t know how difficult it would be to build it from the source, though.

With Gooseberry production starting soon, maybe some of these concepts should be revisited? Especially the non-direct management of assets over a 3D View method.

Gaffer seems pretty nice. It would be cool to have Gaffer integration in Blender like in this video.

Maybe then the folks at ImageEgnine could even integrate Cycles as a supported render engine.

https://github.com/johnhaddon/gafferCycles :slight_smile:

Interesting post DingTo, thanks. : )

One of these days I’ll get around to adding a IECoreCycles module to my blender cortex library –> https://developer.blender.org/D422

Need to finish up the basics first and then restructure how the C++/python bindings are generated since now everything is just clumped into a single lib to make is easier for testing.