HyperNaut
HyperNaut: a navigator for the hyperbolic plane - Published in JOSS (2019)
Science Score: 93.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 9 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: arxiv.org, joss.theoj.org -
○Committers with academic emails
-
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords
Repository
A "navigator" for exploring 2-dimensional hyperbolic space using the Poincaré disc model. The entire graph or point configuration can be translated and rotated by dragging the ambient, and individual points can be moved, too.
Basic Info
Statistics
- Stars: 6
- Watchers: 2
- Forks: 2
- Open Issues: 2
- Releases: 3
Topics
Metadata Files
README.md
HyperNaut : a navigator for the hyperbolic plane
A "navigator" for viewing graphs (or just point configurations) in 2-dimensional hyperbolic space, using the Poincaré disc model. Edges are drawn as geodesic arcs. All computation is performed client-side, in JavaScript. Built by Benjamin Wilson at Lateral GmbH as a tool for exploring embeddings in hyperbolic space.
Uses
- Inspecting 2-dimensional hyperbolic embeddings resulting from machine learning algorithms (this was the motivation of the author).
- Rotating and translating point configurations for inclusions in articles and presentations (just paste your points in, transform as desired, and copy them back out again).
- Learning about hyperbolic geometry and the Poincaré disc model.
Requirements
There are no external software dependencies. Your web browser needs to be able to render HTML5 (all modern browsers can do this) and have JavaScript enabled (it usually is, by default).
Installation
Simply download or clone the repository and open index.html in your web browser (e.g. via File > Open File ...).
Hosted version
Alternatively, a hosted version is available here.
Usage
- The entire graph or point configuration can be translated or rotated by dragging the ambient.

- Individual points can be moved by clicking and dragging. Movements always follow geodesic arcs (the one that is tangent to the displacement induced by the drag). Edges are attached to the points, so they follow any changes.

- Point and edge configurations can be loaded by simply pasting them into the textareas and hitting the "update" button. Either hyperboloid or Poincaré disc coordinates can be used.

Limitations
- As all computation is in client-side JavaScript, performance may be poor for large graphs. On a 2011 laptop running Chrome 71, performance was acceptable for a graph with 1k nodes and as many edges. To test this for yourself, see
sample-data/. - Numerical stability is lower when points are further away from the centre of the Poincaré disc. This is because the area contained in a disc grows exponentially with the radius in the hyperbolic plane. As such it is a fundamental computational limitation, not strictly speaking a limitation of the software. This is nicely covered in [1].
Development
Tests
Unit testing is performed using QUnit and qunit-assert-close (both bundled). To run the unit tests in your browser, open run_tests.html. Opening this page runs the tests in your browser.
Contributing
Pull requests are encouraged!
Support and bug tracking
Please open an issue on the GitHub repository.
Related work
- David Madore's fantastic hyperbolic maze, using a periodic tiling of a quotient of the hyperbolic plane. Navigation through the maze via the Poincaré disc model, uses the same mathematics.
- The very impressive hyperbolic cellular automaton simulator has related functionality for exploring the Poincaré disc, though for quite a different purpose.
- RogueViz is a tool for visualising and navigating data using tesselations of the hyperbolic plane, built by Dorota Celińska-Kopczyńska and Eryk Kopczyński, and used in their recent work. It uses the same engine as their amazing HyperRogue.
- There is a video of a very impressive 3D graph explorer using the Poincaré ball, from Tamara Munzer (1998). No implementation seems to be available.
- Related software is reported to have been developed at the University of Bielefeld, but no implementation seems to be available.
Citing HyperNaut
If you use HyperNaut in a publication, please consider citing as
Wilson, (2019). HyperNaut: a navigator for the hyperbolic plane. Journal of Open Source Software, 4(34), 1240, https://doi.org/10.21105/joss.01240
(here it is in BibTex).
References
[1] Sala, Frederic and De Sa, Chris and Gu, Albert and Re, Christopher, "Representation Tradeoffs for Hyperbolic Embeddings", Proceedings of the 35th International Conference on Machine Learning, 2018.
Owner
- Name: Lateral
- Login: lateral
- Kind: organization
- Email: hello@lateral.io
- Location: Berlin
- Website: https://lateral.io
- Repositories: 17
- Profile: https://github.com/lateral
JOSS Publication
HyperNaut: a navigator for the hyperbolic plane
Tags
hyperbolic-geometry embeddings javascriptGitHub Events
Total
Last Year
Committers
Last synced: 5 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| benjamin wilson | b****n@a****t | 45 |
| nagachika | n****a@r****g | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 4
- Total pull requests: 1
- Average time to close issues: 4 days
- Average time to close pull requests: 5 days
- Total issue authors: 3
- Total pull request authors: 1
- Average comments per issue: 1.0
- Average comments per pull request: 1.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- benjaminwilson (2)
- zenorogue (1)
- HaoZeke (1)
Pull Request Authors
- nagachika (1)
