Coconodz
A unified and configurable Nodegraph wrapper for Visual Effects Applications
Install / Use
/learn @rkoschmitzky/CoconodzREADME
CocoNodz
A unified and configurable Nodegraph wrapper for Visual Effects Applications
Table of Contents
<br>Project Goals
CocoNodz aims to provide a simple framework to integrate a unified and flexible Nodegraph into applications that supports Python and PyQt/PySide. Main Goals:
- use a single nodegraph between different applications and plattforms on OSX, linux, Windows
- customize and extend it where native applications nodegraph are lacking functionality or limiting customizability
- provide a simple system for users to extend it with custom code snippets
- load and share shading networks
Documentation
<br>Required or useful environment variables
| Environment variable | Type | Description |:------------------------|:------|:------------ | COCONODZ_STARTUP | str | root path to coconodz, will be needed for any host integration | COCONODZ_IGNORE_HOST | bool |coconodz is able to detect the host application, set this to 1 if you want to use it without any host integration | QT_PREFERRED_BINDING | str | specifies the preferred Qt binding
Nodegraph hotkeys
| Default Shortcut | Description |:-----------------|:------------ | RMB | opens the context-aware graph widget | Alt + RMB | zooms in and out the nodegraph canvas | Tab | opens the node creation widget | F | focus selected nodes | Ctrl + S | opens the node search widget | L | layouts selected nodes
<br>
overall configuration
| Value | Type |Description |:---------------------------------|:-------|:------------ | output_verbosity | string | logging verbosity, supported are "critical", "error", "warning", "info", "debug" | scene_width | int | default graph width | scene_height | int | default graph height | grid_size | int | default graph grid size | antialiasing | bool | | antialiasing_boost | bool | | smooth_pixmap | bool | | attribute_order | string | attribute creation order, supported are "top", "bottom", "alphabetical" | available_node_types | list | the nodetypes that will be available in the creation field widget by default | default_attribute_name | string | name of the default attribute | default_attribute_data_type | string | datatype of the default attribute | default_socket | bool | if true it will add the attribute as socket | default_plug | bool | if true it will add the attribute as plug | node_font | string | font used for all nodes | node_font_size | int | font size used for all nodes | attr_font | string | font used for all attributes | attr_font_size | int | font size used for all attributes | mouse_bounding_box | int | | node_width | int | default node width | node_height | int | default node height | node_radius | int | default node radius | node_border | int | default node border size | node_attr_height | int | default attribute height | connection_width | int | default connection pixel width | grid_color | list | color the canvas grid will use | slot_border | list | | non_connectable_color | list | color the connection will use when attributes are not connectable, RGBA color list 0-255 | connection_highlight:color | list | color when hovering over a connection, RGBA color list 0-255 | connection_text_color | list | text color when hovering over a connection, RGBA color list 0-255 | connection_interpolation | string | connection shape, "bezier", linear | connection_inherit_datatype_color| bool | if true connection will use the color specified for data type | connection_color | list | default color the connection when not inheriting the data type color, RGBA color list 0-255 | layout_margin_size | int | | backdrop color | list | default backdrop color, RGBA color list 0-255 | backdrop_border_color | list | default backdrop border color, RGBA color list 0-255 | backdrop_bounds | list | default position and size of a backdrop, x, y, width, height | backdrop_title_font_size | int | default font size for backdrop titles | backdrop_description_font_size | int | default font size for backdrop descriptions | backdrop_font | int | default backdrop title and description font
<br>node configuration
The configuration color configuration per node type, it needs to start with node_ followed by the nodetype and must include specific values.
| Value | Type |Description |:---------------------------------|:-------|:------------ | bg | list | node color, RGBA color list 0-255 | border | list | node border color when node is unselected, RGBA color list 0-255 | border_sel | list | node border color when node is selected, RGBA color list 0-255 | text | list | node text color, RGBA color list 0-255
node_default will be used for all unspecified node types
<br>attribute configuration
Same as in the node configuration color configuration per attribute data type can be specified, it needs to start with attr_ followed by the nodetype and must include specific values.
| Value | Type |Description |:---------------------------------|:-------|:------------ | bg | list | attribute background color, RGBA color list 0-255 | text | list | attribute text color, RGBA color list 0-255 | plug | list | attribute plug color, RGBA color list 0-255 | socket | list | attribute slot color, RGBA color list 0-255
<br>reserved node types
backdrop
CocoNodz is supporting backdrop nodes to help grouping nodes, similar to backdrops in The Foundry's Nuke.
dot
Dot nodes are planned...
<br>Integrations
CocoNodz offers integrations for the following Applications
<br>Standalone
<br>Autodesk Maya Integration
How to install the CocoNodz Maya plugin
To use CocoNodz within Maya you have to add the following paths to your environment.
COCONODZ_STARTUP=<path to coconodz root>
MAYA_PLUG_IN_PATH=<path to coconodz root>\etc\maya\plugin
maya configuration
The Maya integration allows additional configurations
| Value | Type |Description |:---------------------------------|:-------|:------------ | docked | bool | specified if the window will be dockable or not | dock_area | string | specifies the default dock area when the nodegraph will be docked | allowed_dock_areas | string | specifies if the dockable window can be docked left, right or everywhere, supported are "left", "right", "all" | floating | bool | specifies is the window will be docked or float | width | int | default width of the window | height | int | default height of the window | available_node_categories | list | will add multiple node types based on the node type categories, e.g: "shader", "texture"
Launch Maya and load the coconodz.py plugin. After successful initizalization you should be able to see a CocoNodz menu in Maya's menubar.
The Foundry Katana Integration
To use CocoNodz within Katana you have to add the following paths to your environment.
QT_PREFERRED_BINDING=PyQt4
QT_SIP_API_HINT=1
COCONODZ_STARTUP<path to coconodz root>\coconodz
KATANA_RESOURCES<path to coconodz root>\etc\katana
