{"claim":{"id":"9426e19f-46aa-4cf4-8649-85bdad2aae31","submission_id":"9e13cffd-a8f1-4dcf-b1de-5aa84dafb7c0","submission_revision_id":"81867b84-9f73-4950-b661-9bf08307c508","builder":"builder-01","status":"active","claimed_at":"2026-10-15T16:21:45.593828Z","delivered_at":null,"ended_at":null,"delivery_note":null,"end_reason":null},"task":{"submission_id":"9e13cffd-a8f1-4dcf-b1de-5aa84dafb7c0","submission_revision_id":"81867b84-9f73-4950-b661-9bf08307c508","revision_version":1,"submission_status":"under_review","submitted_at":"2026-10-14T18:25:54.975155Z","submitter_name":"Jinheng Zhang","submitter_email":"jinhengz@engineering.upenn.edu","task":{"status":"submitted","version":1,"extra_fields":{"difficulty_self_test":{"model":"Claude Opus 5.5 (claude-opus-5-5), 4 independent trials","harness":"Claude Code (sub-agent with shell, file and editor tools; no network)","estimated_score":"<1%"}},"submitted_at":"2026-10-14T18:25:54.975155+00:00","industry_domain":"Data Compression — LiDAR Point Clouds for Autonomous Driving (MPEG G-PCC)","task_short_name":"gpcc_lidar_lossless_archival","operating_system":"Linux","task_description":"Objective: You are the data engineer of an autonomous-vehicle fleet. Raw LiDAR sweeps must be archived losslessly as MPEG G-PCC (ISO/IEC 23090-9) bitstreams that the MPEG reference decoder accepts, and every archived sweep must fit a storage budget. Your deliverable is the fleet's archival encoder: a command-line pipeline that the archival service runs, unattended, on sweeps it has never seen.\n\nStarting State: An Ubuntu VM (4 vCPUs, no network). The task folder, /media/user/data/agenthle/computing_math/gpcc_lidar_lossless_archival/base, contains:\n- `input/dev/<sweep>.ply` and `<sweep>.json`: 13 development sweeps. Each PLY (binary little-endian) is one revolution of one LiDAR unit: `x`, `y`, `z` are float32 values holding integer millimetres in the vehicle frame (x forward, y left, z up); `reflectance` is uint8. Each JSON gives `sensor_model`, `lidar_mode`, `columns_per_revolution`, `revolutions_per_second`, `return_mode`, `azimuth_window_mdeg` (the unit's configured azimuth window: encoder angles in millidegrees, counter-clockwise from the first value to the second), `can_speed_mps` and `can_yaw_rate_radps` (the vehicle's CAN-bus speed and yaw rate during the sweep, rounded to 0.1 m/s and 0.01 rad/s), `points` and `budget_bytes`.\n- `software/mpeg-pcc-tmc13-release-v22.0/`: source code and documentation of the MPEG G-PCC reference software (TMC13 release-v22.0).\n- `software/bin/tmc3`: the same software built as a static Linux binary (encoder `--mode=0`, decoder `--mode=1`).\n- `software/cmake-3.28.3-linux-x86_64/bin/cmake`: CMake 3.28.3 (the official Linux x86-64 build), for building modified versions of the software.\n- `software/dev_eval.py`: runs your pipeline on the development sweeps exactly as the archival service runs it on the evaluation sweeps, and reports size, budget, lossless check and run time per sweep.\n\nWhat is known about the recordings:\n- The fleet's LiDARs are Ouster OS0, OS1 and OS2 units with 8 to 128 beams. They spin at 10 or 20 revolutions per second with 512, 1024 or 2048 columns per revolution, in single- or dual-return mode (dual-return sweeps contain both returns); some units restrict their azimuth window, and dropped packets can leave columns of a sweep empty.\n- Every unit is mounted upright (spin axis parallel to the vehicle z axis) at a position and yaw angle that were not retained. The units' factory calibration files were not retained either; individual beam angles differ from the nominal data-sheet values.\n- Every sweep was motion-compensated: using the vehicle odometry, each point was transformed into the vehicle frame at the moment its revolution ended. During a revolution the vehicle moved with nearly constant speed and yaw rate; vehicles may be parked, manoeuvring in a depot, reversing, turning or driving at highway speed. Apart from the rounded CAN-bus values, the odometry was not retained.\n- Sweeps were exported as plain point lists: there are no ring or column indices, no timestamps and no packet data, and the point order carries no information.\n\nInstructions & Rules: Write an executable `output/pipeline/archive_sweep`. For every sweep, the archival service runs\n\n    output/pipeline/archive_sweep IN.ply IN.json OUT.bin\n\nwhere `IN.ply` and `IN.json` have exactly the format of the development files (`IN.json` includes `budget_bytes`). The run must write `OUT.bin`, a G-PCC bitstream such that\n1. the unmodified reference decoder (release-v22.0, the same as `software/bin/tmc3`), run as `tmc3 --mode=1 --compressedStreamPath=OUT.bin --reconstructedDataPath=<decoded>.ply --outputBinaryPly=1`, reconstructs exactly the input sweep: the same multiset of points with identical integer x, y, z and identical reflectance (point order does not matter; no point may be added, dropped, merged or moved), and\n2. `OUT.bin` is no larger than `budget_bytes`.\n\nHow each run is executed: on this VM (4 vCPUs), one sweep at a time, with a fresh empty working directory, an environment that holds only `PATH=/usr/local/bin:/usr/bin:/bin`, `HOME` and `TMPDIR` (fresh scratch directories) and `LANG`, no network, and a wall-clock limit of 300 seconds per sweep (the run is killed at the limit and the sweep fails). Everything the pipeline needs must be inside `output/pipeline/` (scripts, data and any binaries you build); Python 3 with NumPy and SciPy is available at run time.\n\nEvaluation: the archival service runs your pipeline on 11 evaluation sweeps that are not on this VM, with the same kinds of sensors, configurations and driving conditions as described above and in the same file formats. Some come from the same units or recordings as development sweeps, but each has its own mounting, motion and beam calibration. An evaluation sweep passes when the run ends within the time limit, `OUT.bin` is within the sweep's budget, and the reference decoder reconstructs the sweep exactly. The archival service accepts your pipeline only if every evaluation sweep passes: the score is 1 if all 11 pass and 0 otherwise. The development sweeps are not scored.\n\nEvery budget, for development and evaluation sweeps alike, is 5% above the smallest lossless size that an expert encoder reached for that sweep when given its hidden ground truth (calibration, mounting, motion and per-point capture times). An expert pipeline that uses only what your pipeline receives meets every evaluation budget within the time limit.\n\nPython 3 with NumPy and SciPy, GCC/G++ and make are available. Do not access the network; everything you need is on this VM. Do not modify files outside `output`.","software_licensing":"Free/Open Source","evaluation_criteria":null,"verification_method":"Fully automatic and objective. The grader is the evaluate() hook in main.py, which is in the \"Reference Output & Evaluation Dependencies\" zip. No human judgement is involved.\n\nWhat is compared: the agent's output is a program, so there is no single output file to diff. Every bitstream the program writes is checked against (a) the hidden evaluation sweep itself, which must be reproduced exactly, and (b) that sweep's byte budget.\n\nProcedure:\n1. evaluate() stages the 11 hidden evaluation sweeps (never on the VM while the agent works) and its own copy of the unmodified TMC13 release-v22.0 decoder. Before any agent code runs, it checks every SHA-256 checksum (PLY, JSON, point content, decoder) against reference/manifest.json.\n2. For each sweep, one at a time, it runs `output/pipeline/archive_sweep IN.ply IN.json OUT.bin` in a fresh empty working directory, with the environment cleared to PATH/HOME/TMPDIR/LANG, stdin closed, in a new process session and with a 300-second wall-clock limit. Afterwards it kills the session and any process left behind in the run directory.\n3. It decodes OUT.bin with its own checksum-verified decoder (`tmc3 --mode=1 ... --outputBinaryPly=1`) under `env -i` with a 120-second timeout.\n\nA sweep passes only if all three hold:\n- the run finished within 300 seconds;\n- OUT.bin is a regular file (not a symbolic link) no larger than the sweep's budget_bytes;\n- the decoded points equal the hidden sweep exactly: the same multiset of integer (x, y, z, reflectance) rows, point order ignored, with no point added, dropped, merged or moved. The comparison runs host-side against rows read before any agent code ran.\n\nScore = 1 if all 11 sweeps pass, else 0. The number of sweeps passed is logged.\n\nBudgets: budget_bytes = ceil(1.05 × S_ref). S_ref is the smallest lossless size an expert encoder reached for that sweep using the hidden ground truth (true per-point capture times, head path and beam calibration); every candidate was verified with the unmodified decoder.\n\nChecks on the grader, each graded by the real evaluate():\n- Reference pipeline (output_test_pos; uses only what the agent's pipeline receives): 1.0, 11/11 pass, slowest sweep 201–206 s over two runs.\n- MPEG CTC lossless octree pipeline (output_test_neg): 0.0, always lossless but 16–52% over budget.\n- Empty output, crashing, garbage-writing, symlinked or time-limit-exceeding pipelines: 0.0.","software_and_version":"MPEG G-PCC reference software TMC13 release-v22.0; CMake 3.28.3; GCC/G++ (build-essential); Python 3 with NumPy and SciPy","specific_requirements":null,"expected_completion_time":null},"files":[{"file_id":"26774e4c-23d3-4daf-ac4c-b16e62a8a3d2","filename":"gpcc_lidar_lossless_archival__input_materials.zip","category":"input_materials","content_type":"application/zip","size_bytes":23000064},{"file_id":"aa31504c-ee96-406f-8a0c-cb8314b928a5","filename":"gpcc_lidar_lossless_archival__reference_and_evaluation.zip","category":"reference_output","content_type":"application/zip","size_bytes":18393532},{"file_id":"4bae5444-bdd2-4b6b-b8ed-4deb10195e89","filename":"gpcc_lidar_lossless_archival__reference_ground_truth_arrays.zip","category":"reference_output","content_type":"application/zip","size_bytes":20384451},{"file_id":"9c43c99d-1b74-4728-b68c-2b7c7d5aebc4","filename":"gpcc_lidar_lossless_archival__self_test_evidence.zip","category":"difficulty_self_test_evidence","content_type":"application/zip","size_bytes":3566928}],"deep_review":{"overall_verdict":"Strong Accept","review_text":"**Overall Verdict:** Strong Accept — The submission is complete, technically coherent, safely packaged, objectively graded, and supported by credible end-to-end validation.\n\n**Completeness Check:**\n- Instruction: Complete — The required executable, command-line interface, lossless reconstruction contract, byte budgets, runtime environment, time limit, and all-or-nothing success condition are explicit.\n- Inputs: Complete — Thirteen development and 11 hidden sweeps have consistent binary little-endian PLY and JSON schemas, valid point counts, integer-millimeter coordinates, reflectance values, metadata, and budgets.\n- Toolchain: Complete — TMC13 release-v22.0 source and binaries, CMake 3.28.3, build requirements, Python dependencies, licenses, and an agent-visible development evaluator are supplied.\n- Reference output: Complete — The private reference pipeline, encoder patch, hidden sweeps, decoder, oracle results, per-point ground truth, positive fixture, and negative control provide a reproducible answer-key path.\n- Rubric: Complete — The evaluator enforces executable and regular-file requirements, isolation, 300-second encoding limits, decoder conformance, exact multiset equality, byte budgets, and all-11-sweep aggregation.\n\n**File and Task Reachability:**\nAttachment classification: reachable. Task classification: reachable. All four manifest attachments were inspected: `gpcc_lidar_lossless_archival__input_materials.zip`, `gpcc_lidar_lossless_archival__reference_and_evaluation.zip`, `gpcc_lidar_lossless_archival__reference_ground_truth_arrays.zip`, and `gpcc_lidar_lossless_archival__self_test_evidence.zip`. They are readable, unencrypted ZIP containers of approximately 23.0 MB, 18.4 MB, 20.4 MB, and 3.57 MB, containing 3,528, 229, 25, and 35 regular-file entries respectively. Integrity tests passed, declared byte counts matched, and no traversal paths, links, device entries, or material expansion risks were found.\n\nRepresentative documentation, manifests, evaluator and scoring source, development and hidden PLY/JSON records, provenance and license notices, oracle records, NPZ headers and contents, reference-build documentation, validation reports, grading logs, and transcript samples were inspected without executing submitted code. All 24 sweep records agree with their manifests; the 24 NPZ files contain consistent `xyz`, `refl`, `row`, `col`, and `ret` arrays and match corresponding PLY coordinates and reflectance point by point. Every budget equals `ceil(1.05 × S_ref)`, and each oracle’s `S_ref` is its smallest recorded candidate. The solver-visible and evaluator-private materials are properly separated. The independent decoder copy is byte-identical to the solver-visible TMC13 binary and matches the authoritative inner checksum. Submitted reports show the input-only reference pipeline passing 11/11 within budget and time, while the lossless octree negative control passes 0/11 because every result exceeds its budget.\n\nThe end-to-end path is clear: inspect development sweeps, build and package the archival encoder, invoke it in an isolated per-sweep directory, decode its G-PCC output with the verified stock decoder, compare canonical point multisets, enforce the byte budget, and award 1 only when all 11 hidden sweeps pass. Large source trees, executable bodies, VBA payloads in two nonessential upstream result spreadsheets, and complete transcript bodies were not executed or exhaustively line-reviewed; their types, structures, and representative content were safely inspected. Public-source provenance claims could not be independently searched, but the submission provides specific commits, hashes, notices, and coherent licensing evidence. License keys, accounts, tokens, and other credentials are not required from the contributor. Confidential, proprietary, or internal material may be evaluated as submitted evidence without requiring additional disclosure.\n\n**Special Screening:**\nNone\n\n**Recommended Changes:**\nThe submission already provides unusually thorough provenance, isolation, reference, robustness, and control evidence. No changes are required.","reviewed_at":"2026-10-14T18:42:11.869743Z"},"claim":{"id":"9426e19f-46aa-4cf4-8649-85bdad2aae31","submission_id":"9e13cffd-a8f1-4dcf-b1de-5aa84dafb7c0","submission_revision_id":"81867b84-9f73-4950-b661-9bf08307c508","builder":"builder-01","status":"active","claimed_at":"2026-10-15T16:21:45.593828Z","delivered_at":null,"ended_at":null,"delivery_note":null,"end_reason":null}},"revision_is_current":true}