The data visualization allows viewers to easily view the entirety of a large dataset without sacrificing viewability. It does this by compressing down the distance between the nodes and edges nearest to the border of the graph. Nodes get progressively smaller and closer together as they approach an asymptote at the graph's border.
As the Hyperbolic Tree graph is now in the public domain, there are several implementations of this graph using different libraries. Each of these libraries has benefits and drawbacks. The task is to evaluate each solution for viability, usability, performance, and other important metrics.
Of note is that some implementations use a strictly hierarchical graph structure, with no support for non-hierarchical relationships. The solution used for the Music Encyclopedia visualization must allow for both hierarchical relationships, such as those between a band and its members, as well as non-hierarchical relationships, like those between band members.
The Javascript InfoVis Toolkit is a library that directly has both hierarchical and non-hierarchical implementations of the Hyperbolic Tree visualization, and the two can be mixed in a single canvas. It was most recently updated in 2014.
This library allows for stretching any produced graph over a hyperbolic plane canvas. It does not have logic built-in for generating the graph, but an outside library could be used for producing the graph and this tool can then stretch it over a hyperbolic plane.
The d3 graphics library is one of the most popular data visualization libraries. This implementation of the Hypertree appears to only handle hierarchical relationships, meaning it would not work for the purposes of the Music Encyclopedia visualization.
This paper presents the "H3" algorithm, which is used for layout and drawing. There does not appear to be a link to any open-source code, so this paper can be used for research and to help with developing bespoke solutions. However, it appears this may not be feasible to use.
Acceptance Criteria:
Background:
Xerox's PARC lab invented the Hyperbolic tree, or "Hypertree" data visualization in 1996.
https://en.wikipedia.org/wiki/Hyperbolic_tree
The data visualization allows viewers to easily view the entirety of a large dataset without sacrificing viewability. It does this by compressing down the distance between the nodes and edges nearest to the border of the graph. Nodes get progressively smaller and closer together as they approach an asymptote at the graph's border.
As the Hyperbolic Tree graph is now in the public domain, there are several implementations of this graph using different libraries. Each of these libraries has benefits and drawbacks. The task is to evaluate each solution for viability, usability, performance, and other important metrics.
Of note is that some implementations use a strictly hierarchical graph structure, with no support for non-hierarchical relationships. The solution used for the Music Encyclopedia visualization must allow for both hierarchical relationships, such as those between a band and its members, as well as non-hierarchical relationships, like those between band members.
https://github.com/philogb/jit
The Javascript InfoVis Toolkit is a library that directly has both hierarchical and non-hierarchical implementations of the Hyperbolic Tree visualization, and the two can be mixed in a single canvas. It was most recently updated in 2014.
https://github.com/ItsNickBarry/hyperbolic-canvas
This library allows for stretching any produced graph over a hyperbolic plane canvas. It does not have logic built-in for generating the graph, but an outside library could be used for producing the graph and this tool can then stretch it over a hyperbolic plane.
https://github.com/glouwa/d3-hypertree
The d3 graphics library is one of the most popular data visualization libraries. This implementation of the Hypertree appears to only handle hierarchical relationships, meaning it would not work for the purposes of the Music Encyclopedia visualization.
https://graphics.stanford.edu/papers/h3cga/html/
This paper presents the "H3" algorithm, which is used for layout and drawing. There does not appear to be a link to any open-source code, so this paper can be used for research and to help with developing bespoke solutions. However, it appears this may not be feasible to use.