core icon indicating copy to clipboard operation
core copied to clipboard

Visualise Relationships of Assets

Open mottosso opened this issue 8 years ago • 3 comments

Goal

Gain oversight of what asset depends or related to what other asset.

Motivation

At the moment, pointcaches and curves have an implicit relation to the rig from which they were produced, but the information is hidden. As the number and complexity of relationships grow, we'll need a better understanding of what relates to what in order to develop it further, but also to debug things that happen because of this relationship.

Implementation

Draw a node graph in the Loader of the currently selected asset and what other assets it relates to and how.

image

We can try and take advantage of https://github.com/mfessenden/SceneGraph

mottosso avatar Jun 08 '17 08:06 mottosso

Has anyone tried this before ?

I am giving a try on this feature, and implemented a simple dependency data collect mechanism in my config, pretty rough right now.

The node graph was created from a Loader plugin.

image

Instead of using SceneGraph, I use NodeGraphQt, because it has much nicer looking, and the PySide2 was the only requirement (but cannot work with PyQt5).

Here's another node graph tool I have tried, Nodz, this one uses Qt.py ! But the feature was not much, and it's been a while since last commit (but Golaem/Nodz is pretty active).

I think I will continue this with NodeGraphQt, since no extra dependency plus rich feature is a good start, but there's a big issue that needs to be resolved is the ability to auto-layout node graph. Other tools that supports auto-layout all required networkx or graphviz, so I wonder if we could come up with a simple auto-layout algorithm to avoid installing heavy module just for drawing dependency graph.

davidlatwe avatar Jan 06 '19 21:01 davidlatwe

I haven't, but have also been peeking at those libraries you mention. What you have there looks like a good start!

Laying out nodes isn't as easy as it seems.. I dove into that rabbit hole a while back, and can understand why someone would choose to use a third-party library. It wouldn't be the end of the world to vendor networkx with Avalon; so long as it's pure Python and doesn't complicate distribution.

mottosso avatar Jan 08 '19 19:01 mottosso

Re: autolayout https://github.com/cb109/qtnodes/blob/develop/qtnodes/layout.py https://gist.github.com/dbr/1255776

tokejepsen avatar Jan 28 '19 02:01 tokejepsen