Open-source dataset curation with hyperbolic embeddings visualization
Project description
HyperView
Open-source dataset curation + embedding visualization (Euclidean + Poincaré disk)
Features
- Dual-Panel UI: Image grid + scatter plot with bidirectional selection
- Euclidean/Poincaré Toggle: Switch between standard 2D UMAP and Poincaré disk visualization
- HuggingFace Integration: Load datasets directly from HuggingFace Hub
- Fast Embeddings: Uses EmbedAnything for CLIP-based image embeddings
Quick Start
Docs: docs/datasets.md · docs/colab.md · CONTRIBUTING.md · TESTS.md
Installation
git clone https://github.com/Hyper3Labs/HyperView.git
cd HyperView
# Install with uv
uv venv .venv
source .venv/bin/activate
uv pip install -e ".[dev]"
Run the Demo
hyperview demo --samples 500
This will:
- Load 500 samples from CIFAR-100
- Compute CLIP embeddings
- Generate Euclidean and Poincaré visualizations
- Start the server at http://127.0.0.1:6262
Python API
import hyperview as hv
# Create dataset
dataset = hv.Dataset("my_dataset")
# Load from HuggingFace
dataset.add_from_huggingface(
"uoft-cs/cifar100",
split="train",
max_samples=1000
)
# Or load from local directory
# dataset.add_images_dir("/path/to/images", label_from_folder=True)
# Compute embeddings and visualization
dataset.compute_embeddings(model="openai/clip-vit-base-patch32")
dataset.compute_visualization()
# Launch the UI
hv.launch(dataset) # Opens http://127.0.0.1:6262
Google Colab
See docs/colab.md for a fast Colab smoke test and notebook-friendly launch behavior.
Save and Load Datasets
# Save dataset with embeddings
dataset.save("my_dataset.json")
# Load later
dataset = hv.Dataset.load("my_dataset.json")
hv.launch(dataset)
Why Hyperbolic?
Traditional Euclidean embeddings struggle with hierarchical data. In Euclidean space, volume grows polynomially ($r^d$), causing Representation Collapse where minority classes get crushed together.
Hyperbolic space (Poincaré disk) has exponential volume growth ($e^r$), naturally preserving hierarchical structure and keeping rare classes distinct.
Contributing
Development setup, frontend hot-reload, and backend API notes live in CONTRIBUTING.md.
Related projects
- hyper-scatter: High-performance WebGL scatterplot engine (Euclidean + Poincaré) used by the frontend: https://github.com/Hyper3Labs/hyper-scatter
- hyper-models: Non-Euclidean model zoo + ONNX exports (e.g. for hyperbolic VLM experiments): https://github.com/Hyper3Labs/hyper-models
References
- Poincaré Embeddings for Learning Hierarchical Representations (Nickel & Kiela, 2017)
- Hyperbolic Neural Networks (Ganea et al., 2018)
License
MIT License - see LICENSE for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hyperview-0.1.0.tar.gz.
File metadata
- Download URL: hyperview-0.1.0.tar.gz
- Upload date:
- Size: 37.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e90be6c2ceb7b201cf8524ea3ba6c5a6f553c8d2d2fa7379b758fcfda0fef57d
|
|
| MD5 |
7e2fd2a359c575ea45274721a7e39767
|
|
| BLAKE2b-256 |
3d54b2de5190fa9bb4ee49f7538dc3dc32226c5f62ea575c0b3768ffd2e4eebd
|
File details
Details for the file hyperview-0.1.0-py3-none-any.whl.
File metadata
- Download URL: hyperview-0.1.0-py3-none-any.whl
- Upload date:
- Size: 47.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d32619bf0f5c338a25ce51d97bca39df0fc10bedb990a2217be42d0b1572a94
|
|
| MD5 |
81a86f23676dc3965aa3f7c1272ccfce
|
|
| BLAKE2b-256 |
c7d8abbfece6ee5e3f814206556798cb6f5652a66374bb926b7d4e317a41c3b4
|