{
  "schema_version": 1,
  "run_id": "run-20261015-rainbow-budgie-v13",
  "title": "首と胸をつなぐ、柔らかなアニメ調",
  "species": "レインボー・セキセイインコ（試作）",
  "model_id": "rainbow-budgie-blended-neck-v13",
  "action_id": "upright-preen-body-follow",
  "animation_id": "Animation",
  "category": "羽づくろい",
  "created_at": "2026-10-15T09:58:34.378745+00:00",
  "created_at_precision": "exact",
  "parent_run_id": "run-20261015-rainbow-budgie-v12",
  "source_commit": "b748ff6d3236a952e9fba41b9df3cf1e4c968e7c",
  "source_hashes": {
    "output/revisions/rainbow-budgie-v6/model.blend": "1dd1952e807f5a519b881266dd9face740e452eef974117e69368247b9f2ca46",
    "scripts/research/adapters/rainbow_budgie_v13.py": "90702d4c4fa45dabdf91b58d5c91ce5509394a3e823ce4fc883b4ca0c0e7d657",
    "scripts/research/verify_character_revision.py": "613f62d0d1769ef0f86527c50f36610f56ca9c8c56177136c5ec3d6e2af3a9e1",
    "scripts/research/package_character_revision.py": "d5a954319dd64247a1e78d021928183c3f4eda18345f2b6cabf542d544b74ea9",
    "config/research/revisions/rainbow-budgie-v13.json": "26577e0f4d60484b316bcf2e05e45594c2d94028b3cc7cda899799ab3e75842e",
    "scripts/research/stylized_neck_plumage.py": "33df86ce62d8c7ca41083b2c539dcd0bee4f78f905bbd729171953fbe01eb913",
    "config/research/plumage/rainbow-budgerigar-stylized-neck.json": "b44e7d7fd96e5d3d0fc14c0aba72df6067980894f157c5b92984d2adc088c461",
    "scripts/research/render_character_stills.py": "f73fdb684198cd5ca6269e76f35c3e258646a51dd9f5314577eea754003fd4ee",
    "scripts/research/verify_stylized_neck.py": "a6af74df4b40f0a6872eff8d402eadf57c6cab393a53b1b86b0b0c8bd74ad18d",
    "scripts/research/externalize_gltf.py": "a82081d46c3e1d7c73363f42e7c3031b8e786c7ab25b81439d9c2ed0ceb07b4a",
    "scripts/research/templates/character-viewer-optin.js": "e97f4ba881e3d1222a8f31c5806b650dd682b0eeb1960552898f9bd9eb370cc5",
    "scripts/research/package_stylized_neck.py": "a2b3eba626633161ef3ebd25ff7ccca273f3a58dc124b6e1662107799d6ab99c",
    "scripts/research/blended_neck_plumage.py": "73b4bf1d7000584d5d3de2b495229d80070a2df20e2d583777d72c8058c522d7",
    "config/research/plumage/rainbow-budgerigar-blended-neck.json": "d36e2c8dc644b0767051250b14e9fb4e8aa6c7062e50b69d7afa4b94248321eb",
    "scripts/research/verify_neck_boundary_regression.py": "206ce7b036e1a59c0deecbfe2a36b5b01ce366c2a5ee05f4bed070d9beb9315f"
  },
  "blender_version": "4.3.2",
  "parameter_diff": {
    "baseline": "v12 approved appearance retained; same 1500 feather cards and thin independent base patches",
    "boundary_material": "Match smooth torso matte, low-specular, soft sheen and subtle fill response to neck bases",
    "boundary_geometry": "Gradually bury bottom base patches 0.25 mm more and taper overlap from 1.14 to 1.00 across z46–57 mm",
    "core_and_motion": "Same slender core, facial accents, feet and rig/action; no full-body tufts",
    "scope": "Localized finish, not realistic feather reconstruction or application implementation"
  },
  "quality": "人間評価待ち",
  "adoption": "公開試作",
  "evaluation": {
    "summary": "v12の柔らかなアニメ調を維持し、首と胸の材質差と下端の境界を局所的に緩和。",
    "naturalness": "人間評価待ち",
    "unresolved": [
      "首の境界を完全に消したわけではありません",
      "薄片内の圧縮は残るため、厳密な非伸縮の羽ソルバーではありません",
      "実機モバイルの描画速度・多頭表示は未計測",
      "羽同士の衝突処理は未実装"
    ],
    "metrics": {
      "blender": "4.3.2",
      "source_asset_sha256": "1dd1952e807f5a519b881266dd9face740e452eef974117e69368247b9f2ca46",
      "max_foot_displacement_mm": 0,
      "chest_motion_range_mm": 0.9722271892323749,
      "rest_head_height_mm": 85.94977110624313,
      "rest_head_foreaft_mm": -29.66454066336155,
      "body_rest_pitch_adjustment_deg": -55,
      "body_follow_peak_deg": 3.0,
      "max_glb_surface_error_mm": 0.005900936685065972,
      "roundtrip": [
        {
          "frame": 0,
          "max_surface_error_m": 3.1564425171382027e-06
        },
        {
          "frame": 10,
          "max_surface_error_m": 5.518903890333604e-06
        },
        {
          "frame": 20,
          "max_surface_error_m": 5.899079496884951e-06
        },
        {
          "frame": 28,
          "max_surface_error_m": 5.900936685065972e-06
        },
        {
          "frame": 30,
          "max_surface_error_m": 5.890751253900817e-06
        },
        {
          "frame": 35,
          "max_surface_error_m": 5.726732524635736e-06
        },
        {
          "frame": 40,
          "max_surface_error_m": 5.617522219836246e-06
        },
        {
          "frame": 50,
          "max_surface_error_m": 4.895334768661996e-06
        },
        {
          "frame": 56,
          "max_surface_error_m": 3.1947849947755458e-06
        },
        {
          "frame": 60,
          "max_surface_error_m": 3.1631898309569806e-06
        },
        {
          "frame": 70,
          "max_surface_error_m": 3.163044766552048e-06
        },
        {
          "frame": 80,
          "max_surface_error_m": 3.490282779239351e-06
        },
        {
          "frame": 90,
          "max_surface_error_m": 3.4741699437290663e-06
        },
        {
          "frame": 100,
          "max_surface_error_m": 3.2546681723033544e-06
        },
        {
          "frame": 110,
          "max_surface_error_m": 3.1631898309569806e-06
        },
        {
          "frame": 120,
          "max_surface_error_m": 3.1609763482265407e-06
        },
        {
          "frame": 130,
          "max_surface_error_m": 3.1564425171382027e-06
        },
        {
          "frame": 140,
          "max_surface_error_m": 3.1564425171382027e-06
        }
      ],
      "style_assessment": "Toward simplified matte animation style; not human-approved",
      "references": [
        "https://academy.allaboutbirds.org/feathers-article/"
      ],
      "reference_note": "Contour feathers: concealed fluffy bases and shallow overlapping visible tips. Reference photos inspected, not copied or republished.",
      "limitations": [
        "Feet are tracked by weighted vertices, not a full dynamic contact solver",
        "Wings remain folded shells bound to torso, not articulated flight wings",
        "Naturalness, head shape and cartoon appeal require human assessment"
      ],
      "trials": 1,
      "max_eye_surface_distance_mm": 0.05501996201928705,
      "min_toe_pad_perch_gap_mm": -0.17940049683876252,
      "motion_fcurves_identical_to_parent": true,
      "motion_unchanged_outside_window": null,
      "motion_fcurves_sha256": "20e0de90d14848d0dab294e2e32e00154f235e66e17cee8824cf226504852def",
      "toe_count_per_foot": 4,
      "toe_arrangement": "2 forward + 2 backward",
      "limits": "Perch contact tolerance permits 0.3 mm shallow intersection; this is a visual/support check, not a physical solver.",
      "experiment_status": "prototype_human_review_pending",
      "root_attachment_passed": true,
      "root_attachment_guard_mm": 0.2,
      "feather_roots_fixed_in_morphs": true,
      "max_feather_root_distance_mm": 0,
      "max_tip_morph_displacement_mm": 0.11032158673368483,
      "core_width_at_z68mm": 13.305421452969313,
      "masked_feather_materials": 1,
      "merged_bone_and_morph_animation": true,
      "visual_assessment": "全身の毛束を取りやめ、滑らかなアニメ調へ。首だけに薄く重なる羽を残した試作。",
      "root_attachment_frames_checked": 141,
      "neck_piece_length_measurements": {
        "Flexible neck feathers": {
          "min_edge_length_ratio": 0.5379771822099689,
          "max_edge_length_ratio": 1.1071049279802783,
          "sampled_edges": 4000,
          "frames": 141
        },
        "Soft feather undercoat": {
          "min_edge_length_ratio": 0.5491175353016142,
          "max_edge_length_ratio": 1.0408569118011064,
          "sampled_edges": 4081,
          "frames": 141
        }
      },
      "neck_piece_length_note": "Shared weights within each piece remove cross-piece stretching; linear-blend skinning still causes the measured residual strain. Not a physically inextensible feather solver.",
      "baseline_same_edge_sample": {
        "Flexible neck feathers": {
          "min_edge_length_ratio": 0.5379771822099689,
          "max_edge_length_ratio": 1.1071049279802783,
          "sampled_edges": 4000,
          "frames": 141
        },
        "Soft feather undercoat": {
          "min_edge_length_ratio": 0.5491175353016142,
          "max_edge_length_ratio": 1.0408569118011064,
          "sampled_edges": 4081,
          "frames": 141
        }
      },
      "stable_edge_sampling": "Sorted vertex-pair indices, then uniform stride; old unsorted samples are not directly comparable",
      "boundary_regression": {
        "baseline_revision": "rainbow-budgie-v12",
        "feather_core_positions_faces_weights_morphs_identical": true,
        "edge_sampling_note": "Mesh edge storage order is not stable; strain checks sort endpoint index pairs before sampling."
      },
      "asset_complexity": {
        "v12": {
          "glb_bytes": 16180976,
          "primitives": 38,
          "vertices": 175127,
          "triangles": 150397,
          "materials": 15
        },
        "v13": {
          "glb_bytes": 16148796,
          "primitives": 38,
          "vertices": 175127,
          "triangles": 150397,
          "materials": 14
        },
        "note": "Asset complexity unchanged; these are not device frame-rate measurements. Current mesh remains substantial for future multi-bird mobile use."
      }
    }
  },
  "license": {
    "id": "shrike",
    "page_url": "https://opengameart.org/content/bird-yellow-billed-shrike",
    "author": "pistachio",
    "acquired_date_utc": "2026-10-13",
    "license": "CC0 1.0",
    "license_verified": true,
    "license_url": "https://creativecommons.org/publicdomain/zero/1.0/",
    "license_evidence": "evidence/bird-yellow-billed-shrike.html",
    "download_url": "https://opengameart.org/sites/default/files/bird_yellow_billed_shrike.zip",
    "source_path": "assets/birds/shrike/bird_yellow_billed_shrike.zip",
    "sha256": "a41a4f10ce7795d508b8eded4eb45e80ddf85bc4dba1f2bea4708e7705faac64",
    "source_bytes": 11246978,
    "license_evidence_sha256": "8777da2a4d2eeef3aad0e64b91e61dcccecd945c1625df471f0e2c4699c3a754",
    "upstream_sources": []
  },
  "artifacts": {
    "thumbnail": {
      "url": "/revisions/rainbow-budgie-v13/three-quarter.jpg",
      "sha256": "aadcb7a97197463ba18e3298395e5d6bbe4b1ae559c140ed142a4f1e59fea6ed"
    },
    "videos": [
      {
        "url": "/revisions/rainbow-budgie-v13/front.mp4",
        "sha256": "ba108da1d51b1f21aa756dd5fd85adb7fc19cd6d724586762a1a3fc29d51d9a1",
        "label": "正面",
        "view_id": "front",
        "kind": "single_final_view",
        "width": 480,
        "height": 480,
        "fps": 30,
        "duration_seconds": 4.666666666666667,
        "poster": {
          "url": "/revisions/rainbow-budgie-v13/front.jpg",
          "sha256": "26df5988453d9115ecb51a3efe08de7f60b0e3c955eeed5abc134365962a8c76"
        }
      },
      {
        "url": "/revisions/rainbow-budgie-v13/side.mp4",
        "sha256": "fb59747c28004d74c872beb718da14b91badb48aef6418b2b6063e8375315e03",
        "label": "横から",
        "view_id": "side",
        "kind": "single_final_view",
        "width": 480,
        "height": 480,
        "fps": 30,
        "duration_seconds": 4.666666666666667,
        "poster": {
          "url": "/revisions/rainbow-budgie-v13/side.jpg",
          "sha256": "91ae413aba30758881e8dfe3b0bff62b7c61cc69602b10ad0f3615e74b8aabb8"
        }
      },
      {
        "url": "/revisions/rainbow-budgie-v13/three-quarter.mp4",
        "sha256": "863f6c02e6179bf2ba580e97e791eb9fc4c7c8493306cfc69cb10b69927e9fdf",
        "label": "斜めから",
        "view_id": "three-quarter",
        "kind": "single_final_view",
        "width": 480,
        "height": 480,
        "fps": 30,
        "duration_seconds": 4.666666666666667,
        "poster": {
          "url": "/revisions/rainbow-budgie-v13/three-quarter.jpg",
          "sha256": "aadcb7a97197463ba18e3298395e5d6bbe4b1ae559c140ed142a4f1e59fea6ed"
        }
      },
      {
        "url": "/revisions/rainbow-budgie-v13/neck-close.mp4",
        "sha256": "a799ee84e8834d60c255a347b7f4c49f42c1b6ee1b290684a6cedbb2fd2e5d27",
        "label": "首のモフっと感を近くで",
        "view_id": "neck-close",
        "kind": "single_final_view",
        "width": 480,
        "height": 480,
        "fps": 30,
        "duration_seconds": 4.666666666666667,
        "poster": {
          "url": "/revisions/rainbow-budgie-v13/neck-close.jpg",
          "sha256": "b070652f0aa9bbb185231fc75f45689fde0945ae993641266448c414359fe424"
        }
      }
    ],
    "comparison": {
      "url": "/revisions/rainbow-budgie-v13/poses.jpg",
      "sha256": "05e449945575677673d5eaeee478a710596e12bca5c685f84524cf0d9b2761b6"
    },
    "measurements": {
      "url": "/revisions/rainbow-budgie-v13/measurements.json",
      "sha256": "edece7377ad7d647671d8db1ca5717d3c41ddf20bf552da4644babef233f67e9"
    },
    "gltf": {
      "url": "/revisions/rainbow-budgie-v13/model.gltf",
      "sha256": "400621845ecdbc274668dba74258983020497e29d2f4ac3a0ce41daac14bde1c",
      "format": "gltf",
      "buffers": [
        {
          "url": "/revisions/rainbow-budgie-v13/model-buffer-0.bin",
          "sha256": "9fe994f8fb79e31d0ac8f07c95a86dbaebd226184762f27ea214eef571695c58"
        },
        {
          "url": "/revisions/rainbow-budgie-v13/model-buffer-1.bin",
          "sha256": "53d484ad4082b9fea90bf568171c65044d6e6411399a44322d9f2a7dd914c785"
        }
      ]
    }
  },
  "references": [
    {
      "url": "https://academy.allaboutbirds.org/feathers-article/",
      "use": "Feather structure and layering reference; no source images reused"
    },
    {
      "url": "https://www.manvellbudgies.com/feather-complexities.html",
      "use": "Budgie feather length/orientation observations; exhibition proportions not copied wholesale"
    },
    {
      "url": "https://nij.nikon.com/nicostop/entry/technic/lovebird/2021/09/07/1",
      "use": "Macro photograph reference for fine barb direction and shallow tips; no pixels copied"
    }
  ],
  "source_glb_sha256": "315a14685362863cd8be29394c56ca013c437e2568f1f693c3a97826965d8e03"
}
