Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

interactive visualization of mappings: xdot? #7

Open
fabioedoardoluigialberto opened this issue Nov 7, 2012 · 3 comments
Open

interactive visualization of mappings: xdot? #7

fabioedoardoluigialberto opened this issue Nov 7, 2012 · 3 comments
Assignees

Comments

@fabioedoardoluigialberto
Copy link
Collaborator

As you know, the Connection class contains "dot" representations of the connectivity between populations, and that's what introduced the dependency on pydot package. The "dot" representation has been chosen for its compact, easy to read representation, which can be also easily converted into any other more complex representation. On the other hand, until now it has only been possible to dump this representation into a file and then call the 'dot' program from bash to generate a png of the connectivity graph. No interactive GUI for mappings and plots has ever been possible with this approach.

I just found a package that could enhance user experience by providing graphical visualization of the mappings. It turns out that the tools have always been there in the same graphviz package from where pydot was taken in first place... I think xdot package could be the solution.

http://code.google.com/p/jrfonseca/wiki/XDot#Features

Pros of xdot:

  • Since it doesn't use bitmaps it is fast and has a small memory footprint.
  • Arbitrary zoom.
  • Keyboard/mouse navigation.
  • Supports events on the nodes with URLs.
  • Animated jumping between nodes.
  • Highlights node/edge under mouse.
  • It (seems to) only require pyGTK.
  • Can be used both as a standalone python program and as an embedded part of pyNCS.

Other projects:

Both the above alternatives seem much bigger projects. The latter uses pygame but given the simplicity of the dot representation I would stick with the slickest solution, i.e. xdot.

What do you think?

Fabio

@fabioedoardoluigialberto
Copy link
Collaborator Author

Just tested xdot.py. Check the screencast: http://www.youtube.com/watch?v=Wj8KM_kYJNw&feature=youtu.be

@eneftci
Copy link
Collaborator

eneftci commented Jan 22, 2013

It might be nice to have a visualization package that supports bi-directional connections with pyNCS (callbacks), so it could also be used to create/delete connections.
Of course this is way beyond our objectives for the moment, but it may be helpful to think ahead of time.

@fabioedoardoluigialberto
Copy link
Collaborator Author

In that case I think we could even grab ideas and code from Jack Audio Connection Kit interfaces. Jack is an open source audio server with very low latency intended for professionals. There are many graphical interfaces that let you simply click sources and destinations to connect them. These interfaces usually interact with the audio server in real-time. One of them is Qjackctl.

I imagine an interface like those. We could grab some open source code and modify it so that it interfaces to a "mapping server".

Check screenshots here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants