/

Kompakkt

Kompakkt

Kompakkt

Social Media Links

Github

Kompakkt is an open source browser viewer and repository from Cologne and TIB that displays and annotates Gaussian splats for cultural heritage.

Location

Cologne and Hannover, Germany

Size

Total raised

Hiring?

Platform

Browser, with a hosted instance at kompakkt.de. Self hosting runs the full stack through Docker Compose and Bun

GPU

None published. The browser viewer runs on Babylon.js and needs a WebGL2 capable GPU. A self hosted server needs no GPU

Pricing

Free, with no tiers and no paid plan. Self hosting costs only your own infrastructure

License

AGPL 3.0 for the viewer, repository and server. The Mono, Kompressor and Plugins repositories carry no licence file

Best for

Publishing and annotating heritage splats without a commercial host

Updated

July 2026

Kompakkt is an open source browser viewer, annotation system and media repository for 3D models, point clouds and gaussian splats. It is maintained jointly by the Department of Digital Humanities at the University of Cologne and the Open Science Lab at TIB in Hannover, funded through NFDI4Culture, and it is positioned openly as the alternative for institutions that want to publish 3D collections without handing them to a commercial host. The hosted instance carried 848 published objects at the start of August 2026.

Splat support is merged, live and no longer experimental. The first splat code landed in April 2025 alongside a Babylon.js version bump and was labelled experimental at the time. A pull request merged in June 2026 added the parts that matter, and the project announced the capability publicly in July. Rendering is Babylon.js GaussianSplattingMesh rather than a custom renderer, and the Explore page carries a dedicated filter for 3D Gaussian splats.

SPZ is the delivery format and everything normalises to it. Upload accepts spz, splat and spx in the browser, and ply on the server, with a preprocessing service converting each to spz. Neither sog nor ksplat is supported anywhere in the codebase. Objects can also be registered by HTTPS URL rather than uploaded, so an institution can keep a splat on its own server and only index it in Kompakkt, and a standalone web component embeds the viewer on any site with no Kompakkt account at all.

The capability that separates Kompakkt from a viewer is annotation on the splat itself. Ordinary ray and mesh intersection does not work against a splat cloud, so the June change added a screen space picker that walks the raw splat position buffer to find the nearest splat under the cursor, along with a dialog to reposition an annotation afterward. Annotations attach to points in 3D space, group into collections and support collaboration, which is the workflow a museum or archive needs and a generic viewer does not provide. Museums have been an obvious application for radiance fields since well before splats were practical.

Running your own instance takes Docker, Docker Compose, Bun and Git, and brings up the repository, viewer, server, MongoDB, a Redis compatible cache, a search index and the conversion services together. Two things are worth knowing first. The orchestration repository describes itself as a development environment and there is no published production deployment guide, and the three repositories a self hoster most needs, covering orchestration, preprocessing and plugins, carry no licence file at all while the rest of the project is AGPL 3.0. The user documentation also still lists supported formats without mentioning splats or point clouds.

Frequently Asked Questions

Does Kompakkt support Gaussian splatting?

Yes, and it is merged and live rather than experimental. Splats are a first class media type on the hosted instance, with a dedicated filter on the Explore page. Splat code first landed in April 2025 and was substantially extended by a pull request merged in June 2026.

Which splat formats does Kompakkt accept?

SPZ is the primary format and the one actually delivered to the browser. The upload interface also accepts splat and spx, and the server accepts ply, with a preprocessing service converting each to SPZ. Sog and ksplat are not supported.

What renders the splats in Kompakkt?

Babylon.js. The viewer uses the GaussianSplattingMesh type and Babylon's own splat loader rather than a custom renderer. Kompakkt's own importer work is for point clouds in COPC and LAZ, not for splats.

Can I annotate a Gaussian splat in Kompakkt?

Yes. Because splats cannot be picked by ordinary ray and mesh intersection, Kompakkt added a screen space picker that projects the raw splat position buffer to find the nearest splat under the cursor, together with a dialog to reposition the annotation afterward.

What does it take to run my own Kompakkt instance?

Docker, Docker Compose, Bun and Git. One orchestration repository brings up the repository, viewer, server, database, cache, search index and conversion services on localhost. No GPU is needed on the server, since the rendering happens in each visitor's browser.

Alternatives