#Graph Tool Framework

1 messages · Page 1 of 1 (latest)

gloomy laurel
#

The GS team is working out a graph tool gem that allows easy creation of graph driven tools.
Looking at the functionality with the lens of "upstream" being the framework, and "downstream" being your custom tool, I've been chipping at a suite of toggleable features that make the graph part more about your custom nodes and features... not just having a graph at all.

Here we have:

  • Main window/system registration.
  • Dynamic Node registration.
    • Framework defaults propogating into downstream editors.
    • And custom per-editor nodes.
  • Window handling. Enabling multiple windows beyond just the base Graph window.
  • Toggleable execution flow lines.
  • Toggleable variable system features.
  • Overriding the "drop node into empty window" event to enable unique behaviour.
  • Saving and Loading, and Recent Files.
    • Saving can extend across multiple graphs and tabs.
    • Saving can be massively customized. In this case a base dialogue database combining global variables settings, and an array of custom graphs. All fully saved.
  • Not tested yet, but node execution logic.
    • You can instance n number of graphs.
    • You can execute any of the instances.
    • You can change variables programmatically to modulate the graph instance behaviour.

A long way to go for stability and range of features, but I think it's incredibly cool.

sour cloak
#

Very cool! All of the material and content creation tools in the engine are built off atom tools framework, which follows the same basic concepts. A lot of that code was factored out of material editor after I got it in a good place to share/consolidate code between it, material canvas, shader manager console, a pass editor, a potential particle editor, and other tools. It has a reusable framework for window management, document/view architecture, multiple documents/multiple views, settings manager, and tries to generalize node/graph tools with the dynamic node classes and graph model and graph canvas integration. There's so much in there. Was hoping to further generalize it for exactly this purpose, to build all kinds of bespoke tools with the same code base and consistent UX. I would really like to see graph model and graph canvas and script canvas get some real attention and simplification. But also to be able to build arbitrary graph based editing tools. So many opportunities around that. Good work!

gloomy laurel
#

Thank you!

I think all that setup really set this gem up for victory. A lot of the functionality has been about enabling it simultaneously, and in the most braindead way possible, considering it's software tool ui authoring.
Once this stabilizes and I can open source it, it would be really cool to see it serve as a case study/proof that can enable this level of ease of access, but across tools in general.

gloomy laurel
#

Now there's Header and footer widget space to fill with HTML and an injected styling data.

#

Made famous by Material and Landscape canvas. 👌