KITTI-360 camera-LiDAR v3: access and conversion readiness¶
Current status, 2026-10-23: official access verified from local Windows; spent-data conversion validated; no v3 pre-registration or evaluation. Camera-LiDAR v2 remains refuted (8/9). These checks establish input readiness, not calibration accuracy or SOTA. The dated cloud failure below is preserved as history and does not describe current local access.
Local recheck, 2026-10-23¶
The official download page
links the distribution-script ZIPs. They were inspected, never executed;
no account, interactive login or credentials were used. The scripts specify
rectified perspective archives as data_2d_raw/SEQUENCE_image_00.zip and
point clouds as data_3d_raw/SEQUENCE_velodyne.zip under the official S3 base.
Twenty archives passed metadata inventory: camera and Velodyne for the eight sequences below, calibration, OXTS and the two timestamp archives. A separate published-poses archive also passed: 21 archives total. Every metadata GET required the pinned ETag, HTTP 206, exact Content-Range and exact body length. Only ZIP end records and central directories were read at this stage; sensor payload bytes were zero, including for provisional candidates.
| Sequence | Rectified images | Point clouds | First common ID | Eligibility |
|---|---|---|---|---|
0000 |
11,518 | 11,518 | 0 | spent; development only |
0002 |
14,607 | 14,849 | 4391 | spent; development only |
0004 |
11,587 | 11,587 | 0 | provisional candidate |
0005 |
6,743 | 6,743 | 0 | provisional candidate |
0006 |
9,699 | 9,699 | 0 | provisional candidate |
0007 |
3,396 | 3,396 | 0 | provisional candidate |
0009 |
14,056 | 14,056 | 0 | provisional candidate |
0010 |
3,836 | 3,836 | 0 | provisional candidate |
0003 remains spent and excluded. The six provisional candidates' sensor
contents have not been opened in this work. Their exposure audit is incomplete;
member counts alone do not select 60-second evaluation intervals.
The original access report
retains a failed ancillary-member assertion while extracting the perspective
script ZIP. Both selected scripts had already been extracted. The saved ZIP
passed an offline CRC/identity check; its README.md was ignored in the separate
recovery receipt.
There was no redownload and the failed report was not rewritten as a pass.
Real conversion on spent data¶
Source 7f652896 validated the existing published-pose converter. Source
036c67ba7dc9eaba878d734430fbea6b8d70abbf added and validated explicit
--motion-source oxts. The default remains published_poses.
| Motion source | Sequence | Selected frame IDs | Result |
|---|---|---|---|
| published poses | 0000 |
1, 9, 14 | PASS |
| published poses | 0002 |
4391, 4392, 4393 | PASS |
| raw OXTS | 0000 |
0, 1, 2 | PASS |
| raw OXTS | 0002 |
4391, 4392, 4393 | PASS |
Each bag was reopened and contained three images, three camera-info messages, three point clouds, three odometry messages and one static-TF message. Selected official members were acquired through exact pinned ranges and verified for size and CRC. Each run had a 128 MiB uncompressed input cap; hash-verified files were reused for OXTS checks. This stage did read spent sensor payloads; fresh candidate payload bytes stayed zero. These tiny checks do not establish full-sequence completeness, motion observability or calibration quality.
OXTS mode uses its own packet timestamps and records the earliest supplied
packet as its local Mercator origin, including its hash when outside the frame
window. It uses kitti360_oxts_world and does not read or hash optimized
poses.txt. Missing OXTS is an error, without automatic fallback. This avoids
using image/LiDAR-optimized poses as independent motion evidence; raw GNSS/INS
is still not metrology. Twists remain finite-difference approximations and point
times remain a declared azimuth model. Frame 4391 is where 0002 images and
point clouds start; published pose rows themselves start at frame 1.
calibrex convert kitti-360 DATASET_ROOT --sequence 2013_05_28_drive_0000_sync \
--output BAG --motion-source oxts --start-frame 0 --max-frames 3
Evidence and remaining work¶
The manifest binds unmodified reports, schemas and exact producer/source capsules by SHA-256 and byte count. The range bindings include all 21 archive sizes/ETags, inventory hashes, code identity and each metadata range's offsets/hash. Full inventories stay local (about 62 MB); the public bundle is about 0.22 MB. Images, point clouds, bags and third-party distribution scripts are not republished. Reports retain machine-local paths as provenance, not portable download locations. The frame summary uses archive member names only.
Generate the 55 spent-drive comparison, confirm the selected rule through real checks, and derive gates from those development results. Complete exposure auditing and freeze metadata-based interval selection (both done 2026-10-31, see the exposure audit and segments), then timestamp-boundary checks, reference hashes and failure policy. KITTI-360 is one dataset family and one platform; separate sequences do not establish independent rigs. Preserve the research plan's broader comparison requirements. Freeze code and open a separate pre-registration PR for review before reading new evaluation sensor contents.
Historical report, 2026-10-15¶
The following is the original cloud access report. Its pending/blocked status is historical; the local results above supersede it.
Status: official archive access still blocked; no pre-registration. On 2026-10-15, this managed environment could not reach the official archive host: an HTTP HEAD request for a spent development sequence returned 403. After the initial stop, the user requested continued development. A synthetic-tested converter is in PR #236, and an opt-in far-start margin plus spent-data replay tooling is in PR #237. Actual converter validation on 0000/0002 and the 55-drive comparison remain pending access. This is an access report, not a new audit verdict; camera-LiDAR v2 remains refuted (8/9). No evaluation has started.
Distribution and documented layout¶
The official login page requires an account to download data; an existing KITTI account can be used. No account was registered, no interactive login was attempted, and no credential was requested. The download page lists these aggregate sizes (the site's units, not measured byte counts):
| Component | Published total | Official download URL |
|---|---|---|
| Perspective images, train/validation | 128G | download script ZIP |
| Raw Velodyne scans | 119G | download script ZIP |
| Calibration | 3K | calibration ZIP |
| Vehicle poses | 8.9M | poses ZIP |
| Synchronized OXTS | 37.3M | OXTS ZIP |
The official format documentation
describes the following extracted layout, with SEQUENCE expanded to
2013_05_28_drive_NNNN_sync:
calibration/{perspective.txt,calib_cam_to_velo.txt,calib_cam_to_pose.txt,...}
data_2d_raw/SEQUENCE/image_{00,01}/{data_rect,data_rgb}/FFFFFFFFFF.png
data_2d_raw/SEQUENCE/image_{00,01}/timestamps.txt
data_3d_raw/SEQUENCE/velodyne_points/data/FFFFFFFFFF.bin
data_3d_raw/SEQUENCE/velodyne_points/timestamps.txt
data_poses/SEQUENCE/{poses.txt,cam0_to_world.txt}
data_poses/SEQUENCE/oxts/{data/FFFFFFFFFF.txt,timestamps.txt,dataformat.txt}
This is the documented layout, not a verified archive member list. The
repository's existing tools/download_kitti360_selected_frames.py uses
https://s3.eu-central-1.amazonaws.com/avg-projects/KITTI-360/data_3d_raw/SEQUENCE_velodyne.zip
for per-sequence Velodyne archives, and range-reads fisheye archives. That code
is prior implementation evidence, not a successful current access test or a
perspective-camera converter. The perspective script's per-sequence URLs and
archive grouping remain unverified.
Sequence inventory and previous exposure¶
| Sequence ID | Eligibility for a future camera-LiDAR evaluation | Exact archive bytes / ETag / members |
|---|---|---|
0000 |
spent; development only | not obtained in this access check |
0002 |
spent; development only | not obtained |
0003 |
spent; exclude (prior development capture, below) | not obtained |
0004 |
candidate, subject to the remaining exposure audit | not obtained |
0005 |
candidate, subject to the remaining exposure audit | not obtained |
0006 |
candidate, subject to the remaining exposure audit | not obtained |
0007 |
candidate, subject to the remaining exposure audit | not obtained |
0009 |
candidate, subject to the remaining exposure audit | not obtained |
0010 |
candidate, subject to the remaining exposure audit | not obtained |
The handoff had omitted 0003. The existing
research plan explicitly records a
materialized drive 0003 development capture: 25 center frames, a 550-member
Velodyne window selection, pose motion compensation, and correspondence
methods. The paragraph was introduced by commit
71c6098bce575c9856104debeacc865b1fd1ca97; it is already in the base commit of
this access check. A changed camera stream does not make the recording unread
again. No raw data or poses from 0003 were read in this session, and it was
not used for new development. The remaining six candidates are not yet a frozen
evaluation set: their exposure audit and metadata inventory are unfinished.
HTTP check and Range status¶
The following request, at 08:31:22 UTC (17:31:22 UTC+09:00) on 2026-10-15,
used only the spent 0000 sequence and requested headers only:
curl --head --silent --show-error --fail --max-time 30 \
'https://s3.eu-central-1.amazonaws.com/avg-projects/KITTI-360/data_3d_raw/2013_05_28_drive_0000_sync_velodyne.zip'
HTTP/1.1 403 Forbidden
content-length: 16
content-type: text/plain
date: Thu, 15 Oct 2026 08:31:22 GMT
server: envoy
connection: close
curl: (22) The requested URL returned error: 403
The 16 bytes describe the denial response, not the archive size. No ETag,
archive size, or Accept-Ranges was obtained. The selected executor's
/etc/codex/network-policy.json has a restricted allowlist that excludes both
s3.eu-central-1.amazonaws.com and www.cvlibs.net. GitHub access worked after
enabling the command's supported network permission; the same permission did
not make the archive accessible. This establishes a block in this environment,
not that KITTI-360 is unavailable globally or that S3 itself requires a login.
The environment status tool did not establish an enforced-policy readiness
state, so the actual 403 is retained as the access evidence.
HTTP Range support is unverified. No Range request or central-directory
fetch followed the failed HEAD. Once access is configured, first verify size
and ETag on HEAD, then use exact ZIP end-record/central-directory ranges with
If-Match, require HTTP 206 and the exact Content-Range, and list members
without opening them. Avoid block-cached readers that also fetch neighboring
image, point-cloud, or pose payloads during a metadata-only inventory. Only
after the metadata inventory can disjoint nominal 600-frame windows be selected;
the registration must also freeze how actual 60-second boundaries are checked
after timestamps become readable. No timestamps were read to select windows here.
Exact-range metadata inventory tool¶
tools/kitti360_archive_metadata.py is ready for the access recheck. It takes
an actual official ZIP URL obtained from the distribution documentation or
download scripts; it does not guess perspective archive URLs. For the already
documented spent sequence 0000 Velodyne URL:
PYTHONPATH="$PWD/src" .venv/bin/python tools/kitti360_archive_metadata.py \
--url 'https://s3.eu-central-1.amazonaws.com/avg-projects/KITTI-360/data_3d_raw/2013_05_28_drive_0000_sync_velodyne.zip' \
--output /tmp/kitti360-0000-velodyne-metadata.json
The tool first requires a successful HEAD with an archive size and strong ETag.
It then requests exactly 22 bytes for the ZIP end record, the fixed ZIP64 end
records when needed, and the exact central-directory range. It never opens a
member or requests a local header or its neighboring payload. Every GET uses
If-Match, and checks HTTP 206, exact Content-Range, exact length, unchanged
ETag and identity encoding before reading the body. Redirects are refused;
default proxy and TLS verification are preserved. A server that ignores Range
does not cause a full-archive read.
The ZIP parser reads a bounded memory view of these retained ranges at their original offsets. It does not create an archive-sized temporary file, including on Windows filesystems that allocate physical space for file truncation. The integration check on 2026-10-18 retained the ZIP64 regression above 4 GiB and all 20 metadata tests passed; no official sensor data was read for that check.
Comments, split ZIPs, extended/displaced ZIP64 end records, inconsistent counts, duplicate names and directories over 64 MiB stop the inventory. The tool never broadens a tail read to work around an unsupported format. This restriction is deliberate: a broad ZIP tail can contain sensor payloads, especially for a small archive. Existing raw-audit tooling and frozen audit verdicts are unchanged.
Successful JSON inventories contain member names, sizes, compression, CRC-32, local-header offsets, sequence IDs as strings, URL, archive size/ETag, actual Range verification and provenance: code commit, generator hash, UTC timestamp and every range's offsets/hash. No existing output is overwritten. There is no window selection, estimator call, sensor timestamp read or pre-registration.
Synthetic regressions verify ZIP/ZIP64 listings and sparse offsets above 4 GiB, with every requested byte constrained to metadata. They also cover ignored Range, mismatched headers, truncated responses, unsupported end records, directory limits/counts and output preservation. These tests do not establish Range support or member layouts on the official host. All candidate inventories and 60 s interval selection remain pending actual metadata access.
The tool itself was attempted against the spent 0000 URL on 2026-10-15. It stopped
at HEAD with Tunnel connection failed: 403 Forbidden; no GET followed and no
inventory file was produced. This confirms the environment block, rather than
verifying archive format or Range support.
Exposure and provenance¶
- Repository base:
3906078275cb334c8bc8c2dd18513692a5fc7750(origin/main), inspected in a separate worktree on 2026-10-15. - Instructions read in order:
AGENTS.md,docs/sota_handoff.md,docs/benchmarks/sota_leaderboard.md, then the v2 check report. - Official HTML documentation and download-link targets were inspected through the browser tool. Following the five ZIP links in the distribution table returned unsupported-ZIP-content errors and only exposed their target URLs; it did not expose image, point-cloud, calibration, OXTS or pose contents. This is not verification of the archives or their headers.
- The shell archive access was the HEAD request above; an earlier sandboxed attempt could not connect to the proxy. No candidate archive was downloaded, listed, extracted or passed to a method in this session.
- Exposure searches inspected repository prose/code and history, including
git log --all -S 'drive 0003' -- docs/research/camera_lidar_sota_plan.md. - This step adds only the metadata inventory tool, its synthetic tests and documentation. Converter and estimator proposals remain in their separate step PRs. No threshold, pre-registration, existing verdict or protected draft PR was changed. No evaluation run was started.
Next choices¶
- Resume camera-LiDAR v3 after the official distribution host is available
through the environment configuration workflow (and a legitimate download
route is established). Repeat metadata-only checks, exclude spent
0003, develop the converter only on0000/0002, compare the estimator rules on all 55 spent raw drives, then open the pre-registration PR and stop for human approval. Do not freeze a claim from these incomplete access results. - Alternatively, pursue the handoff's first
ins-lidarclaim: gate the judged roll, pitch and clock offset plus coverage. Use only spent INS-LiDAR data for development, audit exposure before choosing new evaluation drives, and disclose v2's prior camera-LiDAR reads of Velodyne/OXTS. Dataset access and development metrics still need verification; no supported outcome is promised.
Camera-LiDAR development has resumed on synthetic inputs only; the real-data work remains blocked. The alternative audit has not been started. Existing audit verdicts and the leaderboard remain unchanged.