{"claim":{"id":"3c232470-d53c-42e7-baed-b85ca9481c60","submission_id":"b0d5ebb2-5f0b-4d53-90e5-1d81f281a078","submission_revision_id":"93fd2ddb-6c3d-46c8-9932-cf03105668cd","builder":"builder-01","status":"active","claimed_at":"2026-10-15T15:05:49.981888Z","delivered_at":null,"ended_at":null,"delivery_note":null,"end_reason":null},"task":{"submission_id":"b0d5ebb2-5f0b-4d53-90e5-1d81f281a078","submission_revision_id":"93fd2ddb-6c3d-46c8-9932-cf03105668cd","revision_version":2,"submission_status":"under_review","submitted_at":"2026-08-16T13:40:48.346497Z","submitter_name":"Aditya Prakash","submitter_email":"prakashadityaap@gmail.com","task":{"status":"submitted","version":2,"extra_fields":{},"submitted_at":"2026-08-16T13:40:48.346497+00:00","industry_domain":"Robotics / Computer Vision (spatial trajectory interpolation)","task_short_name":"pose_interpolation_slerp","operating_system":"Linux","task_description":"Summary: given a timestamped trajectory of poses (unit quaternion + translation) and a list of query timestamps, interpolate each query pose using shortest-path SLERP for rotation and linear interpolation for translation, and report the geodesic angle between consecutive query rotations. Output to `result.json`. Formulas and schema are in `SPEC.md`. See below:\n\n## Goal\n`scene.json` gives a `trajectory`: a time-ordered list of poses, each with a timestamp\n`t`, a unit quaternion `q = [w, x, y, z]` (rotation), and a translation `p = [x, y, z]`.\nIt also gives a list of `queries` (timestamps, each within the trajectory's time span).\n\nFor every query timestamp, interpolate the pose between its two **bracketing** trajectory\nsamples:\n- **Rotation:** spherical linear interpolation (SLERP), taking the **shortest path**\n  across the quaternion double cover.\n- **Translation:** linear interpolation.\n\nAlso report the geodesic angle (degrees) between each query's rotation and the\n**previous query's** rotation.\n\n## Conventions\n- Quaternions are `[w, x, y, z]`, unit norm. Because `q` and `−q` are the same rotation,\n  report every output quaternion in **canonical form with `w ≥ 0`** (negate if `w < 0`),\n  then renormalize.\n- SLERP between `q0`, `q1` at parameter `u ∈ [0,1]`: if `dot(q0,q1) < 0`, negate `q1`\n  first (shortest path). If nearly parallel (`dot > 0.9995`), fall back to normalized\n  linear interpolation. Otherwise `θ = acos(dot)`,\n  `q = sin((1−u)θ)/sinθ · q0 + sin(uθ)/sinθ · q1`, renormalized.\n- Interpolation parameter for a query `tq` bracketed by `t0 ≤ tq ≤ t1` is\n  `u = (tq − t0)/(t1 − t0)`.\n- Geodesic angle between unit quaternions: `2·acos(min(1, |dot(q_a, q_b)|))`, in degrees.\n\n## Input: `scene.json`\n```\n{\n  \"trajectory\": [ { \"t\": <float>, \"q\": [w,x,y,z], \"p\": [x,y,z] }, ... ],\n  \"queries\": [ <float>, ... ]\n}\n```\n\n## Output: `result.json`\n```\n{\n  \"interpolated\": [\n    { \"t\": <query t>, \"q\": [w,x,y,z], \"p\": [x,y,z], \"angle_from_prev_deg\": <float>|null },\n    ...\n  ]\n}\n```\nOne object per query, in query order. `q` must be unit-norm and canonical (`w ≥ 0`).\n`angle_from_prev_deg` is `null` for the first query and the geodesic angle (deg) to the\nprevious query's rotation otherwise. Python 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 result.json <agent_output_file>`. ALL must hold for EVERY query:\n\n1. Top-level key `interpolated` is a list with one object per query, in query order; each object has exactly keys t, q, p, angle_from_prev_deg.\n\n2. Query timestamp t matches the input query.\n\n3. q is unit-norm (tol 1e-6); rotation matches the reference within 1e-4 deg geodesic (sign-invariant, so canonical w>=0 is accepted but not required to match sign).\n\n4. Translation p: max per-component abs error <= 1e-4.\n\n5. angle_from_prev_deg is null for the first query iff null in the reference; otherwise abs error <= 1e-3 deg.","software_and_version":"Python 3.11 with NumPy 1.24+ (standard library only otherwise)","specific_requirements":null,"expected_completion_time":null},"files":[{"file_id":"3bb6e4ca-30ad-4842-b69e-e08c627c3fbd","filename":"scene.json","category":"input_materials","content_type":"application/json","size_bytes":1590},{"file_id":"ee990818-ccfe-42fb-8fa5-44336db004dc","filename":"SPEC.md","category":"input_materials","content_type":"text/markdown","size_bytes":1923},{"file_id":"352eac32-726a-4430-b3a9-672e0762f11c","filename":"result.json","category":"reference_output","content_type":"application/json","size_bytes":1594},{"file_id":"47c4e86b-a353-4022-b5c9-f98b3570b7ea","filename":"grader.py","category":"reference_output","content_type":"text/x-python","size_bytes":4137}],"deep_review":{"overall_verdict":"Strong Accept","review_text":"**Overall Verdict:** Strong Accept — The submission is complete, internally consistent, objectively verifiable, and fully reachable with no material risks.\n\n**Completeness Check:**\n- Instruction: Complete — The specification clearly defines bracketing, shortest-path SLERP, linear translation interpolation, quaternion canonicalization, geodesic angles, query ordering, and the exact output schema.\n- Inputs: Complete — `scene.json` is valid ASCII JSON containing five strictly ordered, finite trajectory poses with unit quaternions and five in-range queries, including endpoint and negative-dot shortest-path cases.\n- Toolchain: Complete — Python 3.11, NumPy 1.24+, and Linux form a legally obtainable, compatible, single-machine toolchain requiring no network access.\n- Reference output: Complete — `result.json` contains exactly five schema-conforming records. Independent calculations reproduced its rotations, translations, and consecutive angles within floating-point precision.\n- Rubric: Complete — The binary evaluator checks record count and order, exact entry keys, finite numeric types, timestamps, quaternion norm and canonicalization, sign-invariant rotation error, translation error, null handling, and angle tolerances.\n\n**File and Task Reachability:**\nThe attachment set is `reachable`, and the end-to-end task is `reachable`. All four files were inspected in full: `scene.json`, `SPEC.md`, `result.json`, and `grader.py`. Their actual formats, encodings, and byte counts match the manifest; all are readable text rather than containers, and no content was left unreviewed. The evaluator was safely reviewed as source text without execution. No material tooling limitation affected the assessment. Solver-visible inputs are separated from the reference and evaluator assets by their declared roles. A solver can read the scene and specification, compute the five requested poses using the declared offline toolchain, produce the required JSON artifact, and receive deterministic evaluation against the supplied reference. 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 provides coherent inputs, a mathematically correct reference, and a hardened evaluator. No changes are required.","reviewed_at":"2026-08-16T15:09:24.059762Z"},"claim":{"id":"3c232470-d53c-42e7-baed-b85ca9481c60","submission_id":"b0d5ebb2-5f0b-4d53-90e5-1d81f281a078","submission_revision_id":"93fd2ddb-6c3d-46c8-9932-cf03105668cd","builder":"builder-01","status":"active","claimed_at":"2026-10-15T15:05:49.981888Z","delivered_at":null,"ended_at":null,"delivery_note":null,"end_reason":null}},"revision_is_current":true}