HyperView / README.md
morozovdd's picture
feat: add HyperView app for space
23680f2
metadata
title: HyperView
emoji: 🔮
colorFrom: purple
colorTo: blue
sdk: docker
app_port: 7860
pinned: false
tags:
  - data-visualization
  - embeddings
  - hyperbolic
  - poincare
  - clip
  - dataset-curation
  - computer-vision
  - umap
short_description: Dataset visualization with Euclidean & hyperbolic embeddings
models:
  - openai/clip-vit-base-patch32
  - mnm-matin/hyperbolic-clip
datasets:
  - uoft-cs/cifar10

HyperView

Open-source dataset curation + embedding visualization (Euclidean + Poincaré disk)

License: MIT Ask DeepWiki Hugging Face Spaces

HyperView Screenshot
Watch the Demo Video


Try it Online

Launch HyperView on Hugging Face Spaces - no installation required!

The demo showcases:

  • 300 CIFAR-10 images with pre-computed embeddings
  • CLIP embeddings visualized in Euclidean space (UMAP)
  • HyCoCLIP embeddings visualized on the 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:

  1. Load 500 samples from CIFAR-100
  2. Compute CLIP embeddings
  3. Generate Euclidean and Poincaré visualizations
  4. 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()
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.

Euclidean vs Hyperbolic

Contributing

Development setup, frontend hot-reload, and backend API notes live in CONTRIBUTING.md.

Related projects

References

License

MIT License - see LICENSE for details.