<commit_before>#h3py - H3 in Python 

h3py is an pure python implementation of [H3](https://graphics.stanford.edu/papers/munzner_thesis/) from Dr. <NAME>'s Ph.D. dissertation in Stanford University, June 2000. It provides a scalable, high performance and interactive graph visualization in 3D hyperbolic space. We found this algorithm is good at tracking and presenting massive amounts of posts sharing across different social networks over time. There's also a Java3D implementation called [Walrus](https://www.caida.org/tools/visualization/walrus/) by Center for Applied Internet Data Analysis (CAIDA), last release in 2005.

## Quick View
```
├── LICENSE
├── README.md
├── examples
│   ├── __init__.py
│   ├── benchmark_layout.py
│   ├── print_tree_to_console.py
│   ├── render_tree_as_scatterplot.py
│   └── write_coordinates_to_csv.py
├── h3
│   ├── __init__.py
│   ├── h3math.py
│   ├── node.py
│   └── tree.py
├── setup.py
└── test
    └── unit
            └── test_tree.py<commit_msg>Added to readme<commit_after>#h3py - H3 in Python 

h3py is an pure python implementation of [H3](https://graphics.stanford.edu/papers/munzner_thesis/) from Dr. <NAME>'s Ph.D. dissertation in Stanford University, June 2000. It provides a scalable, high performance and interactive graph visualization in 3D hyperbolic space. We found this algorithm is good at tracking and presenting massive amounts of posts sharing across different social networks over time. There's also a Java3D implementation called [Walrus](https://www.caida.org/tools/visualization/walrus/) by Center for Applied Internet Data Analysis (CAIDA), last release in 2005.

The motivation behind this project was to build a Python version of H3 for visualizing data from the Pound project at Buzzfeed. <NAME>, working with <NAME> of Buzzfeed's Optimization Squad successfully managed to implement this package, capable of laying out trees on the order of millions of nodes in a matter of minutes. 

## Quick View
```
├── LICENSE
├── README.md
├── examples
│   ├── __init__.py
│   ├── benchmark_layout.py
│   ├── print_tree_to_console.py
│   ├── render_tree_as_scatterplot.py
│   └── write_coordinates_to_csv.py
├── h3
│   ├── __init__.py
│   ├── h3math.py
│   ├── node.py
│   └── tree.py
├── setup.py
└── test
    └── unit
            └── test_tree.py
{'fraction_non_alphanumeric': 0.11034184335785374, 'fraction_numerical': 0.014279532669839896, 'mean_word_length': 4.137777777777778, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 4, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5227668', 'n_tokens_mistral': 769, 'n_tokens_neox': 732, 'n_words': 296}