
Hypertree - JavaScript Tree Animation - jacquesm
http://thejit.org/Jit/Examples/Hypertree/example1.html
======
gchpaco
This sort of tree animation is a powerful way of exploring structured data
like this--I've used it on call graphs and seen it used for social network
data and RDF before. Remarkably smooth animation here.

------
ggchappell
(1) There is some nice geometry going on here. The tree appears to be embedded
in hyperbolic space (is that what "hypertree" means?), visualized using the
Poincare disk model. Edges of the tree are drawn as geodesics. Node-to-node
moves are accomplished via translations of hyperbolic space.

One result of this is that you can demonstrate to yourself that a rotation in
hyperbolic space can be realized as the composition of translations -- which
is not true in Euclidean space. Pick three nodes, repeatedly click on them in
order (1, 2, 3, 1, 2, 3, etc.), and watch how the space slowly rotates.

(2) There is a bit of a problem with the UI details, at least in my browser
(Firefox). The clickable area for each node appears to be roughly a square
whose top is the horizontal diameter of the red disc representing the node.
Thus, clicking in the upper half of a red disc accomplishes nothing. And
trying to click in the center of a disc gets you what you want about half of
the time.

------
FiReaNG3L
Implemented on the front page of Directed Edge

<http://www.directededge.com/>

~~~
wheels
Yes, thought the examples they give are all with static data. It took a fair
bit of massaging (and using undocumented features) to get it work with
dynamically querying data. The connection code is here for the curious:

<http://www.directededge.com/js/wikiviz.js>

~~~
jacquesm
that's really pretty code!

minor nitpick (and that's from someone that doesn't have as much js under his
belt as you do, so please feel free to ignore)

Your bracketing style has one risk, if you should ever drop a complete line
before a code block it will still be valid. That has bitten me once. Nowadays
with version control such mistakes are a lot easier to spot though. Old habits
die hard :)

Pretty code, really I'm going to have a good look at it later because this is
roughly the kind of thing I had in mind while I was searching for a tree
visualizer.

~~~
wheels
The code was only partly written by me, but actually we're not really JS
wranglers -- we're C++ guys so we just kind of apply our C++ coding style to
similar languages (JavaScript, Java, etc.) when we're working with them to the
extent that that's possible.

