{
  "version": 1,
  "language": "en",
  "title": "TopoRetarget: set poses, optimize and track",
  "description": "Retargeting sets initial robot poses from bone directions in tracked hand-object motion, and a fixed shared mesh constrains local-relation optimization. A different policy then tracks the robot reference. The mesh is an example, not measured contacts or optimizer iterations.",
  "caption": "The author made this diagram from the source figure. Retargeting uses bone directions to set initial robot poses. Fixed shared-mesh relations constrain reference optimization. Policy tracking is a different subsequent stage. The example mesh keeps the same geometry. The diagram does not show optimization iterations, measured contacts or robot-result footage.",
  "alt": "Retargeting uses bone directions for initial robot poses, optimizes relations in a hand–object mesh and supplies references for a different tracking policy.",
  "sources": [
    "https://arxiv.org/abs/2606.16272",
    "https://toporetarget2026.github.io/TopoRetarget/"
  ],
  "limitations": [
    "The playback is an example. Playback time is not measured runtime.",
    "Graph vertices and edges are example geometry, not a sampled experimental mesh.",
    "The stage playback does not show the number of optimizer iterations or tracking success."
  ],
  "targets": {
    "motion": {
      "id": "mechanism-motion",
      "kind": "node",
      "label": "Tracked interaction"
    },
    "warmup": {
      "id": "mechanism-warmup",
      "kind": "node",
      "label": "Align bone directions"
    },
    "initial": {
      "id": "mechanism-initial",
      "kind": "node",
      "label": "Initial robot pose"
    },
    "relations": {
      "id": "mechanism-relations",
      "kind": "node",
      "label": "Match local relations"
    },
    "reference": {
      "id": "mechanism-reference",
      "kind": "node",
      "label": "Robot reference"
    },
    "tracking": {
      "id": "mechanism-tracking",
      "kind": "node",
      "label": "Tracking policy"
    },
    "warmup-input": {
      "id": "mechanism-warmup-input",
      "kind": "edge",
      "label": "Supply motion"
    },
    "initialize": {
      "id": "mechanism-initialize",
      "kind": "edge",
      "label": "Set the pose"
    },
    "pose-to-relations": {
      "id": "mechanism-pose-to-relations",
      "kind": "edge",
      "label": "Supply the pose"
    },
    "mesh-to-relations": {
      "id": "mechanism-mesh-to-relations",
      "kind": "edge",
      "label": "Constrain relations"
    },
    "optimize-reference": {
      "id": "mechanism-optimize-reference",
      "kind": "edge",
      "label": "Optimize the reference"
    },
    "separate-tracking": {
      "id": "mechanism-separate-tracking",
      "kind": "edge",
      "label": "Track the reference"
    }
  },
  "stateLabels": {
    "stage": "Stage",
    "artifact": "Artifact"
  },
  "scenarios": [
    {
      "id": "reference-and-tracking",
      "title": "Reference and policy tracking",
      "description": "The example shows reference generation, then a different stage for policy tracking.",
      "initial": {
        "stage": "Start",
        "artifact": "Available inputs"
      },
      "unselected": [],
      "steps": [
        {
          "title": "Start with tracked interaction",
          "description": "Start with tracked interaction.",
          "duration": 3000,
          "active": [
            "motion"
          ],
          "paths": [],
          "state": {
            "stage": "Input",
            "artifact": "Tracked hand-object motion from the person plus target robot geometry"
          }
        },
        {
          "title": "Align bone directions",
          "description": "Align bone directions.",
          "duration": 3000,
          "active": [
            "warmup"
          ],
          "paths": [
            "warmup-input"
          ],
          "state": {
            "stage": "Warm-up",
            "artifact": "Bone-direction and smoothness prior"
          }
        },
        {
          "title": "Calculate the initial robot pose",
          "description": "Calculate the initial robot pose.",
          "duration": 3000,
          "active": [
            "initial"
          ],
          "paths": [
            "initialize"
          ],
          "state": {
            "stage": "Initialization",
            "artifact": "Initial robot configuration"
          }
        },
        {
          "title": "Use local relation constraints",
          "description": "Use local relation constraints.",
          "duration": 3000,
          "active": [
            "relations"
          ],
          "paths": [
            "pose-to-relations",
            "mesh-to-relations"
          ],
          "state": {
            "stage": "Relation matching",
            "artifact": "Initial pose plus fixed interaction connectivity for the human and robot"
          }
        },
        {
          "title": "Supply the optimized reference",
          "description": "Supply the optimized reference.",
          "duration": 3000,
          "active": [
            "reference"
          ],
          "paths": [
            "optimize-reference"
          ],
          "state": {
            "stage": "Reference generation",
            "artifact": "Robot reference with local relation and feasibility constraints"
          }
        },
        {
          "title": "Use the reference in a different learner",
          "description": "Use the reference in a different learner.",
          "duration": 3000,
          "active": [
            "tracking"
          ],
          "paths": [
            "separate-tracking"
          ],
          "state": {
            "stage": "Subsequent tracking",
            "artifact": "This is residual tracking-policy training. It is not an added iteration of retargeting."
          }
        }
      ]
    }
  ]
}
