Hi All! I am looking at graph libs for python, and came across graph_tool. I am trying to see if it is possible to create 3D layouts instead of 2D ones (which it does really well). Has anybody done that, or does anybody have some ideas on how we could do that? Any hints welcome! Dirk
Hi, Dirk Visualisation graph in 3D is a quite specific task. May be, this link will help you https://www.westgrid.ca/files/3Dgraphs-WestGridWebinar-May24.2016.pdf ________________________________ From: graph-tool <graph-tool-bounces@skewed.de> on behalf of Dirk Reiners <dirk.reiners@gmail.com> Sent: Saturday, May 20, 2017 5:51 AM To: graph-tool@skewed.de Subject: [graph-tool] 3D Layouts? Hi All! I am looking at graph libs for python, and came across graph_tool. I am trying to see if it is possible to create 3D layouts instead of 2D ones (which it does really well). Has anybody done that, or does anybody have some ideas on how we could do that? Any hints welcome! Dirk
Hi Зверев On Sat, May 20, 2017 at 10:56 AM, Зверев Владимир Сергеевич < vladimir.zverev@urfu.ru> wrote:
Hi, Dirk Visualisation graph in 3D is a quite specific task. May be, this link will help you
https://www.westgrid.ca/files/3Dgraphs-WestGridWebinar-May24.2016.pdf
Thanks for the link! I used NX for a project a while ago, and we did some experiments with 3D layouts, that why I was hoping GT would be able to do something similar. The 3D graphics part is the easy one for us, that' what we do every day, so I wouldn't use VTK for this (not really what it's designed for anyway). Yours Dirk
On 20.05.2017 01:51, Dirk Reiners wrote:
I am looking at graph libs for python, and came across graph_tool. I am trying to see if it is possible to create 3D layouts instead of 2D ones (which it does really well). Has anybody done that, or does anybody have some ideas on how we could do that?
3D layouts are not implemented in graph-tool at all. Best, Tiago -- Tiago de Paula Peixoto <tiago@skewed.de>
Hi Tiago, On Mon, May 22, 2017 at 4:46 AM, Tiago de Paula Peixoto <tiago@skewed.de> wrote:
3D layouts are not implemented in graph-tool at all.
That's more or less what I expected, thanks for the confirmation. Is there a fundamental problem with it, or is it just something that has not been a priority? In general force-directed layouts are pretty agnostic concerning dimensionality, do you think it would be difficult to add? If I understand the code correctly (big if ;) positions are just vector<double> properties, and the 2D part is more a convention than anything else. This is obviously only partially true for the QuadTree part in SFDP, which would have to be an octree for 3D, but it might still work at reduced efficiency. Are there other limitations that you can think of from the top of your head that would make 3D layouts infeasible? If I can find some time over the summer I might play with it... Thanks! Dirk
On 22.05.2017 15:46, Dirk Reiners wrote:
s there a fundamental problem with it, or is it just something that has not been a priority? In general force-directed layouts are pretty agnostic concerning dimensionality, do you think it would be difficult to add? If I understand the code correctly (big if ;) positions are just vector<double> properties, and the 2D part is more a convention than anything else. This is obviously only partially true for the QuadTree part in SFDP, which would have to be an octree for 3D, but it might still work at reduced efficiency. Are there other limitations that you can think of from the top of your head that would make 3D layouts infeasible?
Modifying sfdp_layout() to n-dimensions is indeed straightforward. The issue is modifying the actual drawing (i.e. graph_draw()) to 3D. We use cairo in the backend, which is strictly 2D. Implementing 3D would require the use of something else entirely, like OpenGL. I have no desire of ever implementing 3D drawing, because I think it is not really helpful in the majority of cases. Best, Tiago -- Tiago de Paula Peixoto <tiago@skewed.de>
I would say that it can be helpful when you can interactively 'fly through' your data. It is possible to use a 'flying' interface with a game engine type backend to allow interactive exploration of massive datasets. I agree that it is mostly pointless for static rendering. Peter -------- Original Message -------- Subject: Re: [graph-tool] 3D Layouts? Local Time: May 22, 2017 4:19 PM UTC Time: May 22, 2017 3:19 PM From: tiago@skewed.de To: graph-tool@skewed.de On 22.05.2017 15:46, Dirk Reiners wrote:
s there a fundamental problem with it, or is it just something that has not been a priority? In general force-directed layouts are pretty agnostic concerning dimensionality, do you think it would be difficult to add? If I understand the code correctly (big if ;) positions are just vector<double> properties, and the 2D part is more a convention than anything else. This is obviously only partially true for the QuadTree part in SFDP, which would have to be an octree for 3D, but it might still work at reduced efficiency. Are there other limitations that you can think of from the top of your head that would make 3D layouts infeasible?
Modifying sfdp_layout() to n-dimensions is indeed straightforward. The issue is modifying the actual drawing (i.e. graph_draw()) to 3D. We use cairo in the backend, which is strictly 2D. Implementing 3D would require the use of something else entirely, like OpenGL. I have no desire of ever implementing 3D drawing, because I think it is not really helpful in the majority of cases. Best, Tiago -- Tiago de Paula Peixoto <tiago@skewed.de> _______________________________________________ graph-tool mailing list graph-tool@skewed.de https://lists.skewed.de/mailman/listinfo/graph-tool
On 27.05.2017 11:08, Peter Clarke wrote:
I would say that it can be helpful when you can interactively 'fly through' your data. It is possible to use a 'flying' interface with a game engine type backend to allow interactive exploration of massive datasets. In my opinion that is the kind of thing you see in movies, but is hardly useful in the real world. A network that looks like a huge hairball in 2D will also look like a hairball in 3D.
-- Tiago de Paula Peixoto <tiago@skewed.de>
For smaller graphs it shouldn't be a problem to get them visualised this way with this python module: https://patrickfuller.github.io/jgraph/ example: https://patrickfuller.github.io/jgraph/examples/github.html Cheers, Felix https://keybase.io/flxvctr https://about.me/flxvctr On 27 May 2017 at 9:13:33 pm, Tiago de Paula Peixoto (tiago@skewed.de) wrote: On 27.05.2017 11:08, Peter Clarke wrote:
I would say that it can be helpful when you can interactively 'fly through' your data. It is possible to use a 'flying' interface with a game engine type backend to allow interactive exploration of massive datasets. In my opinion that is the kind of thing you see in movies, but is hardly useful in the real world. A network that looks like a huge hairball in 2D will also look like a hairball in 3D.
-- Tiago de Paula Peixoto <tiago@skewed.de> _______________________________________________ graph-tool mailing list graph-tool@skewed.de https://lists.skewed.de/mailman/listinfo/graph-tool
Hi Felix, On Sun, May 28, 2017 at 8:57 PM, Felix Victor Münch < felix.v.muench@gmail.com> wrote:
For smaller graphs it shouldn't be a problem to get them visualised this way with this python module:
https://patrickfuller.github.io/jgraph/
example: https://patrickfuller.github.io/jgraph/examples/github.html
Thanks for the link! For display I need my own code anyway (see previous post for my display device), so i really only need the layout, and for small graphs NX can handle it well enough. But i would to get into large graphs and graph-tool is better suited for that. Thanks! Dirk
Hi Guys, I understand your concern, and yes, 3D is not a panacea. But there are some studies that show when it is also displayed in 3D stereo path following tasks can be more efficient than in 2D. Not a universal thing, but some hints. I think to a large extend it also depends on your display device. Just displaying a 3D model on a 2D screen is not going to be much better. My display device is a little different: http://assets. inarkansas.com/66594/ualr-vr2-110.JPG ;) But thanks for the answer! Dirk On Sat, May 27, 2017 at 6:13 AM, Tiago de Paula Peixoto <tiago@skewed.de> wrote:
On 27.05.2017 11:08, Peter Clarke wrote:
I would say that it can be helpful when you can interactively 'fly through' your data. It is possible to use a 'flying' interface with a game engine type backend to allow interactive exploration of massive datasets. In my opinion that is the kind of thing you see in movies, but is hardly useful in the real world. A network that looks like a huge hairball in 2D will also look like a hairball in 3D.
-- Tiago de Paula Peixoto <tiago@skewed.de>
_______________________________________________ graph-tool mailing list graph-tool@skewed.de https://lists.skewed.de/mailman/listinfo/graph-tool
participants (5)
-
Dirk Reiners -
Felix Victor Münch -
Peter Clarke -
Tiago de Paula Peixoto -
Зверев Владимир Сергеевич