ZipSplatPlus / README.md
Yosun's picture
Fix YAML short_description length for HF space metadata
b4f0f40
|
Raw
History Blame Contribute Delete
6 kB

A newer version of the Gradio SDK is available: 6.22.0

Upgrade
metadata
title: 'ZipSplatPlus: Real-time 3D Gaussian Splatting & Stroke Playback'
emoji: 
colorFrom: indigo
colorTo: purple
sdk: gradio
sdk_version: 6.20.0
python_version: '3.12'
app_file: app.py
pinned: false
short_description: 3D Gaussian Splatting with stroke playback.
tags:
  - 3d-gaussian-splatting
  - stroke-playback
  - 3d-reconstruction
  - single-image-to-3d
  - multi-view-reconstruction
  - sparkjs
  - live-photos
  - heic-support
  - zerogpu
  - 3d-vision
  - computer-vision
  - novel-view-synthesis
  - gradio
models:
  - veichta/zipsplat
license: mit
thumbnail: thumbnail.png

🔥 ZipSplatPlus: Real-Time 3D Gaussian Splatting & Stroke Playback

Hugging Face Space GitHub Repository ZeroGPU Model Weights Paper License: MIT

Instant 3D Gaussian Splatting from single/multi-view images, videos, & Apple Live Photos with ZeroGPU dynamic acceleration, real-time interactive stroke-by-stroke WebGL playback, 360° turntable & stroke video generation, and compressed .PLY export.

ZipSplatPlus Showcase Banner


🚀 Quick Links


🌟 Key Features & Capabilities

  • Single-Pass 3D Scene Generation: Reconstruct high-fidelity 3D Gaussian Splatting scenes from single or unconstrained multi-view photos without per-scene optimization loops.
  • 🖌️ Interactive Stroke-by-Stroke Playback: Play back each predicted 3D Gaussian "stroke" step-by-step! Explore how neural tokens paint the 3D scene in real-time with scrub slider, play/pause controls, and speed adjustments.
  • 🎨 Multiple Render Modes:
    • Cumulative: Watch the 3D scene build up progressively stroke by stroke.
    • Single Stroke: Isolate and inspect individual 3D Gaussian strokes (32 Gaussians/token).
    • Colorized: Assign vibrant, distinct color palettes to each stroke to visualize token layout.
  • 🎬 Stroke-by-Stroke Turntable Video Export: Automatically renders smooth MP4 videos showing the 3D scene being painted stroke-by-stroke during camera orbit.
  • 🎨 Real-Time Web Viewer: Powered by Spark.js (@sparkjsdev/spark), enabling 60 FPS orbit, pan, and zoom inside the browser using client-side WebGL shaders.
  • 📱 Native Apple Live Photo & HEIC/HEIF Support: Direct decoding of iPhone/iPad .HEIC/.HEIF photos, .MOV/.MP4 videos, and paired Apple Live Photos (.HEIC + .MOV).
  • 💾 Standard 3D Model Export: Download compressed Gaussian .PLY files compatible with Blender, Unity, Unreal Engine, SuperSplat, and WebGL viewers.

📸 Supported Input Formats

ZipSplatPlus handles a wide range of visual inputs with intelligent frame sampling:

Format Category File Extensions Capabilities
Still Images .jpg, .jpeg, .png, .webp Single or multi-view photo capture.
Apple HEIC/HEIF .heic, .heif Direct iOS high-efficiency image container parsing.
Video Sweeps .mov, .mp4, .m4v Smart temporal sampling & frame extraction for video clips.
Apple Live Photos .heic + .mov pairs Merges keyframe still photo + short video motion burst for multi-view density.

🛠️ Local Installation & Quickstart

To run ZipSplatPlus locally on your machine with GPU support:

# 1. Clone the repository
git clone https://github.com/ai3d-dev/ZipSplatPlus.git
cd ZipSplatPlus

# 2. Create and activate a virtual environment
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# 3. Install PyTorch (with CUDA support matching your system)
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121

# 4. Install ZipSplatPlus dependencies
pip install -r requirements.txt

# 5. Launch the local Gradio web server
python app.py

Open your browser and navigate to http://localhost:7860.


🛸 System Architecture

graph TD
    A["📷 Input Media (Images / Videos / Live Photos)"] --> B["⚙️ Media Loader & Smart Frame Sampler"]
    B --> C["⚡ ZipSplat Neural Model (CUDA / ZeroGPU)"]
    C --> D["🔮 3D Gaussian Primitives (Ordered by Token Strokes)"]
    D --> E["🌐 Spark.js Interactive Viewer + Stroke HUD"]
    D --> F["🖌️ Stroke-by-Stroke Playback Video (.mp4)"]
    D --> G["🎥 360° Turntable Video (.mp4)"]
    D --> H["💾 Downloadable 3D Model (.ply)"]

📜 References & Citation

@article{veicht2024zipsplat,
  title={ZipSplat: Fewer Gaussians, Better Splats},
  author={Veicht, Alexander and others},
  journal={arXiv preprint},
  year={2024}
}

Acknowledgments


Developed by ai3d-dev • Built for the 3D Vision & Open-Source Community