Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/j2kun/math-genealogy-visualizer
A javascript visualization of the math genealogy database
https://github.com/j2kun/math-genealogy-visualizer
d3js graph-algorithms javascript mathematics search visualization
Last synced: about 2 months ago
JSON representation
A javascript visualization of the math genealogy database
- Host: GitHub
- URL: https://github.com/j2kun/math-genealogy-visualizer
- Owner: j2kun
- Created: 2017-06-15T03:54:32.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2023-10-27T01:51:44.000Z (about 1 year ago)
- Last Synced: 2024-04-14T06:08:01.337Z (9 months ago)
- Topics: d3js, graph-algorithms, javascript, mathematics, search, visualization
- Language: JavaScript
- Homepage: https://github.com/j2kun/math-genealogy-visualizer/blob/master/j2kun.github.io/math-genealogy/index.html
- Size: 7.03 MB
- Stars: 8
- Watchers: 3
- Forks: 5
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Math genealogy visualizer
[Live demo](https://j2kun.github.io/math-genealogy/index.html) (takes about 15s
to load)## Building locally
Clone this repository. Then, from the root directory of this repo:
Using `yarn` or `npm`,
```
yarn install # or npm install
gulp watch# in another terminal
python3 -m http.server# browse to http://localhost:8000
```## Details
This project uses:
- ES6 (modern Javascript, though I suck at Javascript)
- [Dagre](https://github.com/cpettitt/dagre) for layout
- D3 and [dagre-d3](https://github.com/cpettitt/dagre-d3/) for rendering
- [Graphlib-dot](https://github.com/cpettitt/graphlib-dot) for parsing
- [Fuzzyset](https://github.com/Glench/fuzzyset.js) for searchA subset of the genealogy database, `genealogy_graph.json` (the full db you can
find [here](https://github.com/j2kun/math-genealogy-scraper) as `data.json`) is
loaded into the user's browser, a search index is built for name lookups, and
then Gauss's tree is displayed.The user can then choose a single name for which to display the ancestry, or
else show the subset of the graph which contains the closest common ancestor of
any two nodes that are in the same connected component.