{
  "schemaVersion": 1,
  "contextFingerprint": "1ca19849dd66437448302e3e843a48611c54ab743beb7a6c740197655509e50c",
  "metadata": {
    "schemaVersion": 1,
    "createdUtc": "2026-09-07T22:09:03.4637421\u002B00:00",
    "repository": "/home/movj/code/dev/Ray_Tracer_FSharp",
    "gitCommit": "066c59eba68d222d63b373b7e25d408796eb1d12",
    "gitStatus": "M README.md\n M RayTracer/API/API.fs\n M RayTracer/API/API.fsi\n M RayTracer/Acceleration/Acceleration.fs\n M RayTracer/Acceleration/BVH.fs\n M RayTracer/Acceleration/KDTree.fs\n M RayTracer/Acceleration/RegularGrids.fs\n M RayTracer/Camera/Camera.fs\n M RayTracer/Camera/PinholeCamera.fs\n M RayTracer/Camera/ThinLensCamera.fs\n M RayTracer/Core/BBox.fs\n M RayTracer/Core/Colour.fs\n M RayTracer/Core/Foundation.fs\n M RayTracer/Core/Point.fs\n M RayTracer/Core/Ray.fs\n M RayTracer/Core/Vector.fs\n M RayTracer/ImplicitSurfaces/ExprParse.fs\n M RayTracer/ImplicitSurfaces/ExprParse.fsi\n M RayTracer/ImplicitSurfaces/ExprToPoly.fs\n M RayTracer/ImplicitSurfaces/ImplicitSurfaces.fs\n M RayTracer/ImplicitSurfaces/ImplicitSurfaces.fsi\n M RayTracer/ImplicitSurfaces/PolyToUnipoly.fs\n M RayTracer/ImplicitSurfaces/PolyToUnipoly.fsi\n M RayTracer/Lights/AreaLight.fs\n M RayTracer/Lights/BasicLight.fs\n M RayTracer/Lights/GlobalLight.fs\n M RayTracer/Materials/Materials.fs\n M RayTracer/Materials/Textures.fs\n M RayTracer/Materials/Textures.fsi\n M RayTracer/RayTracer.fsproj\n M RayTracer/Render.fs\n M RayTracer/Sampling/Sampling.fs\n M RayTracer/Sampling/Sampling.fsi\n M RayTracer/Scene.fs\n M RayTracer/Shapes/BaseShape.fs\n M RayTracer/Shapes/CSG.fs\n M RayTracer/Shapes/Shapes.fs\n M RayTracer/Transformation/Transformation.fs\n M RayTracer/Transformation/Transformation.fsi\n M RayTracer/TriangleMesh/PLYParser.fs\n M RayTracer/TriangleMesh/TriangleMesh.fs\n M TracerTest/Meshes.fs\n M TracerTest/Program.fs\n M TracerTest/TracerTest.fsproj\n M TracerTest/Util.fs\n M UnitTests/Assert.fs\n M UnitTests/BVH/BVHTest.fs\n M UnitTests/ImplicitSurfaces/ExprParseTests.fs\n M UnitTests/ImplicitSurfaces/ExprToPolyTests.fs\n M UnitTests/ImplicitSurfaces/ExprToPolyTests2.fs\n M UnitTests/ImplicitSurfaces/ImplicitSurfacesTests.fs\n M UnitTests/ImplicitSurfaces/PolyToUnipolyTests.fs\n M UnitTests/Program.fs\n M UnitTests/RG/RegularGridsTest.fs\n M UnitTests/SamplingTest.fs\n M UnitTests/ShapeTest.fs\n M UnitTests/TransformationTest.fs\n M UnitTests/UnitTests.fsproj\n?? .github/workflows/ci.yml\n?? .github/workflows/gpu-manual.yml\n?? .gitignore\n?? BenchmarkRunner/BenchmarkRunner.fsproj\n?? BenchmarkRunner/LinearOutput.fs\n?? BenchmarkRunner/Program.fs\n?? BenchmarkRunner/SceneBuilder.fs\n?? BenchmarkRunner/ScenePolicy.fs\n?? BenchmarkRunner/Worker.fs\n?? BenchmarkRunner/packages.lock.json\n?? Directory.Build.props\n?? RayTracer.Gpu/.gitignore\n?? RayTracer.Gpu/CoreComparison.fs\n?? RayTracer.Gpu/CudaRenderer.fs\n?? RayTracer.Gpu/CudaRuntime.fs\n?? RayTracer.Gpu/DeviceGeometry.fs\n?? RayTracer.Gpu/DeviceKernels.fs\n?? RayTracer.Gpu/DeviceMath.fs\n?? RayTracer.Gpu/DeviceTransport.fs\n?? RayTracer.Gpu/DeviceTypes.fs\n?? RayTracer.Gpu/Gate.fs\n?? RayTracer.Gpu/GeometryTests.fs\n?? RayTracer.Gpu/HostScene.fs\n?? RayTracer.Gpu/Program.fs\n?? RayTracer.Gpu/README.md\n?? RayTracer.Gpu/RayTracer.Gpu.fsproj\n?? RayTracer.Gpu/SelfTests.fs\n?? RayTracer.Gpu/THIRD-PARTY-NOTICES.txt\n?? RayTracer.Gpu/Tests/batching-settings.json\n?? RayTracer.Gpu/Tests/closed-cube.ply\n?? RayTracer.Gpu/Tests/gold-preview-settings.json\n?? RayTracer.Gpu/Tests/multi-jittered-settings.json\n?? RayTracer.Gpu/Tests/nested-glass-scene.json\n?? RayTracer.Gpu/Tests/odd-settings.json\n?? RayTracer.Gpu/Tests/parity-settings.json\n?? RayTracer.Gpu/Tests/sampled-lights-mesh.ply\n?? RayTracer.Gpu/Tests/sampled-lights-scene.json\n?? RayTracer.Gpu/Tests/tiny-settings.json\n?? RayTracer.Gpu/Worker.fs\n?? RayTracer.Gpu/packages.lock.json\n?? RayTracer.ImageIO/README.md\n?? RayTracer.ImageIO/RayTracer.ImageIO.fsproj\n?? RayTracer.ImageIO/RgbImage.fs\n?? RayTracer.ImageIO/packages.lock.json\n?? RayTracer.sln\n?? RayTracer/Acceleration/FlatBVH.fs\n?? RayTracer/ClassicIntegrator.fs\n?? RayTracer/packages.lock.json\n?? SceneAssets/CheckLegacyPly.fsx\n?? SceneAssets/Checks.fs\n?? SceneAssets/Geometry.fs\n?? SceneAssets/GoldDragon.fsx\n?? SceneAssets/Meshes.fs\n?? SceneAssets/Program.fs\n?? SceneAssets/README.md\n?? SceneAssets/SceneAssets.fsproj\n?? SceneAssets/Scenes.fs\n?? SceneAssets/Textures.fs\n?? SceneAssets/packages.lock.json\n?? SceneFormat/SceneFormat.fs\n?? SceneFormat/SceneFormat.fsproj\n?? SceneFormat/packages.lock.json\n?? TracerTest/packages.lock.json\n?? UnitTests/AccelerationRegressionTests.fs\n?? UnitTests/GeometryRegressionTests.fs\n?? UnitTests/ImageIOTests.fs\n?? UnitTests/LightingRegressionTests.fs\n?? UnitTests/MeshRegressionTests.fs\n?? UnitTests/NumericalRegressionTests.fs\n?? UnitTests/README.md\n?? UnitTests/packages.lock.json\n?? benchmarks/BENCHMARKS.md\n?? benchmarks/PERFORMANCE.md\n?? benchmarks/RESULTS.md\n?? benchmarks/gold-dragon.json\n?? benchmarks/legacy/LegacyRayTracer.fsproj\n?? benchmarks/legacy/README.md\n?? benchmarks/legacy/Runner/LegacyRunner.fsproj\n?? benchmarks/legacy/Runner/packages.lock.json\n?? benchmarks/legacy/adapted/Acceleration/RegularGrids.fs\n?? benchmarks/legacy/adapted/Core/Foundation.fs\n?? benchmarks/legacy/adapted/Core/Vector.fs\n?? benchmarks/legacy/adapted/Render.fs\n?? benchmarks/legacy/adapted/Sampling/Sampling.fs\n?? benchmarks/legacy/adapted/Sampling/Sampling.fsi\n?? benchmarks/legacy/adapted/Transformation/Transformation.fs\n?? benchmarks/legacy/adapted/Transformation/Transformation.fsi\n?? benchmarks/legacy/baseline.json\n?? benchmarks/legacy/original/LICENSE\n?? benchmarks/legacy/original/RayTracer/API.fs\n?? benchmarks/legacy/original/RayTracer/API.fsi\n?? benchmarks/legacy/original/RayTracer/API/API.fs\n?? benchmarks/legacy/original/RayTracer/API/API.fsi\n?? benchmarks/legacy/original/RayTracer/Acceleration/Acceleration.fs\n?? benchmarks/legacy/original/RayTracer/Acceleration/BVH.fs\n?? benchmarks/legacy/original/RayTracer/Acceleration/KDTree.fs\n?? benchmarks/legacy/original/RayTracer/Acceleration/RegularGrids.fs\n?? benchmarks/legacy/original/RayTracer/App.config\n?? benchmarks/legacy/original/RayTracer/AssemblyInfo.fs\n?? benchmarks/legacy/original/RayTracer/Camera/Camera.fs\n?? benchmarks/legacy/original/RayTracer/Camera/PinholeCamera.fs\n?? benchmarks/legacy/original/RayTracer/Camera/ThinLensCamera.fs\n?? benchmarks/legacy/original/RayTracer/Core/BBox.fs\n?? benchmarks/legacy/original/RayTracer/Core/Colour.fs\n?? benchmarks/legacy/original/RayTracer/Core/Foundation.fs\n?? benchmarks/legacy/original/RayTracer/Core/Point.fs\n?? benchmarks/legacy/original/RayTracer/Core/Ray.fs\n?? benchmarks/legacy/original/RayTracer/Core/Vector.fs\n?? benchmarks/legacy/original/RayTracer/ImplicitSurfaces/ExprParse.fs\n?? benchmarks/legacy/original/RayTracer/ImplicitSurfaces/ExprParse.fsi\n?? benchmarks/legacy/original/RayTracer/ImplicitSurfaces/ExprToPoly.fs\n?? benchmarks/legacy/original/RayTracer/ImplicitSurfaces/ExprToPoly.fsi\n?? benchmarks/legacy/original/RayTracer/ImplicitSurfaces/ImplicitSurfaces.fs\n?? benchmarks/legacy/original/RayTracer/ImplicitSurfaces/ImplicitSurfaces.fsi\n?? benchmarks/legacy/original/RayTracer/ImplicitSurfaces/PolyToUnipoly.fs\n?? benchmarks/legacy/original/RayTracer/ImplicitSurfaces/PolyToUnipoly.fsi\n?? benchmarks/legacy/original/RayTracer/Lights/AreaLight.fs\n?? benchmarks/legacy/original/RayTracer/Lights/BasicLight.fs\n?? benchmarks/legacy/original/RayTracer/Lights/GlobalLight.fs\n?? benchmarks/legacy/original/RayTracer/Materials/Materials.fs\n?? benchmarks/legacy/original/RayTracer/Materials/Textures.fs\n?? benchmarks/legacy/original/RayTracer/Materials/Textures.fsi\n?? benchmarks/legacy/original/RayTracer/Program2.fs\n?? benchmarks/legacy/original/RayTracer/RayTracer.fsproj\n?? benchmarks/legacy/original/RayTracer/Render.fs\n?? benchmarks/legacy/original/RayTracer/Sampling/Sampling.fs\n?? benchmarks/legacy/original/RayTracer/Sampling/Sampling.fsi\n?? benchmarks/legacy/original/RayTracer/Scene.fs\n?? benchmarks/legacy/original/RayTracer/Shapes/BaseShape.fs\n?? benchmarks/legacy/original/RayTracer/Shapes/CSG.fs\n?? benchmarks/legacy/original/RayTracer/Shapes/Shapes.fs\n?? benchmarks/legacy/original/RayTracer/Transformation/Transformation.fs\n?? benchmarks/legacy/original/RayTracer/Transformation/Transformation.fsi\n?? benchmarks/legacy/original/RayTracer/TriangleMesh/PLYParser.fs\n?? benchmarks/legacy/original/RayTracer/TriangleMesh/TriangleMesh.fs\n?? benchmarks/legacy/original/RayTracer/TriangleMeshes/PLYParser.fs\n?? benchmarks/legacy/original/RayTracer/TriangleMeshes/TriangleMes.fs\n?? benchmarks/legacy/original/RayTracer/packages.config\n?? benchmarks/legacy/packages.lock.json\n?? benchmarks/legacy/portability.diff\n?? benchmarks/legacy/portability.json\n?? benchmarks/legacy/prepare-port.fsx\n?? benchmarks/legacy/proof.fsx\n?? benchmarks/legacy/source.sha256\n?? benchmarks/scenes/chair.json\n?? benchmarks/scenes/gold-dragon.json\n?? benchmarks/scenes/material-lab.json\n?? benchmarks/scenes/provenance.json\n?? benchmarks/scenes/roman-bust.json\n?? benchmarks/scenes/sky-arena.json\n?? benchmarks/scenes/space-sentinel.json\n?? global.json\n?? scripts/BenchmarkData.fs\n?? scripts/BenchmarkReport.fs\n?? scripts/benchmark-builder-tests.fsx\n?? scripts/benchmark-selection-tests.fsx\n?? scripts/benchmark-tests.fsx\n?? scripts/benchmark-worker-tests.fsx\n?? scripts/benchmark.fsx\n?? scripts/prepare-gold-dragon.fsx\n?? scripts/publish-report.sh\n?? scripts/tune-cpu.fsx",
    "sourceDigest": "eb77565de466a6cc034358dc5a65300df21f726aa6f6200984ec74e2068d95ca",
    "sources": [
      {
        "path": ".github/workflows/ci.yml",
        "sha256": "ecf01e31cd105cad9c10804843e33d395ff2321ad6789635ef1a5427a2499b35",
        "bytes": 1525
      },
      {
        "path": ".github/workflows/gpu-manual.yml",
        "sha256": "fc9bade9de0108ec4b649ed21b9f1e2fc19c623d1b4186cd789e2113cb216982",
        "bytes": 939
      },
      {
        "path": "BenchmarkRunner/BenchmarkRunner.fsproj",
        "sha256": "d1c495b295048fd77884853219c569f7bf05013eee11b7a8ae87497f3a0da79b",
        "bytes": 746
      },
      {
        "path": "BenchmarkRunner/LinearOutput.fs",
        "sha256": "a6a979d2cc21b113a4e57eac85ad79c4a1c1ec235012a75500fa7d44e254f41a",
        "bytes": 1932
      },
      {
        "path": "BenchmarkRunner/Program.fs",
        "sha256": "ed5b7aa844d5566bfb85fa23f76c4f4f7797a2a54879e7658fe8307d67a31589",
        "bytes": 3084
      },
      {
        "path": "BenchmarkRunner/SceneBuilder.fs",
        "sha256": "538ae75e08b4e736529b1d9e87435cc6d0689ac16009704df0d8452356cb32f8",
        "bytes": 14016
      },
      {
        "path": "BenchmarkRunner/ScenePolicy.fs",
        "sha256": "0e28c6d1d9c3a87718967798d73e8f45b674348585d92b7f2f8f26bc1140b6a2",
        "bytes": 1142
      },
      {
        "path": "BenchmarkRunner/Worker.fs",
        "sha256": "13b334c5f802040958abd5d4465b3e66ed31254dc3c36d329735765dfc835284",
        "bytes": 16315
      },
      {
        "path": "BenchmarkRunner/packages.lock.json",
        "sha256": "07f8ed76169e1544073b4a47031c7c0fa22ba0facdae215665bc6bf7a0eccbce",
        "bytes": 1571
      },
      {
        "path": "Directory.Build.props",
        "sha256": "bd80f98e6493c2677c5c645c47ca89ecef9f5122d6e5d4cab97278177c69b5d4",
        "bytes": 228
      },
      {
        "path": "README.md",
        "sha256": "c5ca8c7b12e11afdae30ce98d1df72bab89d907e85f12d9a06885333548870a2",
        "bytes": 8537
      },
      {
        "path": "RayTracer.Gpu/CoreComparison.fs",
        "sha256": "3796667e9a9c717b33ae95badbaf946d86a56077ae30ad295713648c84dad8e9",
        "bytes": 12152
      },
      {
        "path": "RayTracer.Gpu/CudaRenderer.fs",
        "sha256": "8f534fd297f84e4fcada3e75480e87a4a89e24536581e4c6d5cbf60329f2dfa7",
        "bytes": 14387
      },
      {
        "path": "RayTracer.Gpu/CudaRuntime.fs",
        "sha256": "acc7f9a02aae27153f7746ccdf0aa4adc41ae11d786e3c5be874e1cce8e0f2b6",
        "bytes": 950
      },
      {
        "path": "RayTracer.Gpu/DeviceGeometry.fs",
        "sha256": "01bba4bcda7ed6f54c859f48d8c070d66fc6402655a1f9e1bc91ba674297de12",
        "bytes": 8067
      },
      {
        "path": "RayTracer.Gpu/DeviceKernels.fs",
        "sha256": "238cfeea08c620e5a6babdaadd1eb133f53f32b620edf1d02c3065237909990e",
        "bytes": 3705
      },
      {
        "path": "RayTracer.Gpu/DeviceMath.fs",
        "sha256": "a67085a0623575f76e25614cfa91b77a62e6eedaea473df8da3981a7e30f7589",
        "bytes": 6323
      },
      {
        "path": "RayTracer.Gpu/DeviceTransport.fs",
        "sha256": "28c069be368b3979de376e975ecbcf35a87bee9454582d3018d9a43673c9c804",
        "bytes": 17208
      },
      {
        "path": "RayTracer.Gpu/DeviceTypes.fs",
        "sha256": "188d31087e2225db18f4cd1d933e80327c4d169219eead2ecdc93a2ed6e9de44",
        "bytes": 4643
      },
      {
        "path": "RayTracer.Gpu/Gate.fs",
        "sha256": "cc7732fc5fa2e21e091d0e40a7049eb09ebdf82632eea9ebf318f8e5938c8b91",
        "bytes": 9170
      },
      {
        "path": "RayTracer.Gpu/GeometryTests.fs",
        "sha256": "3d8503fe91faddc6fa97a3e3f2ae136a41a2667e46ad94d9c82bc91b4075cd45",
        "bytes": 11208
      },
      {
        "path": "RayTracer.Gpu/HostScene.fs",
        "sha256": "e1ce96d9cb4da1a46e1d79e873f43039eeb24bdb94f9e8d939990316edbf87ff",
        "bytes": 19941
      },
      {
        "path": "RayTracer.Gpu/Program.fs",
        "sha256": "c0987c49ea5f2ebfbfb283f6e406fa3180a867ea45df3abb0a14f13f06a783a4",
        "bytes": 1077
      },
      {
        "path": "RayTracer.Gpu/README.md",
        "sha256": "ad4c0a311170a22c7057cd8863c47460a2ec36bf3ccc49f12ff047be63ca311b",
        "bytes": 26092
      },
      {
        "path": "RayTracer.Gpu/RayTracer.Gpu.fsproj",
        "sha256": "0cbeff55b263559a612d808109a3d5f4f2cde45e889b008c783716286980b181",
        "bytes": 1460
      },
      {
        "path": "RayTracer.Gpu/SelfTests.fs",
        "sha256": "90727a68181bb6d857647e3989bd10610d04bd9b44405d0f9f12174f09382faa",
        "bytes": 21272
      },
      {
        "path": "RayTracer.Gpu/Tests/batching-settings.json",
        "sha256": "5cfc46a28bd1bebc601294dff46048172fa292b036c1011276d16b309c597a43",
        "bytes": 242
      },
      {
        "path": "RayTracer.Gpu/Tests/gold-preview-settings.json",
        "sha256": "ba312eae6dc755018c3d2bcdcbf407c4c601c299b2683b21622aa29f692751cc",
        "bytes": 253
      },
      {
        "path": "RayTracer.Gpu/Tests/multi-jittered-settings.json",
        "sha256": "646982277c02e3f305154b3aba1a70f492df3ebbf4bcb32b3cd003a31ac1a41a",
        "bytes": 251
      },
      {
        "path": "RayTracer.Gpu/Tests/nested-glass-scene.json",
        "sha256": "340b45e15a10e80d7bcb4e7ca5c1265a3437d69fdf054eff6f23f0d66db8764f",
        "bytes": 2273
      },
      {
        "path": "RayTracer.Gpu/Tests/odd-settings.json",
        "sha256": "c9b73ca6268f581cf581c0750d96cff20eb46be75c3ba0e8f008daefde56dba7",
        "bytes": 242
      },
      {
        "path": "RayTracer.Gpu/Tests/parity-settings.json",
        "sha256": "7b05c4096cdb366b7ffb07496596de9f1045bf797d9d24e69ee20e695be82046",
        "bytes": 241
      },
      {
        "path": "RayTracer.Gpu/Tests/sampled-lights-scene.json",
        "sha256": "598eadffe8ca7580359b9601461a99fb37dee3f91d8cfaa784c012d6b5d0dab6",
        "bytes": 3413
      },
      {
        "path": "RayTracer.Gpu/Tests/tiny-settings.json",
        "sha256": "bb864dc5d972d2adcdad7f76d9095d1dafc25305f6dfe0edc2610407dcb472c4",
        "bytes": 241
      },
      {
        "path": "RayTracer.Gpu/Worker.fs",
        "sha256": "4779afd319d69af8607bac7e9018567b29bca4f45c9ae797207545b6d5b179b0",
        "bytes": 10687
      },
      {
        "path": "RayTracer.Gpu/packages.lock.json",
        "sha256": "3bd29a38bbb05fb3aed3d8161d2d7061980c5c34e9397aefde9c9548e302617d",
        "bytes": 2114
      },
      {
        "path": "RayTracer.ImageIO/README.md",
        "sha256": "90a3f5629eb729271da6bb9a70d329cee48461ca91242754ea2c0cc0b238d681",
        "bytes": 2248
      },
      {
        "path": "RayTracer.ImageIO/RayTracer.ImageIO.fsproj",
        "sha256": "732bb4218c96ffd53dc46007824569dcb46b8a07f53e42cfa5797b10552ecf67",
        "bytes": 492
      },
      {
        "path": "RayTracer.ImageIO/RgbImage.fs",
        "sha256": "dd0fcbae601f606dab5d5ff5cce0092bdd23f6c1c660e09e2981331cd6f640fd",
        "bytes": 4180
      },
      {
        "path": "RayTracer.ImageIO/packages.lock.json",
        "sha256": "9ece3545e2e2b99f550b5f30aca7317642508eeb430c484a878a4af8e8794afc",
        "bytes": 791
      },
      {
        "path": "RayTracer/API.fs",
        "sha256": "97dc6097f629a918cf2f821a9060f37eefa913e8deed17ac671c11064908dca0",
        "bytes": 10044
      },
      {
        "path": "RayTracer/API.fsi",
        "sha256": "62eab4d1c9b3d0e5cebce8d7c72cea9ba2ccb09c8547c3c8a086a8b0f49fe885",
        "bytes": 14359
      },
      {
        "path": "RayTracer/API/API.fs",
        "sha256": "f3b4ddd8e7c7fef37a1a3d73b967f3003c6f4f08597b4cd8a555cf46fb6b72cf",
        "bytes": 10043
      },
      {
        "path": "RayTracer/API/API.fsi",
        "sha256": "286e94a3b0e8e0161eaab1a2c857e558af87a91e95bd3e40aff2bed997fa9700",
        "bytes": 15155
      },
      {
        "path": "RayTracer/Acceleration/Acceleration.fs",
        "sha256": "a7c895e8c576a6d03b2fe7aa5b5f2d5ba42d54665e7cf3b6a4d5880ad3621f7a",
        "bytes": 7033
      },
      {
        "path": "RayTracer/Acceleration/BVH.fs",
        "sha256": "55f0d1ce2cf76e6b5dbec6f5b911605d39003a64d24a8bb062f96ffa6d95c335",
        "bytes": 6160
      },
      {
        "path": "RayTracer/Acceleration/FlatBVH.fs",
        "sha256": "686d8b73a5df610c99409112d1e8ff870bd956606522b0fb123865fe2eac1769",
        "bytes": 12162
      },
      {
        "path": "RayTracer/Acceleration/KDTree.fs",
        "sha256": "ebea794f71add6fde323e8b5c34b0a48db504f8054a87bc09af53d3087ed081e",
        "bytes": 15432
      },
      {
        "path": "RayTracer/Acceleration/RegularGrids.fs",
        "sha256": "3b74af50815bcc1e64db85784e7309f58b617ed17f933634031cb3cc04824d4f",
        "bytes": 9789
      },
      {
        "path": "RayTracer/App.config",
        "sha256": "8173d4d17cb728e6f2c5e2ce8124ce7eb0f459dc62085bcaab786abf1f6b37a7",
        "bytes": 184
      },
      {
        "path": "RayTracer/AssemblyInfo.fs",
        "sha256": "076327f6c028480a9e7bda7ae14cafeb70375cbb6d1c9d6ed74522005d3a78c7",
        "bytes": 1448
      },
      {
        "path": "RayTracer/Camera/Camera.fs",
        "sha256": "8bdd5e6a54eb9318c486e32c8e738b1f7504e405522bc0f156d241c68691f443",
        "bytes": 3832
      },
      {
        "path": "RayTracer/Camera/PinholeCamera.fs",
        "sha256": "d395c9f779fe616f8ce404d9e1e75d2ab8808857fbca99dd44eefa58c65cfc13",
        "bytes": 1401
      },
      {
        "path": "RayTracer/Camera/ThinLensCamera.fs",
        "sha256": "2daa2a8cd4889f5169abb2cc112a4b22f921243987c789f1028231da836c89b1",
        "bytes": 2246
      },
      {
        "path": "RayTracer/ClassicIntegrator.fs",
        "sha256": "be13267721fb36edd27a781ae0b3488e6c59b98ea81534c10db43439ede560ad",
        "bytes": 11969
      },
      {
        "path": "RayTracer/Core/BBox.fs",
        "sha256": "55c5b9b4279337a88eb39938caf6cc9d6e689f43074d9b122be1636989a3f0db",
        "bytes": 3235
      },
      {
        "path": "RayTracer/Core/Colour.fs",
        "sha256": "39e6374c20ed7e6d67598530f87afc63b5bd70c5a5a15b58e251477bdb2325eb",
        "bytes": 3737
      },
      {
        "path": "RayTracer/Core/Foundation.fs",
        "sha256": "ed2a94c2bf5269d9763842d177605986bb1c72addf868068a1c888e6ab2d5c6a",
        "bytes": 7828
      },
      {
        "path": "RayTracer/Core/Point.fs",
        "sha256": "d48f14e15edeb35c5ecae968122fc33fd22ee9cc03a727ecf47091602c373504",
        "bytes": 2467
      },
      {
        "path": "RayTracer/Core/Ray.fs",
        "sha256": "f161f1f70bf160f9176cecd6a0340da6b5442e931e172ff1a3be0ba7429babe0",
        "bytes": 1957
      },
      {
        "path": "RayTracer/Core/Vector.fs",
        "sha256": "343df85f8fe1d2b4483873b38d456c6f776420c89a1a31eaf2298f277f95af49",
        "bytes": 3527
      },
      {
        "path": "RayTracer/ImplicitSurfaces/ExprParse.fs",
        "sha256": "cd078c19652129e5ead45a071dbbdb3eb3846d541ae2021dbb52ef8e897f56df",
        "bytes": 9048
      },
      {
        "path": "RayTracer/ImplicitSurfaces/ExprParse.fsi",
        "sha256": "627d1d39198bcbf39a12d0d352b884c916f4b68c2dfba4ca5e0b969eea56abaf",
        "bytes": 703
      },
      {
        "path": "RayTracer/ImplicitSurfaces/ExprToPoly.fs",
        "sha256": "b5adb8d83aef5b1bdaecab0855394f44987277ce9042f6e5c9e43f1693b4d2de",
        "bytes": 13345
      },
      {
        "path": "RayTracer/ImplicitSurfaces/ExprToPoly.fsi",
        "sha256": "f81a02ec47a4392c4da91fbc44224f440a06d52178dadc453aa06262e3985f69",
        "bytes": 874
      },
      {
        "path": "RayTracer/ImplicitSurfaces/ImplicitSurfaces.fs",
        "sha256": "376c556c39c705c323fffdea74af54051d3da56ae302c828da81bce2d49d2d59",
        "bytes": 9777
      },
      {
        "path": "RayTracer/ImplicitSurfaces/ImplicitSurfaces.fsi",
        "sha256": "c1c2417105d04e7c167e57c00ba72d6cecbdcfe53c5d706489d96db15df4bf91",
        "bytes": 1062
      },
      {
        "path": "RayTracer/ImplicitSurfaces/PolyToUnipoly.fs",
        "sha256": "8a0e85c65c57dfa4bdbd03f32e0f3ef5812cdc65ba10bb37b12486b78965342e",
        "bytes": 10846
      },
      {
        "path": "RayTracer/ImplicitSurfaces/PolyToUnipoly.fsi",
        "sha256": "43b9ae0f95ecd8f61525ef26a157bf6671030c507e5ce5dd0ca94ad7b12ca4e1",
        "bytes": 978
      },
      {
        "path": "RayTracer/Lights/AreaLight.fs",
        "sha256": "5b4a7446f839d675e61ea8bf0dd058977310c5b635a3f818e82cce9b3c6871bc",
        "bytes": 9580
      },
      {
        "path": "RayTracer/Lights/BasicLight.fs",
        "sha256": "61db2b36a6e5fa85e4a65e336d93594f927bbb85aad41552393a41efc7b97aa8",
        "bytes": 1523
      },
      {
        "path": "RayTracer/Lights/GlobalLight.fs",
        "sha256": "41d5f1465e960da68d40d425823b2160bb2f6c1b5c911d15df82691670eda4f7",
        "bytes": 2795
      },
      {
        "path": "RayTracer/Materials/Materials.fs",
        "sha256": "46422c250b509f79574bf64c2169df8cd7d6df04a95657c17ed321b1944870d7",
        "bytes": 16547
      },
      {
        "path": "RayTracer/Materials/Textures.fs",
        "sha256": "0cff46e2297e91390b9a3d648249e8363e50569e8f41cdca1f8a82886bfc6498",
        "bytes": 1076
      },
      {
        "path": "RayTracer/Materials/Textures.fsi",
        "sha256": "8a5aef2100808ad505e8f24c1aafeeb1b8b22ab0ee650e0ccc80ac57d264722f",
        "bytes": 487
      },
      {
        "path": "RayTracer/Program2.fs",
        "sha256": "f4620ea9b3ab45100cd31701cf757a2dfa8308cf5f152b091e290e5507d8117e",
        "bytes": 5398
      },
      {
        "path": "RayTracer/RayTracer.fsproj",
        "sha256": "f0b095dfdb37c0f006dd45de77c590400b308b2494eb4b1829299d6c3c7213f0",
        "bytes": 2721
      },
      {
        "path": "RayTracer/Render.fs",
        "sha256": "c862d96df1950b438a93b1015baf55f4bb37dd03bb880373cc9f4105f3b41036",
        "bytes": 6413
      },
      {
        "path": "RayTracer/Sampling/Sampling.fs",
        "sha256": "dd610649a89b92244d7de1be94cbc99481f744372bdd6077c40b93fd03cb3749",
        "bytes": 14630
      },
      {
        "path": "RayTracer/Sampling/Sampling.fsi",
        "sha256": "20207e6278cc86bba62ef34c685a33d3e978362f86d2fbb69d2952f3a72317ae",
        "bytes": 873
      },
      {
        "path": "RayTracer/Scene.fs",
        "sha256": "323db33647a38a8eeef43fe6455da2380dcf653ddc350ff1ce4ff1b519054634",
        "bytes": 1877
      },
      {
        "path": "RayTracer/Shapes/BaseShape.fs",
        "sha256": "7643d7cd26c5192edf5e0af2a898bd02ed0b9ecfd609ad5082e7db042829f677",
        "bytes": 1778
      },
      {
        "path": "RayTracer/Shapes/CSG.fs",
        "sha256": "8e0b0e70d67ab2d83668dc0d11b821153076cabf92ecabd1fe250ed1f3f182ca",
        "bytes": 7197
      },
      {
        "path": "RayTracer/Shapes/Shapes.fs",
        "sha256": "6d6f18137c00c609be30d30edf192355bfd697a6a67fbde2df6d578331ab70dc",
        "bytes": 23264
      },
      {
        "path": "RayTracer/Transformation/Transformation.fs",
        "sha256": "0ac87b1c7323d9b3abd682d91cc23d0f6fe5fa2118d03d88d0d0fc16676f9846",
        "bytes": 9113
      },
      {
        "path": "RayTracer/Transformation/Transformation.fsi",
        "sha256": "f046d2c1db4f9bc429eaa8bfe7ae767ba7d82577457cea23f91aa87db7bdc815",
        "bytes": 1446
      },
      {
        "path": "RayTracer/TriangleMesh/PLYParser.fs",
        "sha256": "12f46bbac9a996247c9b7bd84b1624b7a1ca68f9d5b274705cb87dedc1bdc308",
        "bytes": 15991
      },
      {
        "path": "RayTracer/TriangleMesh/TriangleMesh.fs",
        "sha256": "387947adaba72058256ea306317db366d59bb0b43e36cb5f718fe223e2be29d4",
        "bytes": 14958
      },
      {
        "path": "RayTracer/TriangleMeshes/PLYParser.fs",
        "sha256": "ab935fe6ea41f54aa4e60bae203c74bdfbeb3855f3432d52ff2c424aa25f82f9",
        "bytes": 11748
      },
      {
        "path": "RayTracer/TriangleMeshes/TriangleMes.fs",
        "sha256": "97c76e42d47a7842983cd5dbca5e4bb99d1fba3d16f9f3ff4c6fbf0d691a815f",
        "bytes": 5803
      },
      {
        "path": "RayTracer/packages.config",
        "sha256": "8345d499882d0c22eb48754f2ba271b773414459a6d2bdc8fb43b4882b5ba468",
        "bytes": 142
      },
      {
        "path": "RayTracer/packages.lock.json",
        "sha256": "0ff1eeeed5e7286beb426f89e0af6c931b0173b415bb1890c40aee1bcd7aebf3",
        "bytes": 1258
      },
      {
        "path": "SceneAssets/CheckLegacyPly.fsx",
        "sha256": "a1ae2d00cfa9854ce8a4d2f93921b8963e97ecbaaaf29b179389ae883a221cbd",
        "bytes": 2531
      },
      {
        "path": "SceneAssets/Checks.fs",
        "sha256": "6a43e3767b39109dbde97babeb97a28db60692c32e395b7d36aae2ee6777991a",
        "bytes": 4341
      },
      {
        "path": "SceneAssets/Geometry.fs",
        "sha256": "3e9fe6f03f91055efaedbb6244311dbd22059309bf09d1f9599a5be2f9b6a935",
        "bytes": 3382
      },
      {
        "path": "SceneAssets/GoldDragon.fsx",
        "sha256": "9124474d8ad0b21bce09bfc1d279cf88d8b61c1ccc0a75457edafa87d2a03b16",
        "bytes": 8507
      },
      {
        "path": "SceneAssets/Meshes.fs",
        "sha256": "4f23f7765d14f7e791cacde09e521e2b5340b919a8901694543bd883dd60292b",
        "bytes": 31448
      },
      {
        "path": "SceneAssets/Program.fs",
        "sha256": "cc82e83d8e252922113f8a6e40c9898e47f33b3d2d7cd342c94b53445e551d74",
        "bytes": 12908
      },
      {
        "path": "SceneAssets/README.md",
        "sha256": "cec624111a8f7b3e3d006c4cc41a0bc27874a70eaddd14f8d12e864caf4b0078",
        "bytes": 12581
      },
      {
        "path": "SceneAssets/SceneAssets.fsproj",
        "sha256": "811600a04d6c06bdacc577d0303ea671cfeabe92b469d3ba6f4ca604f574d40f",
        "bytes": 779
      },
      {
        "path": "SceneAssets/Scenes.fs",
        "sha256": "bbe17aa71f6b623e0050cc7c155aa0054846963b6a3c6f7087b3010d845f1d66",
        "bytes": 33906
      },
      {
        "path": "SceneAssets/Textures.fs",
        "sha256": "5c7099807c20d60b5bc9af4cf3301b42d144db7ea23b68199ec82aaf800d8f90",
        "bytes": 5710
      },
      {
        "path": "SceneAssets/packages.lock.json",
        "sha256": "199c8bc5f22115369e727497a84f5d36eb21d9977c08550d97e50765a2bdacd3",
        "bytes": 1092
      },
      {
        "path": "SceneFormat/SceneFormat.fs",
        "sha256": "5b34dcdfdf9edee125544a54185ae1138bb5142b4c071eff6eeaa0fe076dbbfb",
        "bytes": 15166
      },
      {
        "path": "SceneFormat/SceneFormat.fsproj",
        "sha256": "1c3cf567e631a53b7f09a5773669bf0a8a46319fa9e366384b5cf3ab963e28b3",
        "bytes": 263
      },
      {
        "path": "SceneFormat/packages.lock.json",
        "sha256": "5f9ce5f37838c7781cfcfc91dc777595b1e3f2462ec88765cbb802f6c8ed3de8",
        "bytes": 306
      },
      {
        "path": "TracerTest/AffineTransformations.fs",
        "sha256": "35afeb6a3db21d4da4962119389dced136fb702a9167b99b5685b008ad27237e",
        "bytes": 5724
      },
      {
        "path": "TracerTest/AmbientOcclusion.fs",
        "sha256": "1476f1531135620f9f437db2a2b77d7172cf2f96e852019671a7eb2345a126a9",
        "bytes": 1756
      },
      {
        "path": "TracerTest/App.config",
        "sha256": "ae5e7fa8373b273fad07e0486cebfd88c18f9517ba609c2b8e6534f5d9e53dcb",
        "bytes": 189
      },
      {
        "path": "TracerTest/AreaLight.fs",
        "sha256": "80463f3e509037e72723f9fc9f89d2bd11b45dbfde90e5ede69fa0b195789db7",
        "bytes": 5548
      },
      {
        "path": "TracerTest/AssemblyInfo.fs",
        "sha256": "6da8bbc6dc0309f64781f4fdcab2de697ed49b96301498606f81d6371793b7d7",
        "bytes": 1500
      },
      {
        "path": "TracerTest/CSG.fs",
        "sha256": "1460578f91dcdf74f13e897b9a51e08904d41a64b669e9ba67200fd512cd91b4",
        "bytes": 8934
      },
      {
        "path": "TracerTest/ImplicitSurfaces.fs",
        "sha256": "07bc5a09d3ac80edeb17aac307a1c90281c4db95b60b64be7d7ca63d47a45be5",
        "bytes": 6483
      },
      {
        "path": "TracerTest/Light.fs",
        "sha256": "694ad2c9e66089988b28f79f5df0773e73d00e4cc00a3602a728772103863674",
        "bytes": 2924
      },
      {
        "path": "TracerTest/Material.fs",
        "sha256": "8f96aaa69d7c0547b5c59986f15b9af37143859657cf6afa065e0cedbfd5902f",
        "bytes": 8080
      },
      {
        "path": "TracerTest/Meshes.fs",
        "sha256": "2609f018caa2ab943e02085bb1b906dadec56df0e3920e58c8830ee87ec09e5d",
        "bytes": 18602
      },
      {
        "path": "TracerTest/Program.fs",
        "sha256": "d154a26ff8cb0f0f92673f8231c3a98dfdc7a23b5ec633e5913d79d6d278a987",
        "bytes": 5069
      },
      {
        "path": "TracerTest/Shapes.fs",
        "sha256": "d5c101296c6a29fd5ec3ecb6ed9a871fe316f0fc4b1774639e921c86afc83ce9",
        "bytes": 5511
      },
      {
        "path": "TracerTest/Texture.fs",
        "sha256": "b3d1d43ceefad6f8864a93cbf2b83dcdabf6e578fc88a44c7eecc86ec4ee975b",
        "bytes": 10286
      },
      {
        "path": "TracerTest/ThinLens.fs",
        "sha256": "fadc1f53890af1d3d6e8d32770e0de81c048639c7a2fe7a1e69e7f242b603ee4",
        "bytes": 3626
      },
      {
        "path": "TracerTest/TracerTest.fsproj",
        "sha256": "ca185593fe700d69f434c675df6a47fec7a7dedeebd5e9e285f918cb44742f18",
        "bytes": 1230
      },
      {
        "path": "TracerTest/Transparency.fs",
        "sha256": "181c623df92cedf9860bfd5ad6a04440dee1aa8ef338d3de4cb5e4abb8fe9b14",
        "bytes": 18745
      },
      {
        "path": "TracerTest/Util.fs",
        "sha256": "2a027ef9c3bba35c80bf8f1d68d23876d07acd9f05cfcdaf571eb71770079015",
        "bytes": 7887
      },
      {
        "path": "TracerTest/packages.config",
        "sha256": "4932f5463ce34bb3a33df3673c83721cdbbd256599e67066e3debb46b1585fd4",
        "bytes": 145
      },
      {
        "path": "TracerTest/packages.lock.json",
        "sha256": "875be7c920aec172bd8a5c844d2a950e241dca858c2f65635ce389db89bf003f",
        "bytes": 1436
      },
      {
        "path": "UnitTests/AccelerationRegressionTests.fs",
        "sha256": "1f73c18b2cc3abfbfae5c6dc16599daad111a97d9268aa9190dc67d3f8ff2509",
        "bytes": 29138
      },
      {
        "path": "UnitTests/App.config",
        "sha256": "8173d4d17cb728e6f2c5e2ce8124ce7eb0f459dc62085bcaab786abf1f6b37a7",
        "bytes": 184
      },
      {
        "path": "UnitTests/AssemblyInfo.fs",
        "sha256": "4e3dcd32d1ee57112d1bced36953200621cf0a015d32bcc756bd0762ab374c11",
        "bytes": 1439
      },
      {
        "path": "UnitTests/Assert.fs",
        "sha256": "b42d5ee616fcfb83c6c844a21db945e6f498c22e0d6a6710e18d16ab1c24b3d5",
        "bytes": 1727
      },
      {
        "path": "UnitTests/BVH/BVHTest.fs",
        "sha256": "541f6bb461bebb85be3a7e979d146de6dafaf736faf5a6e678dc99f5d3242b40",
        "bytes": 4651
      },
      {
        "path": "UnitTests/GeometryRegressionTests.fs",
        "sha256": "618056d6e4aefb0b893fe8bf202af50f7073d45406db8af5cdb4af54419608a0",
        "bytes": 22229
      },
      {
        "path": "UnitTests/ImageIOTests.fs",
        "sha256": "6da7198dfbb449ff40f9d448325cfc1de69604d6f5408b70d9c8c39ad067897c",
        "bytes": 3947
      },
      {
        "path": "UnitTests/ImplicitSurfaces/ExprParseTests.fs",
        "sha256": "0c206e57bca18286b0bb47485086abe89834cd1b950ccfed8bb7996f1c3e3ea3",
        "bytes": 4988
      },
      {
        "path": "UnitTests/ImplicitSurfaces/ExprToPolyTests.fs",
        "sha256": "506baf39c5ccaa4f38608fafb20b6e7a53b39fce26b1f4490a8e0993e20191fe",
        "bytes": 7041
      },
      {
        "path": "UnitTests/ImplicitSurfaces/ExprToPolyTests2.fs",
        "sha256": "c3c3519698c6c4cfe1fb15382d1e8cff0b66b325472da735788901474a505b92",
        "bytes": 4594
      },
      {
        "path": "UnitTests/ImplicitSurfaces/ImplicitSurfacesTests.fs",
        "sha256": "9016a41bc2452ae8a266b6a0953c886041fd715b8beeb9638f9580692b74764b",
        "bytes": 6891
      },
      {
        "path": "UnitTests/ImplicitSurfaces/PolyToUnipolyTests.fs",
        "sha256": "671c59ad91d0d3949518677c50038b641c8b58cdd4883dd69cc4c74212725cf3",
        "bytes": 1574
      },
      {
        "path": "UnitTests/LightingRegressionTests.fs",
        "sha256": "3ac23a7d7ba4bdbc32db13666be364f78777aaff566b09689b6d13a9a913c54b",
        "bytes": 11010
      },
      {
        "path": "UnitTests/MeshRegressionTests.fs",
        "sha256": "1fd3e29870a6751bde8b1d341a5b79d7733d23807046d6dc29a45d6e100f3883",
        "bytes": 20600
      },
      {
        "path": "UnitTests/NumericalRegressionTests.fs",
        "sha256": "d5b90a110468d9c7fbc0c1b3ee5123683838f6043b93658d97c61b49ff3b6a6a",
        "bytes": 6792
      },
      {
        "path": "UnitTests/Program.fs",
        "sha256": "cfb70e593e134c70fcc5e7d527b7a145548dbad6dcacccbf6aa82dfd47ff2d2c",
        "bytes": 3160
      },
      {
        "path": "UnitTests/README.md",
        "sha256": "9dbf70e1ca20ddcd562763dc971a1f4084a3b313c65f9f9af86a0deadf31d1b8",
        "bytes": 1339
      },
      {
        "path": "UnitTests/RG/RegularGridsTest.fs",
        "sha256": "9c00f34e12c2df2336bff41b2e6ab93ebc5a1ca09fb0664375ac438b8de1f133",
        "bytes": 1114
      },
      {
        "path": "UnitTests/SamplingTest.fs",
        "sha256": "377508b5f5297dffba216e3a001127383600663ed30390d9bc779cb4d1762ea6",
        "bytes": 5653
      },
      {
        "path": "UnitTests/ShapeTest.fs",
        "sha256": "5d9488ee05408ec814f021f13d87c3c77f745f851fd8c704c6ef97a2ca4a7192",
        "bytes": 19409
      },
      {
        "path": "UnitTests/TransformationTest.fs",
        "sha256": "dd6d3a623dc463b6d67b3a0d12c2c2736eb72e7f79ba55d3d18d4aa5b2148040",
        "bytes": 8182
      },
      {
        "path": "UnitTests/UnitTests.fsproj",
        "sha256": "4c4daabd6d95c57a648df0010abc1dc45a0047210e317b0ea617313c749e6b2e",
        "bytes": 1587
      },
      {
        "path": "UnitTests/packages.config",
        "sha256": "8345d499882d0c22eb48754f2ba271b773414459a6d2bdc8fb43b4882b5ba468",
        "bytes": 142
      },
      {
        "path": "UnitTests/packages.lock.json",
        "sha256": "875be7c920aec172bd8a5c844d2a950e241dca858c2f65635ce389db89bf003f",
        "bytes": 1436
      },
      {
        "path": "benchmarks/BENCHMARKS.md",
        "sha256": "f600b5ff768e21f075370aaed2a1f581f57ef76bd678844731333ba2bef4d3d7",
        "bytes": 23606
      },
      {
        "path": "benchmarks/PERFORMANCE.md",
        "sha256": "f6bee0f81e9b6aee747c0628783f9e83799e12df3e37a3d0b2470936370f4b7f",
        "bytes": 3442
      },
      {
        "path": "benchmarks/RESULTS.md",
        "sha256": "056d54296e33963639ab41d28657fdf130eb36de8419443b9881b4e3b775049f",
        "bytes": 4101
      },
      {
        "path": "benchmarks/gold-dragon.json",
        "sha256": "facee2f4b87ac457ec941b900b7eac9d0f3e6b29ce2f1d7970cd2044485681bc",
        "bytes": 1548
      },
      {
        "path": "benchmarks/legacy/LegacyRayTracer.fsproj",
        "sha256": "8aee5724f45605dcd0ea4e40a6b6972297bc38120a97b5383f19bb8625bedfd1",
        "bytes": 4943
      },
      {
        "path": "benchmarks/legacy/README.md",
        "sha256": "7946b65e40a68e867072a21062fa01cf044f1fb016e9dae29e9b94fdd405f686",
        "bytes": 5657
      },
      {
        "path": "benchmarks/legacy/Runner/LegacyRunner.fsproj",
        "sha256": "b6545709e2e860f29610dd70c7ee63da868e03173a1cc987e49a2a0e076a1acb",
        "bytes": 1044
      },
      {
        "path": "benchmarks/legacy/Runner/packages.lock.json",
        "sha256": "cb3479bf5062d82549e852052bf6f384835249c1c34d4dd707707f3c3f369a3a",
        "bytes": 1580
      },
      {
        "path": "benchmarks/legacy/adapted/Acceleration/RegularGrids.fs",
        "sha256": "0030bcdcf4520f711e89971133cd8e34d7cd8ba58a47376e718fb2024ff1b8a8",
        "bytes": 9453
      },
      {
        "path": "benchmarks/legacy/adapted/Core/Foundation.fs",
        "sha256": "47f9b93fab5b165acb1c665f6e0b43d445fb0af71df56b3112d8ec7a2ff318f9",
        "bytes": 4768
      },
      {
        "path": "benchmarks/legacy/adapted/Core/Vector.fs",
        "sha256": "1ace79558b6f799c3f1355d646ad4f6ec83c174c07df86c77656cd3de3ba10dd",
        "bytes": 2710
      },
      {
        "path": "benchmarks/legacy/adapted/Render.fs",
        "sha256": "6c351ed0843f3f7aabb197027cc7943f274ad751b2905e3b02a02686cb1da3b3",
        "bytes": 11083
      },
      {
        "path": "benchmarks/legacy/adapted/Sampling/Sampling.fs",
        "sha256": "13bb63faa77e71ed0265e8b4dd1802a5457e06aecbf1313d78e4d1bb0ac662bd",
        "bytes": 15606
      },
      {
        "path": "benchmarks/legacy/adapted/Sampling/Sampling.fsi",
        "sha256": "12ccfa2d685fe85fd07da5485874a05810372e517fe473f6487a44a09a5c9a26",
        "bytes": 603
      },
      {
        "path": "benchmarks/legacy/adapted/Transformation/Transformation.fs",
        "sha256": "886884b38a6c6bc8f7c789882b9c6a7113fb1ca957f1cdce7c0a3846c73ac63d",
        "bytes": 7252
      },
      {
        "path": "benchmarks/legacy/adapted/Transformation/Transformation.fsi",
        "sha256": "0630a53ca572251bed48326b4a5a1efc5054f098a11932b3307ad715f1b50aec",
        "bytes": 1353
      },
      {
        "path": "benchmarks/legacy/baseline.json",
        "sha256": "c9b7542c80afbe961d904e61bfbaa842524fdc7446019953154efddf496d9ba0",
        "bytes": 565
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/API.fs",
        "sha256": "97dc6097f629a918cf2f821a9060f37eefa913e8deed17ac671c11064908dca0",
        "bytes": 10044
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/API.fsi",
        "sha256": "62eab4d1c9b3d0e5cebce8d7c72cea9ba2ccb09c8547c3c8a086a8b0f49fe885",
        "bytes": 14359
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/API/API.fs",
        "sha256": "06335940c3bcf7b10095c1b2241c77b7566eb954c76969fe7391de88bf012c47",
        "bytes": 10057
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/API/API.fsi",
        "sha256": "9db49c4c48bcb8550aa5f786df4e70ab032985ebd24602a6b55a5243d5e14e18",
        "bytes": 14387
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Acceleration/Acceleration.fs",
        "sha256": "2749f2a8651e80f56011ebac8610c84a4ecbe8507699806d842ca76c4d34fd41",
        "bytes": 2214
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Acceleration/BVH.fs",
        "sha256": "a83ba4d0fe4ed26eac747a8c7564801114ae0ad611d29c46b6c9339055456594",
        "bytes": 10503
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Acceleration/KDTree.fs",
        "sha256": "d4da8373ba71efcab40633733b48e3fb14d695449af8be751f88ea860b807cbb",
        "bytes": 16188
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Acceleration/RegularGrids.fs",
        "sha256": "184d13d1d2bb46b517c42654f6ef7f2dd69239a34e0d8ccc2720e230b500a09c",
        "bytes": 9449
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/App.config",
        "sha256": "8173d4d17cb728e6f2c5e2ce8124ce7eb0f459dc62085bcaab786abf1f6b37a7",
        "bytes": 184
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/AssemblyInfo.fs",
        "sha256": "076327f6c028480a9e7bda7ae14cafeb70375cbb6d1c9d6ed74522005d3a78c7",
        "bytes": 1448
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Camera/Camera.fs",
        "sha256": "ae7ae69898a1a49b64de0b57572b207f49786120c4bdb1210cc79df2a7f1db71",
        "bytes": 877
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Camera/PinholeCamera.fs",
        "sha256": "b6467decd58d4682e9519607d58ec8c43dfb49bc7150d83db22792fd2f4b64b0",
        "bytes": 773
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Camera/ThinLensCamera.fs",
        "sha256": "39667f841c6032c16660c5070160a3a2427e2373934ebd0d4762d0c9ee6d5925",
        "bytes": 1408
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Core/BBox.fs",
        "sha256": "157eb519a89fa76650dc084ad25e87f75434efc805badac217907058b662c4db",
        "bytes": 4075
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Core/Colour.fs",
        "sha256": "ac3a0ae068a72bacfbcd257e15cd088d4eae95766d12a20b2e19bd8e37bb1131",
        "bytes": 2459
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Core/Foundation.fs",
        "sha256": "82fdb5e1214a695adb343366e9e4aa6b07533ba30a8b854954407180c00d3114",
        "bytes": 4789
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Core/Point.fs",
        "sha256": "49808bd59e0db631068f8b301bc06ca68593773f1ad5218d9974259d66774e00",
        "bytes": 2949
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Core/Ray.fs",
        "sha256": "0bfaac6cbdb91e984497ba08b7604c0d43e63974f8dcdeb1f6470fb7320bab71",
        "bytes": 908
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Core/Vector.fs",
        "sha256": "915d797dc8ce3401c9a99fb523c0dc645c4d537b935b6bd3ee6a9c441b531ee4",
        "bytes": 2701
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/ImplicitSurfaces/ExprParse.fs",
        "sha256": "7f44183929596f3029a05d76c91d3fd05213200f0c5a5e82db6972a4b55cddc3",
        "bytes": 7434
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/ImplicitSurfaces/ExprParse.fsi",
        "sha256": "a0ecc9a21cc3bd40c62192881a82c4e2b304f4ba34347c7bce763f3ecfbc7c27",
        "bytes": 658
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/ImplicitSurfaces/ExprToPoly.fs",
        "sha256": "0205831b3bdc58baa0fff89e89a34f4df4a845803cc82e6d506e1410ef989fd4",
        "bytes": 12973
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/ImplicitSurfaces/ExprToPoly.fsi",
        "sha256": "f81a02ec47a4392c4da91fbc44224f440a06d52178dadc453aa06262e3985f69",
        "bytes": 874
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/ImplicitSurfaces/ImplicitSurfaces.fs",
        "sha256": "dcd19ca89049bad1eb74bc2445e8192ccb41aa3ed452f744b807e9f9761e10ea",
        "bytes": 9928
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/ImplicitSurfaces/ImplicitSurfaces.fsi",
        "sha256": "a5af79c03baf0373dcca3eefe8a9c606e56a8824287f2282de8e54edb51adcca",
        "bytes": 752
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/ImplicitSurfaces/PolyToUnipoly.fs",
        "sha256": "e8b724f87efaf9d13ca13258062b350b983aa14d387b977cc9988dbc1e322070",
        "bytes": 7839
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/ImplicitSurfaces/PolyToUnipoly.fsi",
        "sha256": "ab96411c7996bf25c2468c4a3301a3b8c1751b96f97def5b20c32eac119a2817",
        "bytes": 874
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Lights/AreaLight.fs",
        "sha256": "5e2a18fd846b802489f5fd0a76cf15e03f271e463b58bbbfe9240b420e79010a",
        "bytes": 6687
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Lights/BasicLight.fs",
        "sha256": "0d176b69b1ab5fa2bc103c03896c0a2b697eb8e9a601cb203ae7afea66cf6bef",
        "bytes": 1274
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Lights/GlobalLight.fs",
        "sha256": "f5fd1cd76bdb20fe2348ec5f1ae50ce9cc54b0dfba9391301425654e8e26b7f3",
        "bytes": 2350
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Materials/Materials.fs",
        "sha256": "633504c0cd6e64b1fef47fbbf61abf47e478043a29207129116a8b78d578b976",
        "bytes": 13925
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Materials/Textures.fs",
        "sha256": "e7971d6e0b3697c7da75e7af97d78b8bee9cdfbbf8f55247a421635b1402b0e2",
        "bytes": 296
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Materials/Textures.fsi",
        "sha256": "a167a98b1eb95cf7e3ed56890c6bd668dd67d1faa3dcd8b48eb428ab181ff71a",
        "bytes": 268
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Program2.fs",
        "sha256": "f4620ea9b3ab45100cd31701cf757a2dfa8308cf5f152b091e290e5507d8117e",
        "bytes": 5398
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/RayTracer.fsproj",
        "sha256": "f2a654e1d895c8c8d298f5867d0e87246ab142874148b6335c9fc0ad0384de50",
        "bytes": 7499
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Render.fs",
        "sha256": "aadd7394df97eedf466e28883620ec755446e0633fa4144ca18b9cd1a5d6ab3a",
        "bytes": 9849
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Sampling/Sampling.fs",
        "sha256": "1dd97552b308fa7d7ca6824dbab59ef081a6508fa2993fad9eaa2fbf8e7d09f7",
        "bytes": 15542
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Sampling/Sampling.fsi",
        "sha256": "12ccfa2d685fe85fd07da5485874a05810372e517fe473f6487a44a09a5c9a26",
        "bytes": 603
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Scene.fs",
        "sha256": "8d9b0b3164c0e343d6468f54c3a3764cb08b6c040f4979360179a05f55d04f8a",
        "bytes": 633
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Shapes/BaseShape.fs",
        "sha256": "4350d846a61ebdfa46a77d8cf648aa0573a23a83fa5c6a844187a915be594eb0",
        "bytes": 1762
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Shapes/CSG.fs",
        "sha256": "d91d28e781ccb89952fedad26102aca5a373565e8ecfcb49a9a5560393c1f336",
        "bytes": 13405
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Shapes/Shapes.fs",
        "sha256": "e8c36d34283a06561c17df2836517617bd663402a3f715d7fb063e4ae7136690",
        "bytes": 29195
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Transformation/Transformation.fs",
        "sha256": "886884b38a6c6bc8f7c789882b9c6a7113fb1ca957f1cdce7c0a3846c73ac63d",
        "bytes": 7252
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/Transformation/Transformation.fsi",
        "sha256": "d806275f5289fa8bb47f033b8e07a64f6b603c20ffb3d0b677e20e5cdf6feb14",
        "bytes": 1034
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/TriangleMesh/PLYParser.fs",
        "sha256": "389a2b72e86df597489bad34c87fff5e4acb3a50e4f3f75419c9b86e23b36099",
        "bytes": 11762
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/TriangleMesh/TriangleMesh.fs",
        "sha256": "8ae87526409ddf043c0f176dc277438c33ba049e7c22f36e179bb98cd8659801",
        "bytes": 5511
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/TriangleMeshes/PLYParser.fs",
        "sha256": "ab935fe6ea41f54aa4e60bae203c74bdfbeb3855f3432d52ff2c424aa25f82f9",
        "bytes": 11748
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/TriangleMeshes/TriangleMes.fs",
        "sha256": "97c76e42d47a7842983cd5dbca5e4bb99d1fba3d16f9f3ff4c6fbf0d691a815f",
        "bytes": 5803
      },
      {
        "path": "benchmarks/legacy/original/RayTracer/packages.config",
        "sha256": "8345d499882d0c22eb48754f2ba271b773414459a6d2bdc8fb43b4882b5ba468",
        "bytes": 142
      },
      {
        "path": "benchmarks/legacy/packages.lock.json",
        "sha256": "0ff1eeeed5e7286beb426f89e0af6c931b0173b415bb1890c40aee1bcd7aebf3",
        "bytes": 1258
      },
      {
        "path": "benchmarks/legacy/portability.json",
        "sha256": "e3d27c212db703065412eb33b6c34dca52f322abb358371dc4682388c856a2aa",
        "bytes": 6860
      },
      {
        "path": "benchmarks/legacy/prepare-port.fsx",
        "sha256": "34cf2c386bdb423d9fdd4aa54c515de8396493616f9596f0348562f178bd2f18",
        "bytes": 13867
      },
      {
        "path": "benchmarks/legacy/proof.fsx",
        "sha256": "971d7fdf9ca37a9bb6fa59bf88ebae27553eadd6764ae72caf38d45978963227",
        "bytes": 6642
      },
      {
        "path": "benchmarks/legacy/source.sha256",
        "sha256": "e16be33a22219bf6a61a41b10eb407db9601b02e8ec37bbb5dce49574beb20fa",
        "bytes": 6205
      },
      {
        "path": "benchmarks/scenes/chair.json",
        "sha256": "ce33b5f08b535ff21d44640557c93e295fcae9af1679cafb5cf84391f010ff4b",
        "bytes": 28262
      },
      {
        "path": "benchmarks/scenes/gold-dragon.json",
        "sha256": "590bc492b726cb1d27db568b9286d87cc721069656822020ca50da180a63834d",
        "bytes": 4706
      },
      {
        "path": "benchmarks/scenes/material-lab.json",
        "sha256": "bf764d906f1812d17924bb2df0e8c8d46eed43ec1a7400ff44cb4100c2d1f051",
        "bytes": 13119
      },
      {
        "path": "benchmarks/scenes/provenance.json",
        "sha256": "2e013d878c5607edd0d35361869d75370f17855c0bb4bfe6efae249808a915ae",
        "bytes": 39154
      },
      {
        "path": "benchmarks/scenes/roman-bust.json",
        "sha256": "b8074042499dcf0f3dd1b601a179ba33ff316ccbf6409d74c3f4ef38e5da3f8c",
        "bytes": 50954
      },
      {
        "path": "benchmarks/scenes/sky-arena.json",
        "sha256": "6bc23ff6ec29a955201bf492a5b7660415e64d0e7a27a2e75d960576e7b57805",
        "bytes": 59686
      },
      {
        "path": "benchmarks/scenes/space-sentinel.json",
        "sha256": "8036b0353a9d002df6fe71b8751a794c88eaa5167b43534cef550cf29a16d65e",
        "bytes": 31942
      },
      {
        "path": "global.json",
        "sha256": "c39786ab1a147662bbe4db015f900165178875ec4a872ddae53bc0c90771ac34",
        "bytes": 105
      },
      {
        "path": "scripts/BenchmarkData.fs",
        "sha256": "fd035be10f39e07505ec09c514f27648d6be7c9db6859956f1878cbdd216a743",
        "bytes": 21437
      },
      {
        "path": "scripts/BenchmarkReport.fs",
        "sha256": "496d3e67ccadcf1eba30c3e6f3cfd4446bbce9eeb5ab3c2233092d8e667fc438",
        "bytes": 22028
      },
      {
        "path": "scripts/benchmark-builder-tests.fsx",
        "sha256": "4656b39c84837fcb4a011cabfd6a28a8fcae5b8e7f7c713187ee9d02bf31f715",
        "bytes": 7301
      },
      {
        "path": "scripts/benchmark-selection-tests.fsx",
        "sha256": "3df6074987156d3a4eea016f75cfe2713647076cfc285298140d70a7e5ad63ee",
        "bytes": 8605
      },
      {
        "path": "scripts/benchmark-tests.fsx",
        "sha256": "9404afd40796a09112837d47373d81283d87b414820b83b82b654baf31294536",
        "bytes": 15362
      },
      {
        "path": "scripts/benchmark-worker-tests.fsx",
        "sha256": "ac16ea52ca74ba39555155a67654f1d52aa1d46e25adda6f7c60c8b377c64668",
        "bytes": 24849
      },
      {
        "path": "scripts/benchmark.fsx",
        "sha256": "6149284865a8c254efc180ae928fc3ae9a36dc9088382002a898a58d742997fe",
        "bytes": 40289
      },
      {
        "path": "scripts/prepare-gold-dragon.fsx",
        "sha256": "29904b83e01ffce200f6fd15635b39369a63592b8109bf008a7a2f1eb4d70894",
        "bytes": 4427
      },
      {
        "path": "scripts/publish-report.sh",
        "sha256": "5624d9bda51ccf3c119cf88693ad20cd26251b4050eab95aa113a2a3781e182c",
        "bytes": 7494
      },
      {
        "path": "scripts/tune-cpu.fsx",
        "sha256": "86d3c04520fcdbffb9d6598d342b5f5362c4b51f9816c50b21590902df6ba6d3",
        "bytes": 6282
      }
    ],
    "dotnet": "/home/movj/.dotnet/dotnet",
    "sdk": ".NET SDK:\n Version:           10.0.400\n Commit:            14fbf8d527\n Workload version:  10.0.400-manifests.330ea142\n MSBuild version:   18.9.6\u002B14fbf8d52\n\nRuntime Environment:\n OS Name:     ubuntu\n OS Version:  24.04\n OS Platform: Linux\n RID:         linux-x64\n Base Path:   /home/movj/.dotnet/sdk/10.0.400/\n\n.NET workloads installed:\nThere are no installed workloads to display.\nConfigured to use workload sets when installing new manifests.\nNo workload sets are installed. Run \u0022dotnet workload restore\u0022 to install a workload set.\n\nHost:\n  Version:      10.0.11\n  Architecture: x64\n  Commit:       e2f47b0110\n\n.NET SDKs installed:\n  10.0.400 [/home/movj/.dotnet/sdk]\n\n.NET runtimes installed:\n  Microsoft.AspNetCore.App 10.0.11 [/home/movj/.dotnet/shared/Microsoft.AspNetCore.App]\n  Microsoft.NETCore.App 10.0.11 [/home/movj/.dotnet/shared/Microsoft.NETCore.App]\n\nOther architectures found:\n  None\n\nEnvironment variables:\n  DOTNET_HOST_PATH                         [/home/movj/.dotnet/dotnet]\n\nglobal.json file:\n  /home/movj/code/dev/Ray_Tracer_FSharp/global.json\n\nLearn more:\n  https://aka.ms/dotnet/info\n\nDownload .NET:\n  https://aka.ms/dotnet/download",
    "operatingSystem": "Ubuntu 24.04.2 LTS",
    "architecture": "X64",
    "cpu": "model name\t: Intel(R) Core(TM) Ultra 9 185H",
    "gpuProbe": "NVIDIA RTX 3000 Ada Generation Laptop GPU, GPU-4acd4a56-4d85-7590-4669-043d3263a13b, 596.47, 8188 MiB",
    "runtimeEnvironment": [
      "DOTNET_TieredCompilation=\u003Cunset\u003E",
      "DOTNET_TC_QuickJit=\u003Cunset\u003E",
      "DOTNET_TC_QuickJitForLoops=\u003Cunset\u003E",
      "DOTNET_ReadyToRun=\u003Cunset\u003E",
      "DOTNET_gcServer=\u003Cunset\u003E",
      "DOTNET_GCHeapHardLimit=\u003Cunset\u003E",
      "DOTNET_PROCESSOR_COUNT=\u003Cunset\u003E",
      "COMPlus_TieredCompilation=\u003Cunset\u003E",
      "COMPlus_ReadyToRun=\u003Cunset\u003E",
      "COMPlus_gcServer=\u003Cunset\u003E",
      "CUDA_VISIBLE_DEVICES=\u003Cunset\u003E"
    ],
    "dependencies": [
      {
        "path": "/home/movj/code/dev/Ray_Tracer_FSharp/BenchmarkRunner/bin/Release/net10.0/Basics.dll",
        "sha256": "f2e33febc79668b633ed7920e9f2c21a3b8400cb14fb9da05876716ddb2101c1",
        "bytes": 424448
      },
      {
        "path": "/home/movj/code/dev/Ray_Tracer_FSharp/BenchmarkRunner/bin/Release/net10.0/BenchmarkRunner.deps.json",
        "sha256": "0dbbaa70c4dbb918c318fd1aa5525e9bb5933f016b61763572a47dd790c41729",
        "bytes": 5818
      },
      {
        "path": "/home/movj/code/dev/Ray_Tracer_FSharp/BenchmarkRunner/bin/Release/net10.0/BenchmarkRunner.dll",
        "sha256": "3a93fba732f83370030e2c22d37e91642d584aa45dde8e69fb41cafc208bda6e",
        "bytes": 63488
      },
      {
        "path": "/home/movj/code/dev/Ray_Tracer_FSharp/BenchmarkRunner/bin/Release/net10.0/BenchmarkRunner.runtimeconfig.json",
        "sha256": "9950d4583cfc9a106857c0d5b8a75b53e8774852b57b80bc3823a74d44a4d87f",
        "bytes": 330
      },
      {
        "path": "/home/movj/code/dev/Ray_Tracer_FSharp/BenchmarkRunner/bin/Release/net10.0/FParsec.dll",
        "sha256": "147154cd8e33699c1458cd7653b78d6c93c2ea272e9aeb3f838af95af2a82b23",
        "bytes": 241152
      },
      {
        "path": "/home/movj/code/dev/Ray_Tracer_FSharp/BenchmarkRunner/bin/Release/net10.0/FParsecCS.dll",
        "sha256": "1822de41fcf78bf92de841f03e9a5c78db7fb1eb19cf699f78e06f064e0d4013",
        "bytes": 104448
      },
      {
        "path": "/home/movj/code/dev/Ray_Tracer_FSharp/BenchmarkRunner/bin/Release/net10.0/FSharp.Core.dll",
        "sha256": "63797dea63b00ca2081d71827cecbb5425956886b4c3b06947e7ae561a43e366",
        "bytes": 2405672
      },
      {
        "path": "/home/movj/code/dev/Ray_Tracer_FSharp/BenchmarkRunner/bin/Release/net10.0/RayTracer.ImageIO.dll",
        "sha256": "449f305e2c3411ec46225eaf1a3b72bc9edbe2492a8c8d74acc376972b98521d",
        "bytes": 10752
      },
      {
        "path": "/home/movj/code/dev/Ray_Tracer_FSharp/BenchmarkRunner/bin/Release/net10.0/SceneFormat.dll",
        "sha256": "3021b2b9404a1386b3ef3e8c11c010c60fd1bcea3dd5c1118e516ec4159e8d7b",
        "bytes": 69632
      },
      {
        "path": "/home/movj/code/dev/Ray_Tracer_FSharp/BenchmarkRunner/bin/Release/net10.0/StbImageSharp.dll",
        "sha256": "0ff268f51876e7924192c70a164bac8da402ed0a3ca30e9d2a2840e7f0deda84",
        "bytes": 77312
      },
      {
        "path": "/home/movj/code/dev/Ray_Tracer_FSharp/BenchmarkRunner/bin/Release/net10.0/StbImageWriteSharp.dll",
        "sha256": "70921000beb9ca762a8acdb93ac6f6c39db8a351a6fa12aca3eddbc652855f04",
        "bytes": 37376
      },
      {
        "path": "/home/movj/code/dev/Ray_Tracer_FSharp/RayTracer.Gpu/bin/Release/net10.0/Basics.dll",
        "sha256": "f2e33febc79668b633ed7920e9f2c21a3b8400cb14fb9da05876716ddb2101c1",
        "bytes": 424448
      },
      {
        "path": "/home/movj/code/dev/Ray_Tracer_FSharp/RayTracer.Gpu/bin/Release/net10.0/FParsec.dll",
        "sha256": "147154cd8e33699c1458cd7653b78d6c93c2ea272e9aeb3f838af95af2a82b23",
        "bytes": 241152
      },
      {
        "path": "/home/movj/code/dev/Ray_Tracer_FSharp/RayTracer.Gpu/bin/Release/net10.0/FParsecCS.dll",
        "sha256": "1822de41fcf78bf92de841f03e9a5c78db7fb1eb19cf699f78e06f064e0d4013",
        "bytes": 104448
      },
      {
        "path": "/home/movj/code/dev/Ray_Tracer_FSharp/RayTracer.Gpu/bin/Release/net10.0/FSharp.Core.dll",
        "sha256": "63797dea63b00ca2081d71827cecbb5425956886b4c3b06947e7ae561a43e366",
        "bytes": 2405672
      },
      {
        "path": "/home/movj/code/dev/Ray_Tracer_FSharp/RayTracer.Gpu/bin/Release/net10.0/ILGPU.Algorithms.dll",
        "sha256": "2e103e6eaebb335fdc9cbcaddfef348befa0b576fd4f96532c0e38a3a2aa0788",
        "bytes": 1538048
      },
      {
        "path": "/home/movj/code/dev/Ray_Tracer_FSharp/RayTracer.Gpu/bin/Release/net10.0/ILGPU.dll",
        "sha256": "86aabe2a5a00002d5841791b5fbe9c8edd64b0ea15845c27bc5c85b2b1daacf6",
        "bytes": 1992192
      },
      {
        "path": "/home/movj/code/dev/Ray_Tracer_FSharp/RayTracer.Gpu/bin/Release/net10.0/RayTracer.Gpu.deps.json",
        "sha256": "1c1524bcb60afacf0735bc9fd8b0194e696b15ddb40cf3cead7d50add600cce2",
        "bytes": 6916
      },
      {
        "path": "/home/movj/code/dev/Ray_Tracer_FSharp/RayTracer.Gpu/bin/Release/net10.0/RayTracer.Gpu.dll",
        "sha256": "b8942edb091da2ca3929e688baf0461226db6ca0a78fe762aebabb9608536f0f",
        "bytes": 235008
      },
      {
        "path": "/home/movj/code/dev/Ray_Tracer_FSharp/RayTracer.Gpu/bin/Release/net10.0/RayTracer.Gpu.runtimeconfig.json",
        "sha256": "9950d4583cfc9a106857c0d5b8a75b53e8774852b57b80bc3823a74d44a4d87f",
        "bytes": 330
      },
      {
        "path": "/home/movj/code/dev/Ray_Tracer_FSharp/RayTracer.Gpu/bin/Release/net10.0/RayTracer.ImageIO.dll",
        "sha256": "449f305e2c3411ec46225eaf1a3b72bc9edbe2492a8c8d74acc376972b98521d",
        "bytes": 10752
      },
      {
        "path": "/home/movj/code/dev/Ray_Tracer_FSharp/RayTracer.Gpu/bin/Release/net10.0/SceneFormat.dll",
        "sha256": "3021b2b9404a1386b3ef3e8c11c010c60fd1bcea3dd5c1118e516ec4159e8d7b",
        "bytes": 69632
      },
      {
        "path": "/home/movj/code/dev/Ray_Tracer_FSharp/RayTracer.Gpu/bin/Release/net10.0/StbImageSharp.dll",
        "sha256": "0ff268f51876e7924192c70a164bac8da402ed0a3ca30e9d2a2840e7f0deda84",
        "bytes": 77312
      },
      {
        "path": "/home/movj/code/dev/Ray_Tracer_FSharp/RayTracer.Gpu/bin/Release/net10.0/StbImageWriteSharp.dll",
        "sha256": "70921000beb9ca762a8acdb93ac6f6c39db8a351a6fa12aca3eddbc652855f04",
        "bytes": 37376
      }
    ],
    "dependencyDescriptions": [
      "{\n  \u0022runtimeTarget\u0022: {\n    \u0022name\u0022: \u0022.NETCoreApp,Version=v10.0\u0022,\n    \u0022signature\u0022: \u0022\u0022\n  },\n  \u0022compilationOptions\u0022: {},\n  \u0022targets\u0022: {\n    \u0022.NETCoreApp,Version=v10.0\u0022: {\n      \u0022BenchmarkRunner/1.0.0\u0022: {\n        \u0022dependencies\u0022: {\n          \u0022Basics\u0022: \u00221.0.0\u0022,\n          \u0022FSharp.Core\u0022: \u002210.1.400\u0022,\n          \u0022RayTracer.ImageIO\u0022: \u00221.0.0\u0022,\n          \u0022SceneFormat\u0022: \u00221.0.0\u0022,\n          \u0022Basics.Reference\u0022: \u00221.0.0.0\u0022\n        },\n        \u0022runtime\u0022: {\n          \u0022BenchmarkRunner.dll\u0022: {}\n        }\n      },\n      \u0022FParsec/1.1.1\u0022: {\n        \u0022dependencies\u0022: {\n          \u0022FSharp.Core\u0022: \u002210.1.400\u0022\n        },\n        \u0022runtime\u0022: {\n          \u0022lib/netstandard2.0/FParsec.dll\u0022: {\n            \u0022assemblyVersion\u0022: \u00221.1.1.0\u0022,\n            \u0022fileVersion\u0022: \u00221.1.1.0\u0022\n          },\n          \u0022lib/netstandard2.0/FParsecCS.dll\u0022: {\n            \u0022assemblyVersion\u0022: \u00221.1.1.0\u0022,\n            \u0022fileVersion\u0022: \u00221.1.1.0\u0022\n          }\n        }\n      },\n      \u0022FSharp.Core/10.1.400\u0022: {\n        \u0022runtime\u0022: {\n          \u0022lib/netstandard2.1/FSharp.Core.dll\u0022: {\n            \u0022assemblyVersion\u0022: \u002210.1.0.0\u0022,\n            \u0022fileVersion\u0022: \u002210.104.26.38015\u0022\n          }\n        },\n        \u0022resources\u0022: {\n          \u0022lib/netstandard2.1/cs/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022cs\u0022\n          },\n          \u0022lib/netstandard2.1/de/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022de\u0022\n          },\n          \u0022lib/netstandard2.1/es/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022es\u0022\n          },\n          \u0022lib/netstandard2.1/fr/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022fr\u0022\n          },\n          \u0022lib/netstandard2.1/it/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022it\u0022\n          },\n          \u0022lib/netstandard2.1/ja/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022ja\u0022\n          },\n          \u0022lib/netstandard2.1/ko/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022ko\u0022\n          },\n          \u0022lib/netstandard2.1/pl/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022pl\u0022\n          },\n          \u0022lib/netstandard2.1/pt-BR/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022pt-BR\u0022\n          },\n          \u0022lib/netstandard2.1/ru/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022ru\u0022\n          },\n          \u0022lib/netstandard2.1/tr/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022tr\u0022\n          },\n          \u0022lib/netstandard2.1/zh-Hans/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022zh-Hans\u0022\n          },\n          \u0022lib/netstandard2.1/zh-Hant/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022zh-Hant\u0022\n          }\n        }\n      },\n      \u0022StbImageSharp/2.30.16\u0022: {\n        \u0022runtime\u0022: {\n          \u0022lib/net8.0/StbImageSharp.dll\u0022: {\n            \u0022assemblyVersion\u0022: \u00222.30.16.0\u0022,\n            \u0022fileVersion\u0022: \u00222.30.16.0\u0022\n          }\n        }\n      },\n      \u0022StbImageWriteSharp/1.16.7\u0022: {\n        \u0022runtime\u0022: {\n          \u0022lib/netstandard2.0/StbImageWriteSharp.dll\u0022: {\n            \u0022assemblyVersion\u0022: \u00221.16.7.0\u0022,\n            \u0022fileVersion\u0022: \u00221.16.7.0\u0022\n          }\n        }\n      },\n      \u0022Basics/1.0.0\u0022: {\n        \u0022dependencies\u0022: {\n          \u0022FParsec\u0022: \u00221.1.1\u0022,\n          \u0022FSharp.Core\u0022: \u002210.1.400\u0022,\n          \u0022RayTracer.ImageIO\u0022: \u00221.0.0\u0022\n        },\n        \u0022runtime\u0022: {\n          \u0022Basics.dll\u0022: {\n            \u0022fileVersion\u0022: \u00220.0.0.0\u0022\n          }\n        }\n      },\n      \u0022RayTracer.ImageIO/1.0.0\u0022: {\n        \u0022dependencies\u0022: {\n          \u0022FSharp.Core\u0022: \u002210.1.400\u0022,\n          \u0022StbImageSharp\u0022: \u00222.30.16\u0022,\n          \u0022StbImageWriteSharp\u0022: \u00221.16.7\u0022\n        },\n        \u0022runtime\u0022: {\n          \u0022RayTracer.ImageIO.dll\u0022: {\n            \u0022assemblyVersion\u0022: \u00221.0.0.0\u0022,\n            \u0022fileVersion\u0022: \u00221.0.0.0\u0022\n          }\n        }\n      },\n      \u0022SceneFormat/1.0.0\u0022: {\n        \u0022dependencies\u0022: {\n          \u0022FSharp.Core\u0022: \u002210.1.400\u0022\n        },\n        \u0022runtime\u0022: {\n          \u0022SceneFormat.dll\u0022: {\n            \u0022assemblyVersion\u0022: \u00221.0.0.0\u0022,\n            \u0022fileVersion\u0022: \u00221.0.0.0\u0022\n          }\n        }\n      },\n      \u0022Basics.Reference/1.0.0.0\u0022: {\n        \u0022runtime\u0022: {\n          \u0022Basics.dll\u0022: {\n            \u0022assemblyVersion\u0022: \u00221.0.0.0\u0022,\n            \u0022fileVersion\u0022: \u00221.0.0.0\u0022\n          }\n        }\n      }\n    }\n  },\n  \u0022libraries\u0022: {\n    \u0022BenchmarkRunner/1.0.0\u0022: {\n      \u0022type\u0022: \u0022project\u0022,\n      \u0022serviceable\u0022: false,\n      \u0022sha512\u0022: \u0022\u0022\n    },\n    \u0022FParsec/1.1.1\u0022: {\n      \u0022type\u0022: \u0022package\u0022,\n      \u0022serviceable\u0022: true,\n      \u0022sha512\u0022: \u0022sha512-Wdjf/gCNLEwd\u002B0nUCDh9jAIIcKGwfhRramySTnTcVVgNC6i4Vp5aJklUJJfvFkEZMYNZEDGcI8pCa36/TmwmSg==\u0022,\n      \u0022path\u0022: \u0022fparsec/1.1.1\u0022,\n      \u0022hashPath\u0022: \u0022fparsec.1.1.1.nupkg.sha512\u0022\n    },\n    \u0022FSharp.Core/10.1.400\u0022: {\n      \u0022type\u0022: \u0022package\u0022,\n      \u0022serviceable\u0022: true,\n      \u0022sha512\u0022: \u0022sha512-mxCkXuBt4wyRMmHf4boZXm30zZZsjBt3\u002B9ISzXB8wFvJJAACrPPh9vj85Kqtxj/2FvDxAQnnRnJpNcJSXElhgA==\u0022,\n      \u0022path\u0022: \u0022fsharp.core/10.1.400\u0022,\n      \u0022hashPath\u0022: \u0022fsharp.core.10.1.400.nupkg.sha512\u0022\n    },\n    \u0022StbImageSharp/2.30.16\u0022: {\n      \u0022type\u0022: \u0022package\u0022,\n      \u0022serviceable\u0022: true,\n      \u0022sha512\u0022: \u0022sha512-qg1i\u002BNHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw==\u0022,\n      \u0022path\u0022: \u0022stbimagesharp/2.30.16\u0022,\n      \u0022hashPath\u0022: \u0022stbimagesharp.2.30.16.nupkg.sha512\u0022\n    },\n    \u0022StbImageWriteSharp/1.16.7\u0022: {\n      \u0022type\u0022: \u0022package\u0022,\n      \u0022serviceable\u0022: true,\n      \u0022sha512\u0022: \u0022sha512-NF9kOxi0iS9VunklnRKgOpAWC2knCGKRjdy7RT6XAqYNyb7LQfyPHPdl4l1fJw7TFYKrGQzQOmK1XpBONC2MoA==\u0022,\n      \u0022path\u0022: \u0022stbimagewritesharp/1.16.7\u0022,\n      \u0022hashPath\u0022: \u0022stbimagewritesharp.1.16.7.nupkg.sha512\u0022\n    },\n    \u0022Basics/1.0.0\u0022: {\n      \u0022type\u0022: \u0022project\u0022,\n      \u0022serviceable\u0022: false,\n      \u0022sha512\u0022: \u0022\u0022\n    },\n    \u0022RayTracer.ImageIO/1.0.0\u0022: {\n      \u0022type\u0022: \u0022project\u0022,\n      \u0022serviceable\u0022: false,\n      \u0022sha512\u0022: \u0022\u0022\n    },\n    \u0022SceneFormat/1.0.0\u0022: {\n      \u0022type\u0022: \u0022project\u0022,\n      \u0022serviceable\u0022: false,\n      \u0022sha512\u0022: \u0022\u0022\n    },\n    \u0022Basics.Reference/1.0.0.0\u0022: {\n      \u0022type\u0022: \u0022reference\u0022,\n      \u0022serviceable\u0022: false,\n      \u0022sha512\u0022: \u0022\u0022\n    }\n  }\n}",
      "{\n  \u0022runtimeTarget\u0022: {\n    \u0022name\u0022: \u0022.NETCoreApp,Version=v10.0\u0022,\n    \u0022signature\u0022: \u0022\u0022\n  },\n  \u0022compilationOptions\u0022: {},\n  \u0022targets\u0022: {\n    \u0022.NETCoreApp,Version=v10.0\u0022: {\n      \u0022RayTracer.Gpu/1.0.0\u0022: {\n        \u0022dependencies\u0022: {\n          \u0022Basics\u0022: \u00221.0.0\u0022,\n          \u0022FSharp.Core\u0022: \u002210.1.400\u0022,\n          \u0022ILGPU\u0022: \u00221.5.3\u0022,\n          \u0022ILGPU.Algorithms\u0022: \u00221.5.3\u0022,\n          \u0022RayTracer.ImageIO\u0022: \u00221.0.0\u0022,\n          \u0022SceneFormat\u0022: \u00221.0.0\u0022,\n          \u0022Basics.Reference\u0022: \u00221.0.0.0\u0022\n        },\n        \u0022runtime\u0022: {\n          \u0022RayTracer.Gpu.dll\u0022: {}\n        }\n      },\n      \u0022FParsec/1.1.1\u0022: {\n        \u0022dependencies\u0022: {\n          \u0022FSharp.Core\u0022: \u002210.1.400\u0022\n        },\n        \u0022runtime\u0022: {\n          \u0022lib/netstandard2.0/FParsec.dll\u0022: {\n            \u0022assemblyVersion\u0022: \u00221.1.1.0\u0022,\n            \u0022fileVersion\u0022: \u00221.1.1.0\u0022\n          },\n          \u0022lib/netstandard2.0/FParsecCS.dll\u0022: {\n            \u0022assemblyVersion\u0022: \u00221.1.1.0\u0022,\n            \u0022fileVersion\u0022: \u00221.1.1.0\u0022\n          }\n        }\n      },\n      \u0022FSharp.Core/10.1.400\u0022: {\n        \u0022runtime\u0022: {\n          \u0022lib/netstandard2.1/FSharp.Core.dll\u0022: {\n            \u0022assemblyVersion\u0022: \u002210.1.0.0\u0022,\n            \u0022fileVersion\u0022: \u002210.104.26.38015\u0022\n          }\n        },\n        \u0022resources\u0022: {\n          \u0022lib/netstandard2.1/cs/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022cs\u0022\n          },\n          \u0022lib/netstandard2.1/de/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022de\u0022\n          },\n          \u0022lib/netstandard2.1/es/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022es\u0022\n          },\n          \u0022lib/netstandard2.1/fr/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022fr\u0022\n          },\n          \u0022lib/netstandard2.1/it/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022it\u0022\n          },\n          \u0022lib/netstandard2.1/ja/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022ja\u0022\n          },\n          \u0022lib/netstandard2.1/ko/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022ko\u0022\n          },\n          \u0022lib/netstandard2.1/pl/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022pl\u0022\n          },\n          \u0022lib/netstandard2.1/pt-BR/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022pt-BR\u0022\n          },\n          \u0022lib/netstandard2.1/ru/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022ru\u0022\n          },\n          \u0022lib/netstandard2.1/tr/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022tr\u0022\n          },\n          \u0022lib/netstandard2.1/zh-Hans/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022zh-Hans\u0022\n          },\n          \u0022lib/netstandard2.1/zh-Hant/FSharp.Core.resources.dll\u0022: {\n            \u0022locale\u0022: \u0022zh-Hant\u0022\n          }\n        }\n      },\n      \u0022ILGPU/1.5.3\u0022: {\n        \u0022runtime\u0022: {\n          \u0022lib/net7.0/ILGPU.dll\u0022: {\n            \u0022assemblyVersion\u0022: \u00221.5.3.0\u0022,\n            \u0022fileVersion\u0022: \u00221.5.3.0\u0022\n          }\n        }\n      },\n      \u0022ILGPU.Algorithms/1.5.3\u0022: {\n        \u0022dependencies\u0022: {\n          \u0022ILGPU\u0022: \u00221.5.3\u0022\n        },\n        \u0022runtime\u0022: {\n          \u0022lib/net7.0/ILGPU.Algorithms.dll\u0022: {\n            \u0022assemblyVersion\u0022: \u00221.5.3.0\u0022,\n            \u0022fileVersion\u0022: \u00221.5.3.0\u0022\n          }\n        }\n      },\n      \u0022StbImageSharp/2.30.16\u0022: {\n        \u0022runtime\u0022: {\n          \u0022lib/net8.0/StbImageSharp.dll\u0022: {\n            \u0022assemblyVersion\u0022: \u00222.30.16.0\u0022,\n            \u0022fileVersion\u0022: \u00222.30.16.0\u0022\n          }\n        }\n      },\n      \u0022StbImageWriteSharp/1.16.7\u0022: {\n        \u0022runtime\u0022: {\n          \u0022lib/netstandard2.0/StbImageWriteSharp.dll\u0022: {\n            \u0022assemblyVersion\u0022: \u00221.16.7.0\u0022,\n            \u0022fileVersion\u0022: \u00221.16.7.0\u0022\n          }\n        }\n      },\n      \u0022Basics/1.0.0\u0022: {\n        \u0022dependencies\u0022: {\n          \u0022FParsec\u0022: \u00221.1.1\u0022,\n          \u0022FSharp.Core\u0022: \u002210.1.400\u0022,\n          \u0022RayTracer.ImageIO\u0022: \u00221.0.0\u0022\n        },\n        \u0022runtime\u0022: {\n          \u0022Basics.dll\u0022: {\n            \u0022fileVersion\u0022: \u00220.0.0.0\u0022\n          }\n        }\n      },\n      \u0022RayTracer.ImageIO/1.0.0\u0022: {\n        \u0022dependencies\u0022: {\n          \u0022FSharp.Core\u0022: \u002210.1.400\u0022,\n          \u0022StbImageSharp\u0022: \u00222.30.16\u0022,\n          \u0022StbImageWriteSharp\u0022: \u00221.16.7\u0022\n        },\n        \u0022runtime\u0022: {\n          \u0022RayTracer.ImageIO.dll\u0022: {\n            \u0022assemblyVersion\u0022: \u00221.0.0.0\u0022,\n            \u0022fileVersion\u0022: \u00221.0.0.0\u0022\n          }\n        }\n      },\n      \u0022SceneFormat/1.0.0\u0022: {\n        \u0022dependencies\u0022: {\n          \u0022FSharp.Core\u0022: \u002210.1.400\u0022\n        },\n        \u0022runtime\u0022: {\n          \u0022SceneFormat.dll\u0022: {\n            \u0022assemblyVersion\u0022: \u00221.0.0.0\u0022,\n            \u0022fileVersion\u0022: \u00221.0.0.0\u0022\n          }\n        }\n      },\n      \u0022Basics.Reference/1.0.0.0\u0022: {\n        \u0022runtime\u0022: {\n          \u0022Basics.dll\u0022: {\n            \u0022assemblyVersion\u0022: \u00221.0.0.0\u0022,\n            \u0022fileVersion\u0022: \u00221.0.0.0\u0022\n          }\n        }\n      }\n    }\n  },\n  \u0022libraries\u0022: {\n    \u0022RayTracer.Gpu/1.0.0\u0022: {\n      \u0022type\u0022: \u0022project\u0022,\n      \u0022serviceable\u0022: false,\n      \u0022sha512\u0022: \u0022\u0022\n    },\n    \u0022FParsec/1.1.1\u0022: {\n      \u0022type\u0022: \u0022package\u0022,\n      \u0022serviceable\u0022: true,\n      \u0022sha512\u0022: \u0022sha512-Wdjf/gCNLEwd\u002B0nUCDh9jAIIcKGwfhRramySTnTcVVgNC6i4Vp5aJklUJJfvFkEZMYNZEDGcI8pCa36/TmwmSg==\u0022,\n      \u0022path\u0022: \u0022fparsec/1.1.1\u0022,\n      \u0022hashPath\u0022: \u0022fparsec.1.1.1.nupkg.sha512\u0022\n    },\n    \u0022FSharp.Core/10.1.400\u0022: {\n      \u0022type\u0022: \u0022package\u0022,\n      \u0022serviceable\u0022: true,\n      \u0022sha512\u0022: \u0022sha512-mxCkXuBt4wyRMmHf4boZXm30zZZsjBt3\u002B9ISzXB8wFvJJAACrPPh9vj85Kqtxj/2FvDxAQnnRnJpNcJSXElhgA==\u0022,\n      \u0022path\u0022: \u0022fsharp.core/10.1.400\u0022,\n      \u0022hashPath\u0022: \u0022fsharp.core.10.1.400.nupkg.sha512\u0022\n    },\n    \u0022ILGPU/1.5.3\u0022: {\n      \u0022type\u0022: \u0022package\u0022,\n      \u0022serviceable\u0022: true,\n      \u0022sha512\u0022: \u0022sha512-VhAfQqnp/qTcQla5zcBPQIoUJox8T1EuZLuKrynFFE1BQvOOUCksiCb9IQAJa2MSJf6QDi5YIoG45K0I\u002BGWcgg==\u0022,\n      \u0022path\u0022: \u0022ilgpu/1.5.3\u0022,\n      \u0022hashPath\u0022: \u0022ilgpu.1.5.3.nupkg.sha512\u0022\n    },\n    \u0022ILGPU.Algorithms/1.5.3\u0022: {\n      \u0022type\u0022: \u0022package\u0022,\n      \u0022serviceable\u0022: true,\n      \u0022sha512\u0022: \u0022sha512-KySqYhghiJKkf77NTLcxebFzD2hz/hpO1Dxz/B0IpnowhwKD3i\u002BPVaGa3E\u002BTXahGHY6711HVOWpKr07wV6qEOg==\u0022,\n      \u0022path\u0022: \u0022ilgpu.algorithms/1.5.3\u0022,\n      \u0022hashPath\u0022: \u0022ilgpu.algorithms.1.5.3.nupkg.sha512\u0022\n    },\n    \u0022StbImageSharp/2.30.16\u0022: {\n      \u0022type\u0022: \u0022package\u0022,\n      \u0022serviceable\u0022: true,\n      \u0022sha512\u0022: \u0022sha512-qg1i\u002BNHihXVKLKYacGKrauhSQIGL31eBWcTC4Vc7jnGmBFj87LkRuCdXB5aDZisWMRnB6x2mcfwYXQxMWEG/lw==\u0022,\n      \u0022path\u0022: \u0022stbimagesharp/2.30.16\u0022,\n      \u0022hashPath\u0022: \u0022stbimagesharp.2.30.16.nupkg.sha512\u0022\n    },\n    \u0022StbImageWriteSharp/1.16.7\u0022: {\n      \u0022type\u0022: \u0022package\u0022,\n      \u0022serviceable\u0022: true,\n      \u0022sha512\u0022: \u0022sha512-NF9kOxi0iS9VunklnRKgOpAWC2knCGKRjdy7RT6XAqYNyb7LQfyPHPdl4l1fJw7TFYKrGQzQOmK1XpBONC2MoA==\u0022,\n      \u0022path\u0022: \u0022stbimagewritesharp/1.16.7\u0022,\n      \u0022hashPath\u0022: \u0022stbimagewritesharp.1.16.7.nupkg.sha512\u0022\n    },\n    \u0022Basics/1.0.0\u0022: {\n      \u0022type\u0022: \u0022project\u0022,\n      \u0022serviceable\u0022: false,\n      \u0022sha512\u0022: \u0022\u0022\n    },\n    \u0022RayTracer.ImageIO/1.0.0\u0022: {\n      \u0022type\u0022: \u0022project\u0022,\n      \u0022serviceable\u0022: false,\n      \u0022sha512\u0022: \u0022\u0022\n    },\n    \u0022SceneFormat/1.0.0\u0022: {\n      \u0022type\u0022: \u0022project\u0022,\n      \u0022serviceable\u0022: false,\n      \u0022sha512\u0022: \u0022\u0022\n    },\n    \u0022Basics.Reference/1.0.0.0\u0022: {\n      \u0022type\u0022: \u0022reference\u0022,\n      \u0022serviceable\u0022: false,\n      \u0022sha512\u0022: \u0022\u0022\n    }\n  }\n}"
    ],
    "notes": [
      "All worker processes execute serially. Each measured repeat is a fresh process; separate warmups do not remove measured JIT/startup cost.",
      "legacy-port retains the ineffective legacy random seeding, schedule-dependent samples, shared triangle barycentric races, original transport and forced cleanup GC.",
      "DOTNET_PROCESSOR_COUNT is set to requested threads for every worker. Legacy keeps its original Parallel.For scheduling; this is not a per-OS-thread hard cap.",
      "Renderer precision and PFM float32 storage precision differ. PFM retains unclamped linear HDR values, not gamma-encoded PNG values.",
      "Source digest hashes tracked and nonignored untracked working-tree source, including dirty file contents and missing tracked files; not merely the git SHA.",
      "Worker phases marked unavailable are not observations. Failure metrics are retained verbatim but never included as zero-valued timings.",
      "Existing/override assemblies were explicitly requested: binary hashes are retained, but this invocation did not establish source-to-binary build correspondence."
    ]
  },
  "cases": [
    {
      "preset": "quick",
      "scene": "chair",
      "scenePath": "/home/movj/code/dev/Ray_Tracer_FSharp/benchmarks/scenes/chair.json",
      "material": "authored",
      "engine": "cpu",
      "worker": "/home/movj/code/dev/Ray_Tracer_FSharp/BenchmarkRunner/bin/Release/net10.0/BenchmarkRunner.dll",
      "acceleration": "bvh",
      "settings": {
        "width": 32,
        "height": 32,
        "cameraSamples": 1,
        "lightSamples": 1,
        "glossySamples": 1,
        "maxBounces": 2,
        "threads": 1,
        "tileSize": 8,
        "seed": 2026,
        "precision": "float64",
        "sampler": "regular",
        "transfer": "srgb"
      },
      "inputFiles": [
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/artifacts/scene-assets/meshes/chair-curved-rail.ply",
          "sha256": "3abf775c52592e116c5d8f424d7e1a38ce2c3cebab4ebce596b8084b911bb9a3",
          "bytes": 35784
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/artifacts/scene-assets/meshes/chair-curved-slat.ply",
          "sha256": "11ed75310341d1182fb1d2c2ff177665f65d669c7641cd2060867bb5aec90f12",
          "bytes": 21409
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/artifacts/scene-assets/meshes/disc.ply",
          "sha256": "7fe0e61611762138a2c371791419ad12e657458d1be98f397178e8dffdcf8033",
          "bytes": 19872
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/artifacts/scene-assets/meshes/ring.ply",
          "sha256": "a8c5fa93e3853cf9acc908f69d62f77745a1b6006ecce8404c0f31f880e13cce",
          "bytes": 71054
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/artifacts/scene-assets/meshes/rounded-box.ply",
          "sha256": "d3e61dcd3397ee5db3e1dd9885131a966c968ccab4c8b0fb8a368cc5397406b1",
          "bytes": 20502
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/artifacts/scene-assets/meshes/rounded-cylinder.ply",
          "sha256": "197d4d973167b6be6c4cc26fd01fb4f83eb5b846eb56a59d17ef74a358a37793",
          "bytes": 21136
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/artifacts/scene-assets/meshes/seat-piping.ply",
          "sha256": "2b7444292836b0e9ee37cc327e35d5031c2ab7f9459961d985ebddfac75e788f",
          "bytes": 69345
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/artifacts/scene-assets/meshes/small-sphere.ply",
          "sha256": "3f7b4f85cd8b2dea3a1a6833b1693151daab474ee6588b04ca234fb5c61fc05d",
          "bytes": 24048
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/artifacts/scene-assets/meshes/tapered-leg.ply",
          "sha256": "20940ed0b5b0270834f5e5241b3b83e56d0b954a6cce7c21a1d7028165aa042f",
          "bytes": 15840
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/artifacts/scene-assets/textures/wood-endgrain.png",
          "sha256": "b9ee7325e30cb242f4b53f976018864654c4bab3bd4ba1c7f97794ebd692adfd",
          "bytes": 490262
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/artifacts/scene-assets/textures/wood-grain.png",
          "sha256": "61e5352102b13b60f13d66f0eebb04d9ee4de74e6c94c6f8c5e03d0ece01f4ec",
          "bytes": 167579
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/artifacts/scene-assets/textures/woven-fabric.png",
          "sha256": "e7ec12905d86060fe0faff3114927229e32da602ccfeae531eb40bd25a674d4a",
          "bytes": 334405
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/benchmarks/legacy/baseline.json",
          "sha256": "c9b7542c80afbe961d904e61bfbaa842524fdc7446019953154efddf496d9ba0",
          "bytes": 565
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/benchmarks/legacy/source.sha256",
          "sha256": "e16be33a22219bf6a61a41b10eb407db9601b02e8ec37bbb5dce49574beb20fa",
          "bytes": 6205
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/benchmarks/scenes/chair.json",
          "sha256": "ce33b5f08b535ff21d44640557c93e295fcae9af1679cafb5cf84391f010ff4b",
          "bytes": 28262
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/benchmarks/scenes/provenance.json",
          "sha256": "2e013d878c5607edd0d35361869d75370f17855c0bb4bfe6efae249808a915ae",
          "bytes": 39154
        }
      ],
      "contextFingerprint": "1ca19849dd66437448302e3e843a48611c54ab743beb7a6c740197655509e50c",
      "fingerprint": "b2bd7195a9fcff84b572298328b61e63740b321970eee514d0a8ab8be1bfacda",
      "repeats": 1,
      "warmups": 0
    },
    {
      "preset": "quick",
      "scene": "chair",
      "scenePath": "/home/movj/code/dev/Ray_Tracer_FSharp/benchmarks/scenes/chair.json",
      "material": "authored",
      "engine": "gpu",
      "worker": "/home/movj/code/dev/Ray_Tracer_FSharp/RayTracer.Gpu/bin/Release/net10.0/RayTracer.Gpu.dll",
      "acceleration": "gpu",
      "settings": {
        "width": 32,
        "height": 32,
        "cameraSamples": 1,
        "lightSamples": 1,
        "glossySamples": 1,
        "maxBounces": 2,
        "threads": 1,
        "tileSize": 8,
        "seed": 2026,
        "precision": "float64",
        "sampler": "regular",
        "transfer": "srgb"
      },
      "inputFiles": [
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/artifacts/scene-assets/meshes/chair-curved-rail.ply",
          "sha256": "3abf775c52592e116c5d8f424d7e1a38ce2c3cebab4ebce596b8084b911bb9a3",
          "bytes": 35784
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/artifacts/scene-assets/meshes/chair-curved-slat.ply",
          "sha256": "11ed75310341d1182fb1d2c2ff177665f65d669c7641cd2060867bb5aec90f12",
          "bytes": 21409
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/artifacts/scene-assets/meshes/disc.ply",
          "sha256": "7fe0e61611762138a2c371791419ad12e657458d1be98f397178e8dffdcf8033",
          "bytes": 19872
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/artifacts/scene-assets/meshes/ring.ply",
          "sha256": "a8c5fa93e3853cf9acc908f69d62f77745a1b6006ecce8404c0f31f880e13cce",
          "bytes": 71054
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/artifacts/scene-assets/meshes/rounded-box.ply",
          "sha256": "d3e61dcd3397ee5db3e1dd9885131a966c968ccab4c8b0fb8a368cc5397406b1",
          "bytes": 20502
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/artifacts/scene-assets/meshes/rounded-cylinder.ply",
          "sha256": "197d4d973167b6be6c4cc26fd01fb4f83eb5b846eb56a59d17ef74a358a37793",
          "bytes": 21136
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/artifacts/scene-assets/meshes/seat-piping.ply",
          "sha256": "2b7444292836b0e9ee37cc327e35d5031c2ab7f9459961d985ebddfac75e788f",
          "bytes": 69345
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/artifacts/scene-assets/meshes/small-sphere.ply",
          "sha256": "3f7b4f85cd8b2dea3a1a6833b1693151daab474ee6588b04ca234fb5c61fc05d",
          "bytes": 24048
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/artifacts/scene-assets/meshes/tapered-leg.ply",
          "sha256": "20940ed0b5b0270834f5e5241b3b83e56d0b954a6cce7c21a1d7028165aa042f",
          "bytes": 15840
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/artifacts/scene-assets/textures/wood-endgrain.png",
          "sha256": "b9ee7325e30cb242f4b53f976018864654c4bab3bd4ba1c7f97794ebd692adfd",
          "bytes": 490262
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/artifacts/scene-assets/textures/wood-grain.png",
          "sha256": "61e5352102b13b60f13d66f0eebb04d9ee4de74e6c94c6f8c5e03d0ece01f4ec",
          "bytes": 167579
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/artifacts/scene-assets/textures/woven-fabric.png",
          "sha256": "e7ec12905d86060fe0faff3114927229e32da602ccfeae531eb40bd25a674d4a",
          "bytes": 334405
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/benchmarks/legacy/baseline.json",
          "sha256": "c9b7542c80afbe961d904e61bfbaa842524fdc7446019953154efddf496d9ba0",
          "bytes": 565
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/benchmarks/legacy/source.sha256",
          "sha256": "e16be33a22219bf6a61a41b10eb407db9601b02e8ec37bbb5dce49574beb20fa",
          "bytes": 6205
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/benchmarks/scenes/chair.json",
          "sha256": "ce33b5f08b535ff21d44640557c93e295fcae9af1679cafb5cf84391f010ff4b",
          "bytes": 28262
        },
        {
          "path": "/home/movj/code/dev/Ray_Tracer_FSharp/benchmarks/scenes/provenance.json",
          "sha256": "2e013d878c5607edd0d35361869d75370f17855c0bb4bfe6efae249808a915ae",
          "bytes": 39154
        }
      ],
      "contextFingerprint": "1ca19849dd66437448302e3e843a48611c54ab743beb7a6c740197655509e50c",
      "fingerprint": "7d8b8ab08a38add44340ea87a7b8af04e78a516a753b57d3631b40cbb0488dd5",
      "repeats": 1,
      "warmups": 0
    }
  ],
  "timeoutSeconds": 300,
  "requestedMeasuredTrials": 2,
  "status": "complete"
}