free-splatter.cpp / README.md
richiejp's picture
Upload README.md with huggingface_hub
9dcf42c verified
|
Raw
History Blame Contribute Delete
2.86 kB
metadata
license: apache-2.0
base_model: TencentARC/FreeSplatter
pipeline_tag: image-to-3d
library_name: gguf
tags:
  - gguf
  - ggml
  - gaussian-splatting
  - 3d-reconstruction
  - free-splatter.cpp
  - pose-free

free-splatter.cpp — GGUF weights

GGUF conversions of TencentARC/FreeSplatter for free-splatter.cpp, a small C/C++ (ggml) inference engine that runs the FreeSplatter neural-network front-half on CPU or a Vulkan GPU — no camera poses, no Python.

Given N uncalibrated images it returns, for every input pixel, a 3D Gaussian (position · spherical-harmonic colour · opacity · scale · rotation) that a Gaussian-splatting viewer can render. The rasterizer and PnP pose solver are out of scope — these weights cover the patch tokenizer → multi-view transformer → per-pixel Gaussian head.

Files

file variant precision size notes
freesplatter-scene-f16.gguf scene f16 ~596 MB recommended; 2 overlapping views of a scene
freesplatter-scene-f32.gguf scene f32 ~1.2 GB full precision (reference / CPU)
freesplatter-object-f16.gguf object f16 ~596 MB 3–4 views around one object

All variants share the same transformer backbone; they differ only in the head config (gaussian_channels, sh_residual, use_2dgs) and what they were trained on. The GGUF carries those as free-splatter.* KV metadata, so the engine configures itself from the file.

Usage

# build the engine (see the repo README), then:
free_splatter-cli --device vulkan --splat scene.splat \
  freesplatter-scene-f16.gguf view1.jpg view2.jpg

Each view is center-cropped and resized to 512×512. The output .splat (antimatter15 format) opens in the bundled WebGL viewer or any Gaussian-splatting viewer; pass --out result.f32 instead for the raw [N, 512, 512, gaussian_channels] float32 Gaussian tensor. There is also a drop-photos-in-the-browser web app and a multi-scene demo-video renderer — see the project repo.

How these were made

Converted with scripts/convert.py directly from the upstream FreeSplatter .safetensors checkpoints (needs only torch + safetensors + gguf). The converter maps the transformer.* weights of pieces 1–3 and fails loudly on any unmapped or missing tensor — no weight is silently dropped.

License & attribution

Apache-2.0. These are derivative weights of TencentARC/FreeSplatter (Apache-2.0); all credit for the model goes to the FreeSplatter authors. The GGUF packaging and the inference engine are part of free-splatter.cpp.