Skip to main content

colmap4d

PyPI CI spec v1.0 frozen

A standard COLMAP sparse model + one timestamp per image + one timestamp per point. Every image and every point becomes an independent sample in spacetime (x, y, z, t). Nothing else: frame sync is just timestamps being close, and any discretization is a derived view or a render parameter, never stored data.

colmap4d adds up to three sidecar files to an ordinary COLMAP model and changes no existing file — so old tools open it as a perfectly normal (static) reconstruction, while a 4D-aware viewer unlocks a free 3D view + a draggable time axis.

Spec v1.0 — frozen. See the specification; Part I and the conformance goldens are normative, and changes follow the CHANGELOG.

colmap4d is an independent, community extension of the COLMAP output format. It is not affiliated with or endorsed by the COLMAP project; "COLMAP" is used only to name the format it extends.

Which one are you?

I want to… go to
Read colmap4d data (the common case) Quick start below — pip install colmap4d, three lines
Produce colmap4d data (convert / write) docs/converters.md
Build a second implementation (C++/Rust/JS) the spec: implement Part I, then pass every fixture in conformance/golden/ at the v1.0 tag
Contribute (human or AI agent) CONTRIBUTING.md + AGENTS.md
Drive colmap4d from an AI agent the colmap4d skill

More detail: repository layout, dev commands & versioning.

Read colmap4d data (quick start)

Read a COLMAP model together with its time layer — zero dependencies:

import colmap4d

mv = colmap4d.load_model_view("path/to/sparse")   # COLMAP model dir, with or without sidecars

mv.point_time(42)              # -> t_ns (int64 ns), or None if the point is temporally-unbounded
mv.image_time(1)               # -> t_ns, or None
mv.effective_points_t()        # {point3d_id: t_ns}, dangling ids already dropped
mv.sidecars.time_meta          # {"clock_domain": "utc_ntp", ...} or None

Just the timestamps, without the base model: colmap4d.load_sidecars("path/to/sparse").

A plain COLMAP model (no sidecars) loads fine: empty times, all points temporally-unbounded — the backward-compatibility baseline. The reader is standard-library only; pip install 'colmap4d[model]' adds pycolmap for authoritative parsing and 3.12 rigs/frames support.

Uploading time to a GPU (4DGS/NeRF)? Rebase first — raw epoch ns overflows float32; upload (t − t0) seconds as float32 via colmap4d.rebase_to_seconds_f32(t, mv.t0_ns()).

License

Apache-2.0.

Metadata

Release files for colmap4d 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for colmap4d 1.0.2
File Size Uploaded Provenance Actions
colmap4d-1.0.2.tar.gz 30.1 kB Without provenance Details for colmap4d-1.0.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for colmap4d 1.0.2
File Interpreter ABI Platform Actions
colmap4d-1.0.2-py3-none-any.whl Python 3 none any Details for colmap4d-1.0.2-py3-none-any.whl

Total release size: 62.4 kB

Release files / colmap4d-1.0.2.tar.gz

Download URL colmap4d-1.0.2.tar.gz
Size 30.1 kB
Tags Source
SHA-256 checksum
How to use checksums
316b424f02a5893d42bed547f90edcf1f8ce0185c2d4ac0f0926c10fc6ada314
BLAKE2b-256 checksum
How to use checksums
5c32de094e42089e66a61c8c9811907c7b19ccfee85548fe9ac1ca84ca6e6f3f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Release files / colmap4d-1.0.2-py3-none-any.whl

Download URL colmap4d-1.0.2-py3-none-any.whl
Size 32.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8f5a8f0e959b17aa911d0f14e3f6b0a91f73a7f6ac692a23277dcce96494e8ae
BLAKE2b-256 checksum
How to use checksums
efe9e56c57f43cd5b3dc88409956e2f0e39f28fce1c228a3b2595495bdd02f4c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Security for colmap4d 1.0.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page