{"submission_id":"6de46f73-98a9-42a7-8bf6-6e88340bafff","submission_revision_id":"461e1cb3-759e-4e2d-bbcc-2604811762a9","revision_version":2,"submission_status":"under_review","submitted_at":"2026-08-16T13:40:27.319404Z","submitter_name":"Aditya Prakash","submitter_email":"prakashadityaap@gmail.com","task":{"status":"submitted","version":2,"extra_fields":{},"submitted_at":"2026-08-16T13:40:27.319404+00:00","industry_domain":"Robotics / Computer Vision (tool calibration)","task_short_name":"pivot_calibration","operating_system":"Linux","task_description":"Summary: given many poses of a rigid tool pivoted about a single fixed point, solve the linear least-squares system R_i·p_tip + t_i = p_pivot to recover the tool-frame tip offset and the world-frame pivot point. Output both plus the achieved RMS to\n`result.json`. Formulas and schema are in `SPEC.md`. See below:\n\n## Goal\nA rigid tool is pivoted about a single fixed point. `scene.json` gives `N` samples of\nthe tool pose `T_tool_to_world` (4×4, row-major). The tool tip is a fixed unknown\noffset `p_tip` expressed in the **tool** frame; across all samples it maps to the same\nfixed pivot point `p_pivot` in the **world** frame:\n\n```\nR_i · p_tip + t_i = p_pivot     for every sample i\n```\n\nwhere `R_i`, `t_i` are the rotation and translation of `T_tool_to_world` for sample i.\nRecover both `p_tip` (tool frame) and `p_pivot` (world frame). Measurements carry small\nnoise; report the **least-squares** solution.\n\n## Method\nStack the linear system for the 6 unknowns `[p_tip; p_pivot]`:\n\n```\n[ R_i   -I ] [ p_tip  ]   [ -t_i ]\n[          ] [ p_pivot] = [      ]     (3 rows per sample)\n```\n\nSolve by linear least squares (e.g. `numpy.linalg.lstsq`).\n\n## Input: `scene.json`\n```\n{ \"poses\": [ [[4x4]], [[4x4]], ... ] }     # each is T_tool_to_world, row-major, mm\n```\n\n## Output: `result.json`\n```\n{\n  \"p_tip_tool\":   [x, y, z],\n  \"p_pivot_world\":[x, y, z],\n  \"rms_error\": <float>   // sqrt( (1/N) * sum_i || R_i p_tip + t_i - p_pivot ||^2 )\n}\n```\nPython 3.11 + NumPy only. No network access.\n","software_licensing":"Free/Open Source","evaluation_criteria":null,"verification_method":"Binary pass/fail via `python grader.py scene.json result.json <agent_output_file>`. ALL must hold:\n\n1. Submission has keys `p_tip_tool` (3-vector), `p_pivot_world` (3-vector), `rms_error`.\n\n2. The solution is optimal on the data: recomputed RMS <= reference optimum + 1e-4.\n\n3. Self-reported rms_error matches the recomputed value (tol 1e-4).\n\n4. p_tip_tool and p_pivot_world each match the reference within 1e-3 mm (Euclidean).","software_and_version":"Python 3.11 with NumPy 1.24+ (standard library only otherwise)","specific_requirements":null,"expected_completion_time":null},"files":[{"file_id":"5a70ae63-07f8-49b1-aa0d-1b6476ec7783","filename":"SPEC.md","category":"input_materials","content_type":"text/markdown","size_bytes":1177},{"file_id":"10c24c4a-60a3-4acd-9c8a-391dcbcffcb3","filename":"scene.json","category":"input_materials","content_type":"application/json","size_bytes":12533},{"file_id":"160ef3e8-9b9a-409a-8db3-ddca42077cc1","filename":"result.json","category":"reference_output","content_type":"application/json","size_bytes":247},{"file_id":"b2bf698f-3d3f-499d-94ff-5b9aa7a6d7e9","filename":"grader.py","category":"reference_output","content_type":"text/x-python","size_bytes":3427}],"deep_review":{"overall_verdict":"Strong Accept","review_text":"**Overall Verdict:** Strong Accept — The submission is complete, internally consistent, objectively gradable, and fully reachable with the declared offline toolchain.\n\n**Completeness Check:**\n- Instruction: Complete — The coordinate frames, linear system, units, least-squares method, RMS definition, and output schema are explicit.\n- Inputs: Complete — `SPEC.md` and `scene.json` are readable and consistent; the scene contains 25 finite 4×4 poses with valid homogeneous rows and numerically orthonormal rotations.\n- Toolchain: Complete — Python 3.11 and NumPy 1.24+ on Linux provide a legal, ordinary, single-machine offline workflow.\n- Reference output: Complete — `result.json` has the required finite values, and independent recomputation matches its tip, pivot, and RMS to numerical precision.\n- Rubric: Complete — `grader.py` implements the documented schema, finiteness, optimality, RMS-reporting, and reference-match checks with consistent tolerances.\n\n**File and Task Reachability:**\nThe attachment set is `reachable`, and the end-to-end task is `reachable`. All four manifest files were inspected: `SPEC.md` (1,177-byte UTF-8 Markdown), `scene.json` (12,533-byte JSON), `result.json` (247-byte JSON), and `grader.py` (3,427-byte UTF-8 Python source). Their actual formats and byte counts match the manifest, all text is valid UTF-8, both JSON files parse cleanly, and no content remained unreviewed. The 75×6 calibration system has full numerical rank; the supplied reference agrees with an independent solution, including RMS 0.0470790032 mm. The grader was reviewed statically rather than executed, as required for submitted programs; no material tooling limitation remains. Solver-visible inputs and evaluator/reference assets are clearly separated by manifest category. A solver can read the poses, solve the stated system with NumPy, write the three required fields, and receive deterministic binary evaluation. 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 coherent inputs, a numerically verified reference, and a hardened evaluator. No changes are required.","reviewed_at":"2026-08-16T14:03:44.369638Z"},"claim":null}