{
  "source_commit": "7d52673791834caa743907dde83a1949134ef2f0",
  "protocol": {
    "file": {
      "bytes": 16561,
      "sha256": "1706b9a1e71361e13d2b78c51c7e817eb27d29b6382bb815f1bc3c819c0c4817"
    },
    "currents": "disabled",
    "outcome_frozen_utc": "2026-10-09T19:25:53+00:00",
    "controller_frozen_utc": "2026-10-09T19:32:33+00:00"
  },
  "capture": {
    "files": {
      "samples.jsonl": {
        "bytes": 2363470,
        "sha256": "7b55c56fcce929b4bfd007ad902b4607ab97de55d522850f02386df59bc20883"
      },
      "steps.jsonl": {
        "bytes": 6583365,
        "sha256": "6fd8f7af157edadd5f28313dc9af042632151116b6dbedb109677fa5c75a10c4"
      },
      "commands.jsonl": {
        "bytes": 920611,
        "sha256": "dd28f1ac52df4e74fca7bc8a68c9899a29479c2daeaa7d5392ba2d6a52822c7d"
      },
      "frames.json": {
        "bytes": 89982,
        "sha256": "b362113fdbe87c00fbde6ff7b9023d12066f789d848cf624f24ff3919bde3f1c"
      },
      "native.json": {
        "bytes": 1958,
        "sha256": "09393419c23178166edaf3535cd53b00af68b09ad9ab9de5810ae9ab67d42d3b"
      },
      "counts.json": {
        "bytes": 134,
        "sha256": "a603870ada4fe8b1f3d9441ac8fba4f24803caa219c90286377c4408e1e2e865"
      },
      "protocol.json": {
        "bytes": 16561,
        "sha256": "1706b9a1e71361e13d2b78c51c7e817eb27d29b6382bb815f1bc3c819c0c4817"
      },
      "receipt.json": {
        "bytes": 7924,
        "sha256": "a00adbba3d40c722c50fafe3f14ff10c8af08f9962255a5f067b0e1b1f7b0f5d"
      }
    },
    "native_frames": {
      "bytes": 1556755200,
      "sha256": "708ac2311ab26fc57436d3e2491b91b2f47378b50f8e8e7e24866368ec7eeed8"
    },
    "utc": "2026-10-09T19:37:45.449425+00:00",
    "outcome": {
      "success": true,
      "checks": {
        "finite": true,
        "horizontal": true,
        "depth": true,
        "heading": true,
        "speed": true,
        "no_contact": true,
        "submerged": true,
        "attitude": true
      },
      "hold_window_first_step": 5000,
      "hold_window_steps": 3001,
      "hold_window_maxima": {
        "horizontal_error_m": 0.03553612237341368,
        "depth_error_m": 0.01282685385360205,
        "heading_error_rad": 0.01266909456101395,
        "speed_m_per_s": 0.016322265765360833
      },
      "whole_horizon": {
        "contact_points": 0,
        "minimum_depth_m": 1.914170875794697,
        "maximum_roll_pitch_rad": 0.21089469735295818
      }
    },
    "counts": {
      "physics_steps": 8000,
      "physics_ticks": 8000,
      "samples": 1001,
      "frames": 1001,
      "stale_drawing_queues": 0,
      "final_sim_time": 40.00000000000201
    },
    "binaries": {
      "build/adapter/marine_trial": {
        "bytes": 221288,
        "sha256": "349ff4a9e1162596cf1c671c13cac8b818b41846e44cc234ea0d412eca7e1611"
      },
      "build/stonefish/libStonefish_test.so": {
        "bytes": 6930064,
        "sha256": "c127a719a712f60944245c0f08cdb81d091d8a9fb5f397df9972c1461d700947"
      },
      "prefix/lib/libSDL2-2.0.so.0": {
        "bytes": 2210400,
        "sha256": "9f9a151c9fbbf473ce6aa40aeb4a8d6e9fce913fc6af282c63d159a2676efd5c"
      },
      "vgl/usr/lib/libvglfaker.so": {
        "bytes": 2195488,
        "sha256": "6aa78784650b61f5b98473b016ed8f059a380aa1aece914fab6ab28817286e2b"
      },
      "vgl/usr/lib/libdlfaker.so": {
        "bytes": 12800,
        "sha256": "23f3ec5a11ca17b6dda7f8d9907e7b18f3f1e5229e5a345e83397f323761cb2d"
      }
    },
    "gl": {
      "vendor": "NVIDIA Corporation",
      "renderer": "NVIDIA GeForce RTX 4090/PCIe/SSE2",
      "version": "4.3.0 NVIDIA 580.173.02"
    }
  },
  "replay": {
    "file": {
      "bytes": 9199,
      "sha256": "6d360036c46afe9b9e1886a58b4dd3a973f6bb0ccb1b18340504306218ded58d"
    },
    "passed": true,
    "absolute_tolerance": 1e-09,
    "compared_scalars": 380108,
    "exactly_equal_scalars": 380108,
    "maximum_absolute_difference": 0.0,
    "failing_channels": [],
    "outcome_equals_capture": true,
    "observer_camera": false
  },
  "inputs": {
    "file": {
      "bytes": 252638,
      "sha256": "2620a20de875a05645e92b4cf11d2779b7f12109226abcf7a556aaf17fe60177"
    }
  },
  "media": {
    "complete": true,
    "passed": true,
    "frames": 1001,
    "dimensions": [
      960,
      540
    ],
    "fps": 25,
    "duration_s": 40.04,
    "native_elapsed_s": 40,
    "max_native_media_time_error_s": 7.105427357601002e-15,
    "pixel_comparisons": 1001,
    "minimum_frame_psnr_db": 42.951535726065714,
    "minimum_psnr_frame": 78,
    "required_minimum_psnr_db": 35,
    "sha256": "59b16d060af263f8faa4f825e070ef0e7f59b194aa7d13bcd0fdb323b4b20726",
    "bytes": 2904552,
    "ffmpeg_sha256": "e7e7fb30477f717e6f55f9180a70386c62677ef8a4d4d1a5d948f4098aa3eb99",
    "packet_report_sha256": "a179d3c7fcc4ed79d45093e2a68291b93ade63aabbb891150f42046e1b7f07da",
    "native_frames_sha256": "708ac2311ab26fc57436d3e2491b91b2f47378b50f8e8e7e24866368ec7eeed8",
    "native_comparison_sha256": "6d360036c46afe9b9e1886a58b4dd3a973f6bb0ccb1b18340504306218ded58d",
    "native_samples_sha256": "7b55c56fcce929b4bfd007ad902b4607ab97de55d522850f02386df59bc20883",
    "encoder_sha256": "99e97f82491ce30510882ea1b47c4b3f9f41f0fbe6945d6ef09a5fe7eab00d63",
    "mapping": "Encoded frame i has PTS i/25 s and shows the native camera image taken after physics step 8*i. The final state occupies the last 1/25-second frame.",
    "command": [
      "<ffmpeg>",
      "-nostdin",
      "-hide_banner",
      "-v",
      "error",
      "-f",
      "rawvideo",
      "-pix_fmt",
      "rgb24",
      "-video_size",
      "960x540",
      "-framerate",
      "25",
      "-i",
      "<capture>/frames.rgb",
      "-frames:v",
      "1001",
      "-an",
      "-c:v",
      "libx264",
      "-preset",
      "slow",
      "-crf",
      "18",
      "-pix_fmt",
      "yuv420p",
      "-g",
      "25",
      "-bf",
      "0",
      "-threads",
      "2",
      "-movflags",
      "+faststart",
      "<output>/observer.mp4"
    ]
  },
  "coordinates": {
    "poses": 1001,
    "maximum_absolute_matrix_error": 0.0
  },
  "source_files": {
    "__init__.py": {
      "bytes": 58,
      "sha256": "ec5c443a56d224dff0dae8828b04cc9b49658fe6e9a953aeb1f7fbd4c7e6a216"
    },
    "build.sh": {
      "bytes": 4891,
      "sha256": "94766e7a18861fd25c172d2fb9e4a0a0266ca504cd2aad1d3237176506edb6a0"
    },
    "coordinates.py": {
      "bytes": 2023,
      "sha256": "fda9e8b0db05ca8d1782945354abd95ec28cb508cb2a0e2e468aed8390d5276b"
    },
    "encode.py": {
      "bytes": 6301,
      "sha256": "99e97f82491ce30510882ea1b47c4b3f9f41f0fbe6945d6ef09a5fe7eab00d63"
    },
    "inputs.py": {
      "bytes": 8961,
      "sha256": "ca90041c41c3b929f0b3bfe9244f1a274bce57d6e25e038562735a0c9d6ab5ca"
    },
    "native.py": {
      "bytes": 8169,
      "sha256": "8a07ae263702101c2a670a9e15b36c1627e7e95f54324422e69f93d013f8114c"
    },
    "native/marine_trial.cpp": {
      "bytes": 28646,
      "sha256": "d64e5f305edcc13f9077f2096a56d22d43cc55d3b3a1291a663f2e8e20681321"
    },
    "protocol.json": {
      "bytes": 16561,
      "sha256": "1706b9a1e71361e13d2b78c51c7e817eb27d29b6382bb815f1bc3c819c0c4817"
    },
    "record.py": {
      "bytes": 5013,
      "sha256": "83801aa9902e1f8870d4d3830b9753fc40ddc7fce3c1cca70bf9cb3513347ba7"
    },
    "replay.py": {
      "bytes": 7257,
      "sha256": "402c0b96a311ec6b5f9478690b9d548b6397da8c7516f81b96019e11cbc71bf6"
    },
    "runtime.json": {
      "bytes": 6496,
      "sha256": "ce8c8ec3ba3b043aa49f5bbb06b96baedf140164ee61b592ff3f5ff83327f730"
    },
    "source-tree.json": {
      "bytes": 159446,
      "sha256": "301ab9f6edba6058966de6d6f010358ef598e2fdf6c8e76f1d2f2e080b429ed6"
    }
  },
  "credit": {
    "published_recordings": 1,
    "learned_policy_evaluations": 0,
    "benchmark_suites": 0,
    "upstream_registered_tasks": 0
  }
}
