Eric Mehl of Hypothetical has been busy using Gaffer’s procedural scene generation and rendering to recreate Welikia, the ecosystem of New York City before settlement by Europeans. There’s an overview of the work on Hypothetical’s website, and a discussion of the Gaffer workflow on their blog. Windows users might know Eric from his Herculean efforts to port Gaffer to Windows, and his integration of Deadline with Gaffer. Thanks for sharing, Eric!
It is common to prototype code in the Python Editor, and you may think to do this when you need write some code for an Expression. Beware, though they look deceptively similar, the full Gaffer API is not available in expressions, and references to plugs behave quite differently.
This sometimes leads to an attempt to call something like parent["Sphere"]["radius"].getValue() in an expression, and an exception like the following :
ERROR [Execution error] Expression1.__execute :"python/Gaffer/PythonExpressionEngine.py", line 88, in execute
line 1, in <module> AttributeError: 'float' object has no attribute 'getValue'
Gaffer 0.58 contains a caching optimisation that can significantly improve interactive performance in many cases. But this optimisation can also reveal subtle bugs in Nodes that may have gone unnoticed until now. In this post we’ll explore why that is the case, and outline some useful strategies for catching and eradicating such bugs from your custom nodes.