{"id":20246246,"url":"https://github.com/rkoschmitzky/coconodz","last_synced_at":"2025-04-10T21:12:29.321Z","repository":{"id":49371358,"uuid":"94004846","full_name":"rkoschmitzky/coconodz","owner":"rkoschmitzky","description":"A unified and configurable Nodegraph wrapper for Visual Effects Applications","archived":false,"fork":false,"pushed_at":"2018-02-05T22:38:31.000Z","size":339,"stargazers_count":33,"open_issues_count":14,"forks_count":6,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-10T21:12:23.957Z","etag":null,"topics":["autodesk-maya","cg","foundry","graphics-programming","katana","maya","maya-plugin","mayaapi","nodegraph","pipeline","pymel","pyqt","pyqt4","pyqt5","pyside","pyside2","python","qt","vfx"],"latest_commit_sha":null,"homepage":"http://ricokoschmitzky.com/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rkoschmitzky.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-06-11T13:04:13.000Z","updated_at":"2025-03-21T04:52:01.000Z","dependencies_parsed_at":"2022-09-01T06:02:15.968Z","dependency_job_id":null,"html_url":"https://github.com/rkoschmitzky/coconodz","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rkoschmitzky%2Fcoconodz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rkoschmitzky%2Fcoconodz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rkoschmitzky%2Fcoconodz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rkoschmitzky%2Fcoconodz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rkoschmitzky","download_url":"https://codeload.github.com/rkoschmitzky/coconodz/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248298316,"owners_count":21080320,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["autodesk-maya","cg","foundry","graphics-programming","katana","maya","maya-plugin","mayaapi","nodegraph","pipeline","pymel","pyqt","pyqt4","pyqt5","pyside","pyside2","python","qt","vfx"],"created_at":"2024-11-14T09:28:06.596Z","updated_at":"2025-04-10T21:12:29.289Z","avatar_url":"https://github.com/rkoschmitzky.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CocoNodz\nA unified and configurable Nodegraph wrapper for Visual Effects Applications\n\n\n## Table of Contents\n\n- [Project Goals](#project-goals)\n- [Documentation](#documentation)\n   - [Environment Variables](#required-or-useful-environment-variables)\n   - [Nodegraph Hotkeys](#nodegraph-hotkeys)\n- [Integrations](#integrations)\n   - [Standalone](#standalone)\n   - [Autodesk Maya Integration](#autodesk-maya-integration)\n   - [The Foundry Katana Integration](#the-foundry-katana-integration)\n\n\u003cbr\u003e\n\n## Project Goals\nCocoNodz aims to provide a simple framework to integrate a unified and flexible Nodegraph into applications that supports Python and PyQt/PySide.\nMain Goals:\n\n- use a single nodegraph between different applications and plattforms on OSX, linux, Windows\n- customize and extend it where native applications nodegraph are lacking functionality or limiting customizability\n- provide a simple system for users to extend it with custom code snippets\n- load and share shading networks\n\n\u003cbr\u003e\n\n### Documentation\n\n\u003cbr\u003e\n\n#### Required or useful environment variables\n| Environment variable    | Type  | Description\n|:------------------------|:------|:------------\n| COCONODZ_STARTUP        | str   | root path to coconodz, will be needed for any host integration\n| 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\n| QT_PREFERRED_BINDING    | str   | specifies the preferred Qt binding\n\n#### Nodegraph hotkeys\n\n| Default Shortcut | Description\n|:-----------------|:------------\n| RMB              | opens the context-aware graph widget\n| Alt + RMB        | zooms in and out the nodegraph canvas\n| Tab              | opens the node creation widget\n| F                | focus selected nodes\n| Ctrl + S         | opens the node search widget\n| L                | layouts selected nodes\n\n---\n\u003cbr\u003e\n\n#### overall configuration\n\n| Value                            |  Type  |Description\n|:---------------------------------|:-------|:------------\n| output_verbosity                 | string | logging verbosity, supported are \"critical\", \"error\", \"warning\", \"info\", \"debug\"\n| scene_width                      | int    | default graph width\n| scene_height                     | int    | default graph height\n| grid_size                        | int    | default graph grid size\n| antialiasing                     | bool   |\n| antialiasing_boost               | bool   |\n| smooth_pixmap                    | bool   |\n| attribute_order                  | string | attribute creation order, supported are \"top\", \"bottom\", \"alphabetical\"\n| available_node_types             | list   | the nodetypes that will be available in the creation field widget by default\n| default_attribute_name           | string | name of the default attribute\n| default_attribute_data_type      | string | datatype of the default attribute\n| default_socket                   | bool   | if true it will add the attribute as socket\n| default_plug                     | bool   | if true it will add the attribute as plug\n| node_font                        | string | font used for all nodes\n| node_font_size                   | int    | font size used for all nodes\n| attr_font                        | string | font used for all attributes\n| attr_font_size                   | int    | font size used for all attributes\n| mouse_bounding_box               | int    |\n| node_width                       | int    | default node width\n| node_height                      | int    | default node height\n| node_radius                      | int    | default node radius\n| node_border                      | int    | default node border size\n| node_attr_height                 | int    | default attribute height\n| connection_width                 | int    | default connection pixel width\n| grid_color                       | list   | color the canvas grid will use\n| slot_border                      | list   |\n| non_connectable_color            | list   | color the connection will use when attributes are not connectable, RGBA color list 0-255\n| connection_highlight:color       | list   | color when hovering over a connection, RGBA color list 0-255\n| connection_text_color            | list   | text color when hovering over a connection, RGBA color list 0-255\n| connection_interpolation         | string | connection shape, \"bezier\", linear\n| connection_inherit_datatype_color| bool   | if true connection will use the color specified for data type\n| connection_color                 | list   | default color the connection when not inheriting the data type color, RGBA color list 0-255\n| layout_margin_size               | int    |\n| backdrop color                   | list   | default backdrop color, RGBA color list 0-255\n| backdrop_border_color            | list   | default backdrop border color, RGBA color list 0-255\n| backdrop_bounds                  | list   | default position and size of a backdrop, x, y, width, height\n| backdrop_title_font_size         | int    | default font size for backdrop titles\n| backdrop_description_font_size   | int    | default font size for backdrop descriptions\n| backdrop_font                    | int    | default backdrop title and description font\n\n\u003cbr\u003e\n\n#### node configuration\n\nThe configuration color configuration per node type, it needs to start with node_ followed by the nodetype and must include\nspecific values.\n\n| Value                            |  Type  |Description\n|:---------------------------------|:-------|:------------\n| bg                               | list   | node color, RGBA color list 0-255\n| border                           | list   | node border color when node is unselected, RGBA color list 0-255\n| border_sel                       | list   | node border color when node is selected, RGBA color list 0-255\n| text                             | list   | node text color, RGBA color list 0-255\n\n**node_default** will be used for all unspecified node types\n\n\u003cbr\u003e\n\n#### attribute configuration\n\nSame 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\nspecific values.\n\n| Value                            |  Type  |Description\n|:---------------------------------|:-------|:------------\n| bg                               | list   | attribute background color, RGBA color list 0-255\n| text                             | list   | attribute text color, RGBA color list 0-255\n| plug                             | list   | attribute plug color, RGBA color list 0-255\n| socket                           | list   | attribute slot color,  RGBA color list 0-255\n\n\u003cbr\u003e\n\n\n### reserved node types\n\n#### backdrop\n\nCocoNodz is supporting backdrop nodes to help grouping nodes, similar to backdrops in The Foundry's Nuke.\n\n#### dot\n\nDot nodes are planned...\n\n\u003cbr\u003e\n\n## Integrations\nCocoNodz offers integrations for the following Applications\n\n- [Autodesk Maya Integration](#autodesk-maya-integration)\n- [The Foundry Katana Integration](#the-foundry-katana-integration)\n \n\n\u003cbr\u003e\n\n### Standalone\n\n\n\u003cbr\u003e\n\n### Autodesk Maya Integration\n\n#### How to install the CocoNodz Maya plugin\n\nTo use CocoNodz within Maya you have to add the following paths to your environment.\n\n```\nCOCONODZ_STARTUP=\u003cpath to coconodz root\u003e\nMAYA_PLUG_IN_PATH=\u003cpath to coconodz root\u003e\\etc\\maya\\plugin\n```\n\n#### maya configuration\n\nThe Maya integration allows additional configurations\n\n| Value                            |  Type  |Description\n|:---------------------------------|:-------|:------------\n| docked                           | bool   | specified if the window will be dockable or not\n| dock_area                        | string | specifies the default dock area when the nodegraph will be docked\n| allowed_dock_areas               | string | specifies if the dockable window can be docked left, right or everywhere, supported are \"left\", \"right\", \"all\"\n| floating                         | bool   | specifies is the window will be docked or float\n| width                            | int    | default width of the window\n| height                           | int    | default height of the window\n| available_node_categories        | list   | will add multiple node types based on the node type categories, e.g: \"shader\", \"texture\"\n\n\nLaunch Maya and load the coconodz.py plugin. After successful initizalization you should be able to see a CocoNodz menu in Maya's menubar.\n\n### The Foundry Katana Integration\n\nTo use CocoNodz within Katana you have to add the following paths to your environment.\n\n```\nQT_PREFERRED_BINDING=PyQt4\nQT_SIP_API_HINT=1\nCOCONODZ_STARTUP\u003cpath to coconodz root\u003e\\coconodz\nKATANA_RESOURCES\u003cpath to coconodz root\u003e\\etc\\katana\n```\n\n---\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frkoschmitzky%2Fcoconodz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frkoschmitzky%2Fcoconodz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frkoschmitzky%2Fcoconodz/lists"}