{
  "version": 1,
  "source": {
    "name": "fethi-character-sheet.png",
    "author": "Fethi Omur",
    "license": "© 2026 Fethi Omur — all rights reserved. Character images generated with ChatGPT (GPT Image 2), output owned by Fethi Omur under OpenAI's Europe Terms of Use (Content → Ownership of content); base mesh generated on a paid Tripo plan, output owned under Tripo Terms §5.2.2. AI-generated, not hand-drawn.",
    "url": "https://fethiverse.dev/",
    "sha256": "f4a1f4eb4a8f5c90d896a6a29fa2734dbfddfcfef829534a6e47664f7015f1b2"
  },
  "units": "m",
  "up": "+Y",
  "forward": "+Z",
  "feetAtOrigin": true,
  "boundsMin": [
    -0.9298,
    0,
    -0.2118
  ],
  "boundsMax": [
    0.9298,
    1.7,
    1.5753
  ],
  "sourceHeightUnits": 1.7,
  "targetHeightMeters": 1.7,
  "worldScale": 1,
  "rootNode": "FethiRig",
  "skeletonRoot": "FethiRig",
  "boneAxis": {
    "along": "+Y",
    "note": "Joints use local +Y; armature local matrix: 1.3283, 0, 0, 0, 0, 1.3283, 0, 0, 0, 0, 1.3283, 0, 0, 0, 0.2497, 1."
  },
  "nameNormalization": "scripts/optimize-avatar.mjs normalizes unique node and mesh names to ASCII letters, digits and underscores; these are the exact loaded Object3D names.",
  "morphTargets": {
    "node": "Face_Group",
    "path": "FethiRig/Face_Group",
    "primitives": 11,
    "names": [
      "blink",
      "browRaise",
      "mouthOpen",
      "mouthSmile"
    ],
    "applyTo": "descendants"
  },
  "bones": {
    "hips": {
      "kind": "node",
      "node": "Hips",
      "path": "FethiRig/Hips",
      "restWorld": [
        -0.0033,
        0.7881,
        0.2391
      ]
    },
    "spine": {
      "kind": "node",
      "node": "Spine",
      "path": "FethiRig/Hips/Spine",
      "restWorld": [
        -0.0096,
        0.896,
        0.1573
      ]
    },
    "chest": {
      "kind": "node",
      "node": "Chest",
      "path": "FethiRig/Hips/Spine/Spine_Mid/Chest",
      "restWorld": [
        -0.0084,
        1.1228,
        -0.011
      ]
    },
    "neck": {
      "kind": "node",
      "node": "Neck",
      "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Neck",
      "restWorld": [
        -0.005,
        1.3025,
        -0.0313
      ]
    },
    "head": {
      "kind": "node",
      "node": "Head",
      "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Neck/Head",
      "restWorld": [
        -0.0142,
        1.4313,
        -0.006
      ]
    },
    "shoulder.L": {
      "kind": "node",
      "node": "Shoulder_L",
      "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_L",
      "restWorld": [
        0.0672,
        1.274,
        -0.0348
      ]
    },
    "shoulder.R": {
      "kind": "node",
      "node": "Shoulder_R",
      "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_R",
      "restWorld": [
        -0.0862,
        1.276,
        -0.0428
      ]
    },
    "upperArm.L": {
      "kind": "node",
      "node": "UpperArm_L",
      "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_L/UpperArm_L",
      "restWorld": [
        0.1931,
        1.2324,
        -0.0039
      ]
    },
    "upperArm.R": {
      "kind": "node",
      "node": "UpperArm_R",
      "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_R/UpperArm_R",
      "restWorld": [
        -0.2107,
        1.2296,
        -0.0135
      ]
    },
    "forearm.L": {
      "kind": "node",
      "node": "Forearm_L",
      "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_L/UpperArm_L/Forearm_L",
      "restWorld": [
        0.3818,
        1.0475,
        0.2896
      ]
    },
    "forearm.R": {
      "kind": "node",
      "node": "Forearm_R",
      "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_R/UpperArm_R/Forearm_R",
      "restWorld": [
        -0.4136,
        1.1228,
        0.3014
      ]
    },
    "hand.L": {
      "kind": "node",
      "node": "Hand_L",
      "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_L/UpperArm_L/Forearm_L/Hand_L",
      "restWorld": [
        0.2901,
        1.0844,
        0.604
      ]
    },
    "hand.R": {
      "kind": "node",
      "node": "Hand_R",
      "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_R/UpperArm_R/Forearm_R/Hand_R",
      "restWorld": [
        -0.3342,
        1.0864,
        0.6212
      ]
    },
    "thumb.L": [
      {
        "kind": "node",
        "node": "Thumb_1_L",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_L/UpperArm_L/Forearm_L/Hand_L/Thumb_1_L",
        "restWorld": [
          0.2455,
          1.0721,
          0.652
        ]
      },
      {
        "kind": "node",
        "node": "Thumb_2_L",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_L/UpperArm_L/Forearm_L/Hand_L/Thumb_1_L/Thumb_2_L",
        "restWorld": [
          0.2052,
          1.0668,
          0.6831
        ]
      },
      {
        "kind": "node",
        "node": "Thumb_3_L",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_L/UpperArm_L/Forearm_L/Hand_L/Thumb_1_L/Thumb_2_L/Thumb_3_L",
        "restWorld": [
          0.1781,
          1.0715,
          0.7161
        ]
      }
    ],
    "thumb.R": [
      {
        "kind": "node",
        "node": "Thumb_1_R",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_R/UpperArm_R/Forearm_R/Hand_R/Thumb_1_R",
        "restWorld": [
          -0.2993,
          1.0668,
          0.6646
        ]
      },
      {
        "kind": "node",
        "node": "Thumb_2_R",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_R/UpperArm_R/Forearm_R/Hand_R/Thumb_1_R/Thumb_2_R",
        "restWorld": [
          -0.2642,
          1.0536,
          0.6944
        ]
      },
      {
        "kind": "node",
        "node": "Thumb_3_R",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_R/UpperArm_R/Forearm_R/Hand_R/Thumb_1_R/Thumb_2_R/Thumb_3_R",
        "restWorld": [
          -0.2376,
          1.0533,
          0.7239
        ]
      }
    ],
    "index.L": [
      {
        "kind": "node",
        "node": "Index_1_L",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_L/UpperArm_L/Forearm_L/Hand_L/Index_1_L",
        "restWorld": [
          0.2183,
          1.1037,
          0.7303
        ]
      },
      {
        "kind": "node",
        "node": "Index_2_L",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_L/UpperArm_L/Forearm_L/Hand_L/Index_1_L/Index_2_L",
        "restWorld": [
          0.2,
          1.1022,
          0.7701
        ]
      },
      {
        "kind": "node",
        "node": "Index_3_L",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_L/UpperArm_L/Forearm_L/Hand_L/Index_1_L/Index_2_L/Index_3_L",
        "restWorld": [
          0.1908,
          1.0841,
          0.7894
        ]
      }
    ],
    "index.R": [
      {
        "kind": "node",
        "node": "Index_1_R",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_R/UpperArm_R/Forearm_R/Hand_R/Index_1_R",
        "restWorld": [
          -0.2664,
          1.0939,
          0.74
        ]
      },
      {
        "kind": "node",
        "node": "Index_2_R",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_R/UpperArm_R/Forearm_R/Hand_R/Index_1_R/Index_2_R",
        "restWorld": [
          -0.2503,
          1.0925,
          0.7818
        ]
      },
      {
        "kind": "node",
        "node": "Index_3_R",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_R/UpperArm_R/Forearm_R/Hand_R/Index_1_R/Index_2_R/Index_3_R",
        "restWorld": [
          -0.2461,
          1.0729,
          0.803
        ]
      }
    ],
    "middle.L": [
      {
        "kind": "node",
        "node": "Middle_1_L",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_L/UpperArm_L/Forearm_L/Hand_L/Middle_1_L",
        "restWorld": [
          0.2494,
          1.1114,
          0.7456
        ]
      },
      {
        "kind": "node",
        "node": "Middle_2_L",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_L/UpperArm_L/Forearm_L/Hand_L/Middle_1_L/Middle_2_L",
        "restWorld": [
          0.2362,
          1.1032,
          0.7918
        ]
      },
      {
        "kind": "node",
        "node": "Middle_3_L",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_L/UpperArm_L/Forearm_L/Hand_L/Middle_1_L/Middle_2_L/Middle_3_L",
        "restWorld": [
          0.2286,
          1.0822,
          0.8082
        ]
      }
    ],
    "middle.R": [
      {
        "kind": "node",
        "node": "Middle_1_R",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_R/UpperArm_R/Forearm_R/Hand_R/Middle_1_R",
        "restWorld": [
          -0.2946,
          1.1069,
          0.7499
        ]
      },
      {
        "kind": "node",
        "node": "Middle_2_R",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_R/UpperArm_R/Forearm_R/Hand_R/Middle_1_R/Middle_2_R",
        "restWorld": [
          -0.2842,
          1.1013,
          0.8001
        ]
      },
      {
        "kind": "node",
        "node": "Middle_3_R",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_R/UpperArm_R/Forearm_R/Hand_R/Middle_1_R/Middle_2_R/Middle_3_R",
        "restWorld": [
          -0.2826,
          1.0811,
          0.8202
        ]
      }
    ],
    "ring.L": [
      {
        "kind": "node",
        "node": "Ring_1_L",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_L/UpperArm_L/Forearm_L/Hand_L/Ring_1_L",
        "restWorld": [
          0.278,
          1.1022,
          0.745
        ]
      },
      {
        "kind": "node",
        "node": "Ring_2_L",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_L/UpperArm_L/Forearm_L/Hand_L/Ring_1_L/Ring_2_L",
        "restWorld": [
          0.2719,
          1.0964,
          0.7895
        ]
      },
      {
        "kind": "node",
        "node": "Ring_3_L",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_L/UpperArm_L/Forearm_L/Hand_L/Ring_1_L/Ring_2_L/Ring_3_L",
        "restWorld": [
          0.2657,
          1.0747,
          0.8052
        ]
      }
    ],
    "ring.R": [
      {
        "kind": "node",
        "node": "Ring_1_R",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_R/UpperArm_R/Forearm_R/Hand_R/Ring_1_R",
        "restWorld": [
          -0.3244,
          1.1075,
          0.7523
        ]
      },
      {
        "kind": "node",
        "node": "Ring_2_R",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_R/UpperArm_R/Forearm_R/Hand_R/Ring_1_R/Ring_2_R",
        "restWorld": [
          -0.3197,
          1.1048,
          0.7981
        ]
      },
      {
        "kind": "node",
        "node": "Ring_3_R",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_R/UpperArm_R/Forearm_R/Hand_R/Ring_1_R/Ring_2_R/Ring_3_R",
        "restWorld": [
          -0.3203,
          1.0835,
          0.816
        ]
      }
    ],
    "little.L": [
      {
        "kind": "node",
        "node": "Little_1_L",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_L/UpperArm_L/Forearm_L/Hand_L/Little_1_L",
        "restWorld": [
          0.3033,
          1.0887,
          0.7397
        ]
      },
      {
        "kind": "node",
        "node": "Little_2_L",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_L/UpperArm_L/Forearm_L/Hand_L/Little_1_L/Little_2_L",
        "restWorld": [
          0.3027,
          1.0818,
          0.7758
        ]
      },
      {
        "kind": "node",
        "node": "Little_3_L",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_L/UpperArm_L/Forearm_L/Hand_L/Little_1_L/Little_2_L/Little_3_L",
        "restWorld": [
          0.2997,
          1.0641,
          0.7914
        ]
      }
    ],
    "little.R": [
      {
        "kind": "node",
        "node": "Little_1_R",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_R/UpperArm_R/Forearm_R/Hand_R/Little_1_R",
        "restWorld": [
          -0.3511,
          1.1008,
          0.7472
        ]
      },
      {
        "kind": "node",
        "node": "Little_2_R",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_R/UpperArm_R/Forearm_R/Hand_R/Little_1_R/Little_2_R",
        "restWorld": [
          -0.3535,
          1.0983,
          0.7852
        ]
      },
      {
        "kind": "node",
        "node": "Little_3_R",
        "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_R/UpperArm_R/Forearm_R/Hand_R/Little_1_R/Little_2_R/Little_3_R",
        "restWorld": [
          -0.355,
          1.0822,
          0.8004
        ]
      }
    ],
    "thigh.L": {
      "kind": "node",
      "node": "Thigh_L",
      "path": "FethiRig/Hips/Thigh_L",
      "restWorld": [
        0.1234,
        0.7868,
        0.2426
      ]
    },
    "thigh.R": {
      "kind": "node",
      "node": "Thigh_R",
      "path": "FethiRig/Hips/Thigh_R",
      "restWorld": [
        -0.1383,
        0.7747,
        0.2467
      ]
    },
    "shin.L": {
      "kind": "node",
      "node": "Shin_L",
      "path": "FethiRig/Hips/Thigh_L/Shin_L",
      "restWorld": [
        0.3447,
        0.775,
        0.761
      ]
    },
    "shin.R": {
      "kind": "node",
      "node": "Shin_R",
      "path": "FethiRig/Hips/Thigh_R/Shin_R",
      "restWorld": [
        -0.3584,
        0.7733,
        0.7631
      ]
    },
    "foot.L": {
      "kind": "node",
      "node": "Foot_L",
      "path": "FethiRig/Hips/Thigh_L/Shin_L/Foot_L",
      "restWorld": [
        0.2557,
        0.2192,
        0.7351
      ]
    },
    "foot.R": {
      "kind": "node",
      "node": "Foot_R",
      "path": "FethiRig/Hips/Thigh_R/Shin_R/Foot_R",
      "restWorld": [
        -0.2614,
        0.22,
        0.7201
      ]
    },
    "toes.L": {
      "kind": "node",
      "node": "Toes_L",
      "path": "FethiRig/Hips/Thigh_L/Shin_L/Foot_L/Toes_L",
      "restWorld": [
        0.2632,
        0.0741,
        0.8904
      ]
    },
    "toes.R": {
      "kind": "node",
      "node": "Toes_R",
      "path": "FethiRig/Hips/Thigh_R/Shin_R/Foot_R/Toes_R",
      "restWorld": [
        -0.2981,
        0.0757,
        0.8706
      ]
    }
  },
  "clips": {
    "intro": {
      "driver": "clip",
      "clip": "intro",
      "loop": "once",
      "clamp": true,
      "timeScale": 1,
      "crossfadeMs": 0
    },
    "idleA": {
      "driver": "clip",
      "clip": "idleA",
      "loop": "repeat",
      "clamp": false,
      "timeScale": 1,
      "crossfadeMs": 350
    },
    "idleB": {
      "driver": "clip",
      "clip": "idleB",
      "loop": "repeat",
      "clamp": false,
      "timeScale": 1,
      "crossfadeMs": 350
    },
    "idleC": {
      "driver": "clip",
      "clip": "idleC",
      "loop": "repeat",
      "clamp": false,
      "timeScale": 1,
      "crossfadeMs": 350
    },
    "idleD": {
      "driver": "clip",
      "clip": "idleD",
      "loop": "repeat",
      "clamp": false,
      "timeScale": 1,
      "crossfadeMs": 350
    },
    "typing": {
      "driver": "fingerOscillator",
      "bones": [
        "Thumb_1_L",
        "Thumb_1_R",
        "Index_1_L",
        "Index_1_R",
        "Middle_1_L",
        "Middle_1_R",
        "Ring_1_L",
        "Ring_1_R",
        "Little_1_L",
        "Little_1_R"
      ],
      "hz": 5,
      "amplitudeRad": 0.35
    },
    "blink": {
      "driver": "morphPulse",
      "mesh": "Face_Group",
      "morph": "blink",
      "periodS": 4,
      "closureMs": 160,
      "amplitude": 1
    },
    "browRaise": {
      "driver": "morph",
      "mesh": "Face_Group",
      "morph": "browRaise",
      "amplitude": 0.8,
      "riseMs": 300,
      "fadeMs": 600
    }
  },
  "expressions": {
    "eyeBlinkL": {
      "driver": "morph",
      "mesh": "Face_Group",
      "morph": "blink",
      "amplitude": 1
    },
    "eyeBlinkR": {
      "driver": "morph",
      "mesh": "Face_Group",
      "morph": "blink",
      "amplitude": 1
    },
    "browRaiseL": {
      "driver": "morph",
      "mesh": "Face_Group",
      "morph": "browRaise",
      "amplitude": 0.8
    },
    "browRaiseR": {
      "driver": "morph",
      "mesh": "Face_Group",
      "morph": "browRaise",
      "amplitude": 0.8
    }
  },
  "attachments": {
    "faceCenter": {
      "node": "Head",
      "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Neck/Head",
      "offset": [
        0.0535,
        0.0935,
        -0.0172
      ],
      "ellipsoid": [
        0.175,
        0.1867,
        0.1322
      ]
    },
    "gazeTarget": {
      "node": "Head",
      "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Neck/Head",
      "offset": [
        1.0976,
        0.4037,
        -0.3155
      ]
    },
    "handTargetL": {
      "node": "Hand_L",
      "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_L/UpperArm_L/Forearm_L/Hand_L",
      "offset": [
        0.001,
        0.0843,
        -0.0006
      ]
    },
    "handTargetR": {
      "node": "Hand_R",
      "path": "FethiRig/Hips/Spine/Spine_Mid/Chest/Shoulder_R/UpperArm_R/Forearm_R/Hand_R",
      "offset": [
        -0.0007,
        0.0781,
        -0.0006
      ]
    },
    "keyboard": {
      "node": "Keyboard_Mesh",
      "path": "Keyboard_Mesh",
      "offset": [
        -0.0215,
        0.7683,
        0.443
      ]
    },
    "monitor": {
      "node": "Monitor_Mesh",
      "path": "Monitor_Mesh",
      "offset": [
        0,
        -0.06,
        0.06
      ]
    },
    "screen": {
      "node": "Screen_Mesh",
      "path": "Monitor_Mesh/Screen_Mesh",
      "offset": [
        0,
        0,
        -0.0135
      ]
    }
  },
  "authoredDurations": {
    "intro": {
      "clip": "intro",
      "authoredS": 3.5,
      "timeScale": 1,
      "effectiveS": 3.5,
      "targetS": 3.5
    },
    "idleA": {
      "clip": "idleA",
      "authoredS": 4,
      "timeScale": 1,
      "effectiveS": 4,
      "targetS": 4
    },
    "idleB": {
      "clip": "idleB",
      "authoredS": 4,
      "timeScale": 1,
      "effectiveS": 4,
      "targetS": 4
    },
    "idleC": {
      "clip": "idleC",
      "authoredS": 4,
      "timeScale": 1,
      "effectiveS": 4,
      "targetS": 4
    },
    "idleD": {
      "clip": "idleD",
      "authoredS": 4,
      "timeScale": 1,
      "effectiveS": 4,
      "targetS": 4
    },
    "typing": {
      "clip": null,
      "authoredS": null,
      "timeScale": 1,
      "effectiveS": 0.2,
      "targetS": 2
    },
    "blink": {
      "clip": null,
      "authoredS": null,
      "timeScale": 1,
      "effectiveS": 4,
      "targetS": 4
    },
    "browRaise": {
      "clip": null,
      "authoredS": null,
      "timeScale": 1,
      "effectiveS": 0.9,
      "targetS": 0.9
    }
  },
  "unusedClips": [
    "typing-authored"
  ],
  "notes": [
    "Generated by scripts/build-avatar-manifest.mjs from the GLB that scripts/optimize-avatar.mjs wrote (AV-2b, D-245).",
    "Load pose = idleA at t=0 (every joint's default TRS is idleA's first key), so the pose HeroController frames before any mixer update (D-103) is the seated pose on screen; the skin still binds to the rig's standing rest pose through its inverse bind matrices.",
    "Composition baked at export: uniform scale 1.328259 about the origin so the seated scene is 1.7 units tall (worldScale 1), then a +Z shift of 0.2497 so the eye midpoint sits at z = 0.1.",
    "Typing is procedural (D-251): the finger oscillator drives the ten proximal digit joints; no idle clip keys them. typing-authored stays an unused clip for a later role switch.",
    "blink and browRaise are procedural and held at 0 in every clip; mouthSmile and mouthOpen breathe on idleA's morph track.",
    "Image decoding is skipped for geometry inspection."
  ]
}
