HyperNaut

HyperNaut: a navigator for the hyperbolic plane - Published in JOSS (2019)

https://github.com/lateral/crystal-ball

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

geometry hyperbolic-geometry poincare-embeddings
Last synced: 4 months ago · JSON representation

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
  • Host: GitHub
  • Owner: lateral
  • License: other
  • Language: JavaScript
  • Default Branch: master
  • Homepage:
  • Size: 6.66 MB
Statistics
  • Stars: 6
  • Watchers: 2
  • Forks: 2
  • Open Issues: 2
  • Releases: 3
Topics
geometry hyperbolic-geometry poincare-embeddings
Created almost 7 years ago · Last pushed over 4 years ago
Metadata Files
Readme License

README.md

HyperNaut : a navigator for the hyperbolic plane

DOI

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

DOI

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

JOSS Publication

HyperNaut: a navigator for the hyperbolic plane
Published
February 20, 2019
Volume 4, Issue 34, Page 1240
Authors
Benjamin Wilson ORCID
Lateral GmbH
Editor
Jack Poulson ORCID
Tags
hyperbolic-geometry embeddings javascript

GitHub Events

Total
Last Year

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 46
  • Total Committers: 2
  • Avg Commits per committer: 23.0
  • Development Distribution Score (DDS): 0.022
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email 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)
Top Labels
Issue Labels
enhancement (1)
Pull Request Labels