All Projects → mfessenden → Scenegraph

mfessenden / Scenegraph

PySide scene graph UI framework.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Scenegraph

Pyvfx Boilerplate
A boilerplate for creating PySide/PyQt or PySide2/PyQt5 applications running inside of Maya, Nuke and standalone - using Python 2 or 3.
Stars: ✭ 131 (+11.02%)
Mutual labels:  maya, pyside
AnimationDNA
Maya > Arnold > Nuke pipeline
Stars: ✭ 101 (-14.41%)
Mutual labels:  pyside, maya
TACTIC-Handler
PySide based TACTIC client for maya, nuke, 3dsmax, houdini, etc
Stars: ✭ 67 (-43.22%)
Mutual labels:  pyside, maya
Nodegraphqt
Node graph framework that can be re-implemented into applications that supports PySide2
Stars: ✭ 401 (+239.83%)
Mutual labels:  pyside
Qtpy
Provides an uniform layer to support PyQt5, PySide2, PyQt4 and PySide with a single codebase
Stars: ✭ 492 (+316.95%)
Mutual labels:  pyside
Kiwi
A simple Sega Genesis emulator
Stars: ✭ 14 (-88.14%)
Mutual labels:  pyside
Screenspace
Screenspace pickables for Maya
Stars: ✭ 93 (-21.19%)
Mutual labels:  maya
Exporters
Exporters for Babylon.js and gltf file formats
Stars: ✭ 302 (+155.93%)
Mutual labels:  maya
Mayamatchmovesolver
A Bundle Adjustment solver for MatchMove related tasks.
Stars: ✭ 50 (-57.63%)
Mutual labels:  maya
Gparticlesio
Simple IO transfer particles cache in DCC application
Stars: ✭ 8 (-93.22%)
Mutual labels:  maya
Web2executable
Uses NW.js to generate "native" apps for already existing web apps.
Stars: ✭ 824 (+598.31%)
Mutual labels:  pyside
Maya
Maye 一个简洁小巧的快速启动工具
Stars: ✭ 553 (+368.64%)
Mutual labels:  maya
Picacg Windows
哔咔漫画window客户端,界面使用PySide2,已实现分类、搜索、收藏夹、下载、在线观看、waifu2x等功能。
Stars: ✭ 35 (-70.34%)
Mutual labels:  pyside
Unity Runtime Animation Recorder
Record animations in Unity runtime. Can save to .anim, maya, or FBX ASCII format.
Stars: ✭ 407 (+244.92%)
Mutual labels:  maya
Upyide
Micropython IDE
Stars: ✭ 57 (-51.69%)
Mutual labels:  pyside
Qt Python Binding Examples
Lots of simple and Pythonic PySide demos
Stars: ✭ 312 (+164.41%)
Mutual labels:  pyside
Dependsworkflow
The Depends Workflow Management System
Stars: ✭ 47 (-60.17%)
Mutual labels:  pyside
Qt.py
Minimal Python 2 & 3 shim around all Qt bindings - PySide, PySide2, PyQt4 and PyQt5.
Stars: ✭ 684 (+479.66%)
Mutual labels:  pyside
Scihubeva
A Cross Platform Sci-Hub GUI Application
Stars: ✭ 683 (+478.81%)
Mutual labels:  pyside
Vsclipboard
A small clipboard history tool for Windows.
Stars: ✭ 12 (-89.83%)
Mutual labels:  pyside

SceneGraph

Alt text

SceneGraph is a fast & flexible framework for visualizing node graphs using in visual effects DCCs using PySide. Scenes can be saved and loaded in a variety of applications, and users can easily add their own nodes to suit their needs.

===== Usage

Launching the interface:

    from SceneGraph import scenegraph
    sgui = scenegraph.SceneGraphUI()
    sgui.show()
    
    # access the node graph
    graph = sgui.graph

    # list all node names
    node_names = graph.node_names()

    # get all of the node widgets from the GraphicsScene
    scene = sgui.view.scene()
    nodes = scene.nodes()

    # query all of the current dag nodes
    dags = graph.nodes()

    # return a named dag node
    dagnode = graph.get_node('node1')

    # get node attributes
    dagnode.getNodeAttributes()
        
    # set arbitrary attributes
    dagnode.setNodeAttributes(env='maya', version='2014')

    # querying widgets

    # get an output connection widget
    c_output=n1.get_connection('output')

    # query an edge 
    e1=scene.get_edge('node1.output', 'node2.input')[0]

    # get edge source item (Connection)
    e1.source_item

    # get connected nodes from an edge
    e1.listConnections()

Maya Usage:

    from SceneGraph import scenegraph_maya
    scenegraph_maya.main()

Nuke Usage:

    from SceneGraph import scenegraph_nuke
    scenegraph_nuke.main()

SceneGraph API:

    # create a graph
    from SceneGraph import core
    g=core.Graph()

    # query the currently loaded node types
    node_types = g.node_types()

    # add some default nodes
    n1 = g.add_node('default', name='node1')
    n2 = g.add_node('default', name='node2')

    # query node connections
    if n1.is_input_connection:
        conn = n1.output_connections()

    # add a new input and output attribute
    n1.add_input(name='fileIn')

    # connect the nodes (default output/inputs assumed)
    e1 = g.add_edge(n1, n2)

    # connect with a connection string
    e1 = g.connect('node1.output', 'node2.input')

    # write the graph
    g.write('~/graphs/my_graph.json')

    # query all nodes in the graph
    print g.nodes()

    # query all node names
    print g.node_names()

    # query all connections
    print g.connections()

    # Updating Attributes
    from SceneGraph import core
    g = core.Graph()
    d = g.add_node('default')
    m = g.add_node('merge')
    g.add_edge(d, m, dest_attr='inputA')
    m.rename_connection('inputA', 'newInput')

Advanced API:

    # add attributes to a dag node, flag it as an input connection
    attr=n1.addAttr('env', value='maya', input=True)

    # set the value via the node
    n1.env = 'nuke'

    # set the value via the attribute instance
    attr.value = 'houdini'

Dependencies:

  • Python 2.7
  • simplejson
  • NetworkX 1.9.1
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].