From: JP Massar
Subject: Looking for software package for simple 3d stuff
Date: 
Message-ID: <sin4svcmv0gru37fd0pnva5emhpad4u66r@4ax.com>
I'm looking for pointers for Lisp code to display a simple node and
link structure in 3d such as might be found in a semantic net.

Anyone help?

From: james anderson
Subject: Re: Looking for software package for [not so] simple 3d stuff
Date: 
Message-ID: <3FC265CC.E2329690@setf.de>
simple?

there are two separable issues: graph layout and 3d rendering.

for either 2d graph generation and layout or 3d rendering i'd have pointers.
3d graph layout is another story, about which i'd be interested to hear what
you find.


JP Massar wrote:
> 
> I'm looking for pointers for Lisp code to display a simple node and
> link structure in 3d such as might be found in a semantic net.
> 
> Anyone help?
From: james anderson
Subject: Re: Looking for software package for simple 3d stuff
Date: 
Message-ID: <3FC36B97.C5387A53@setf.de>
JP Massar wrote:
> 
> I'm looking for pointers for Lisp code to display a simple node and
> link structure in 3d such as might be found in a semantic net.
> 
> Anyone help?


[i suppose my previous response might have been interpreted as too "off-hand".]

one approach is to externalize the graph and use one a graph visualization
tool to perform the layout and display. this can be quite effective if
"display" was meant literally, that is absent interaction with the live
in-lisp model.

for the case of a 2-d graph, there is code[1] which externalizes function,
package, and class graphs to a graphviz[2] .dot file and delegates the
rendering to graphviz-or-equal. at the time i wrote it i didn't find a 3-d
equivalent. on osx it works quite handily in conjunction with omnigraffle
instead of graphviz. 

out of curiosity, i went looking again and observe that there is recent a 3-d
layout and rendering package (gvl) which uses a quite simple graph description
file (gml +/-) for input and which is described to be able to produce a 3-d
geometry file. ".gml" is well within the reach of the ".dot" serialization
routines[4] and the function/package/class graph processors[5] are concrete
instances of a generic graph walker which would be straight forward to
specialize for a given semantic net.

...

[1] http://www.setf.de
[2] http://www.graphviz.org/
[3] http://www.cs.bath.ac.uk/~djd/graphs.html
[4] http://home.arcor.de/james_anderson/setf/library/de/setf/utility/dot.lisp
[5] http://home.arcor.de/james_anderson/setf/library/de/setf/utility/graph.lisp