Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rkoschmitzky/coconodz
A unified and configurable Nodegraph wrapper for Visual Effects Applications
https://github.com/rkoschmitzky/coconodz
autodesk-maya cg foundry graphics-programming katana maya maya-plugin mayaapi nodegraph pipeline pymel pyqt pyqt4 pyqt5 pyside pyside2 python qt vfx
Last synced: 3 months ago
JSON representation
A unified and configurable Nodegraph wrapper for Visual Effects Applications
- Host: GitHub
- URL: https://github.com/rkoschmitzky/coconodz
- Owner: rkoschmitzky
- License: mit
- Created: 2017-06-11T13:04:13.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-02-05T22:38:31.000Z (about 7 years ago)
- Last Synced: 2023-03-01T20:22:46.319Z (almost 2 years ago)
- Topics: autodesk-maya, cg, foundry, graphics-programming, katana, maya, maya-plugin, mayaapi, nodegraph, pipeline, pymel, pyqt, pyqt4, pyqt5, pyside, pyside2, python, qt, vfx
- Language: Python
- Homepage: http://ricokoschmitzky.com/
- Size: 331 KB
- Stars: 32
- Watchers: 7
- Forks: 6
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# CocoNodz
A unified and configurable Nodegraph wrapper for Visual Effects Applications## Table of Contents
- [Project Goals](#project-goals)
- [Documentation](#documentation)
- [Environment Variables](#required-or-useful-environment-variables)
- [Nodegraph Hotkeys](#nodegraph-hotkeys)
- [Integrations](#integrations)
- [Standalone](#standalone)
- [Autodesk Maya Integration](#autodesk-maya-integration)
- [The Foundry Katana Integration](#the-foundry-katana-integration)
## 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
#### 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---
#### 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
#### 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
#### 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
### 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...
## Integrations
CocoNodz offers integrations for the following Applications- [Autodesk Maya Integration](#autodesk-maya-integration)
- [The Foundry Katana Integration](#the-foundry-katana-integration)
### Standalone
### 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=
MAYA_PLUG_IN_PATH=\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\coconodz
KATANA_RESOURCES\etc\katana
```---