Release 2.1.3

Features added

  • added curve_info Operator. > node_calculator/issues/82 & 87
  • added reset_cleanup function to reset the cleanup-stack. > node_calculator/issues/83

Bugs fixed

  • More robust shape node creation and naming. > node_calculator/issues/86
  • More descriptive error message when node doesn’t exist or isn’t unique. > node_calculator/issues/84
  • PyMel is only loaded when necessary. > node_calculator/issues/85

Release 2.1.2

Features added

  • Added the following operators: > node_calculator/issues/80

    • sum
    • quatAdd
    • quatConjugate
    • quatInvert
    • quatNegate
    • quatNormalize
    • quatProd
    • quatSub
    • quatToEuler
    • eulerToQuat
    • holdMatrix
    • reverse
    • passMatrix
    • remapColor
    • remapHsv
    • rgbToHsv
    • wtAddMatrix
    • closestPointOnMesh
    • closestPointOnSurface
    • pointOnSurfaceInfo
    • pointOnCurveInfo
    • nearestPointOnCurve
    • fourByFourMatrix
  • Operator unittests are more generic now: A dictionary contains which inputs/outputs to use for each Operators test.

  • Added more unittests for some issues that came up: non-unique node names, aliased attributes, accessing shape-attributes through the transform (see Features added in Release 2.1.1). > node_calculator/issues/76

Bugs fixed

  • sum(), average() and mult_matrix() operators now work correctly when given lists/tuples/NcLists as args.

Release 2.1.1

Bugs fixed

  • Now supports non-unique names > node_calculator/issues/74
  • Catch error when user sets a non-existent attribute on an NcList item (now only throws a warning) > node_calculator/issues/73

Release 2.1.0

Incompatible changes

  • Careful: The actual NodeCalculator now lives in the node_calculator INSIDE the main repo! It’s not at the top level anymore.
  • The decompose_matrix and pair_blend Operators now have a “return_all_outputs”-flag. By default they return an NcNode now, not all outputs in an NcList! > node_calculator/issues/67

Features added

  • Tests are now standalone (not dependent on CMT anymore) and can be run from a console! Major kudos to Andres Weber!
  • CircleCi integration to auto-run checks whenever repo is updated. Again: Major kudos to Andres Weber!
  • The default Operators are now factored out into their own files: & > node_calculator/issues/59
  • It’s now possible to set attributes on the shape from the transform (mimicking Maya behaviour). Sudo example: pCube1.outMesh (instead of requiring pCube1Shape.outMesh) > node_calculator/issues/69
  • The noca.cleanup(keep_selected=False) function allows to delete all nodes created by the NodeCalculator to unclutter heavy prototyping scenes. > node_calculator/issues/63

Bugs fixed

  • The dot-Operator now correctly returns a 1D result (returned a 3D result before) > node_calculator/issues/68

Release 2.0.1

Bugs fixed

  • Aliased attributes can now be accessed (om_util.get_mplug_of_mobj couldn’t find them before)
  • Operation values of zero are now set correctly (they were ignored)

Release 2.0.0


Incompatible changes

  • “output” is now “outputs” in!
  • multi_input & multi_output doesn’t have to be declared anymore! The tag “{array}” will cause an input/output to be interpreted as multi.


  • Container support. It wasn’t properly implemented and Maya containers are not useful (imo).

Features added

  • Easy to add custom/proprietary nodes via extension
  • Convenience functions for transforms, locators & create_node.
  • auto_consolidate & auto_unravel can be turned off (globally & individually)
  • Indexed attributes now possible (still a bit awkward, but hey..)
  • Many additional operators.
  • Documentation; NoCa v2 cheat sheet!
  • om_util with various OpenMaya functions
  • Many other small improvements.
  • Any attr type can now be created.
  • Attribute separator convenience function added. Default values can be specified in
  • to make it easy and clear where to change basic settings.
  • Default extension for Serguei Kalentchouk’s maya_math_nodes
  • Tests added, using Chad Vernon’s test suite

Bugs fixed

  • Uses MObjects and MPlugs to reference to Maya nodes and attributes; Renaming of objects, attributes with index, etc. are no longer an issue.
  • Cleaner code; Clear separation of classes and their functionality (NcList, NcNode, NcAttrs, NcValue)
  • Any child attribute will be consolidated (array, normal, ..)
  • Tracer now stores values as variables (from get() or so)
  • Conforms pretty well to PEP8 (apart from tests)


Features removed

Release 1.0.0

  • First working version: Create, connect and set Maya nodes with Python commands.