Network Visual Layout Algorithm

214 views
Skip to first unread message

Sean Devlin

unread,
May 31, 2012, 9:37:21 AM5/31/12
to clo...@googlegroups.com
Hey folks,
I'm looking for help demonstrating Clojure's superiority to Scala :)

I have a contest going with a colleague, where we each have to render a network layout in SVG.  My gut says that Synthetic Annealing is the right tool for the job here.
  1. Does anyone have a better thought than synthetic annealing?  Speed is key in this contest
  2. Does anyone know of an implementation on Clojars, etc?
Thanks,
Sean

Ulises

unread,
May 31, 2012, 9:42:54 AM5/31/12
to clo...@googlegroups.com
> I have a contest going with a colleague, where we each have to render a
> network layout in SVG.  My gut says that Synthetic Annealing is the right
> tool for the job here.

I haven't heard of synthetic annealing (I have heard of simulated
annealing though) but if you're looking to draw a network of nodes and
to have them self-organise on a 2D space force-directed graphs are a
pretty nifty technique for that, see an example with d3 (don't know if
these graphs are available in d2 thought):
http://mbostock.github.com/d3/ex/force.html

U

Dave Ray

unread,
May 31, 2012, 9:48:28 AM5/31/12
to clo...@googlegroups.com
Lacij (https://github.com/pallix/lacij) and Vijual
(https://github.com/drcode/vijual) both implement graph layout
algorithms in Clojure.

Dave
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clo...@googlegroups.com
> Note that posts from new members are moderated - please be patient with your first post.
> To unsubscribe from this group, send email to
> clojure+u...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en

Sean Devlin

unread,
May 31, 2012, 9:59:31 AM5/31/12
to clo...@googlegroups.com
This should work great.  You guys rock :)
> clojure+unsubscribe@googlegroups.com

Boris V. Schmid

unread,
May 31, 2012, 10:52:19 AM5/31/12
to clo...@googlegroups.com
I did some network visualization a long time ago, and for big networks I found it fast to call toxiclib from clojure for calculating the layout, and use repulsive springs to generate my network, and once its relatively stable, add additional repulsive springs between overlapping nodes, so that these would separate as well.

http://www.shiffman.net/teaching/nature/toxiclibs/

atucker

unread,
Jun 1, 2012, 5:44:24 AM6/1/12
to clo...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages