{
  "version": 1,
  "language": "en",
  "title": "Guide a successor with committed-prefix targets",
  "description": "The controller commits a prefix during asynchronous successor generation. Generation uses approximate prefix and overlap guidance for joint updates of all successor positions. New-future positions have no weight from current-chunk targets.",
  "caption": "During control execution, RTC guides successor generation toward prefix commands that will already be committed. Guidance decreases in the overlap, and new-future actions have no constraint from the current chunk. This is an approximate guided constraint, not a hard prefix overwrite. The eight positions and arrival are illustrative. The author made this explanatory diagram. The playback is an example, and animation time is not measured runtime.",
  "alt": "RTC comparison: committed prefix, guided overlap and new future are regions of the next chunk. Guidance is approximate during controller execution.",
  "sources": [
    {
      "path": "content/blog/2026-05-25_from-pi0-to-pi07-open-pi-series/post.md",
      "description": "Article mechanism and retained citations"
    },
    "https://www.pi.website/research/real_time_chunking",
    "https://arxiv.org/abs/2506.07339",
    "https://arxiv.org/html/2506.07339v1"
  ],
  "limitations": [
    "The playback is an example. Playback time is not measured runtime.",
    "The author made the 3/2/3 positions and arrival time for this example. They are not measured control delay.",
    "Each generation update is a joint update of all successor positions. It does not use autoregressive generation for the cells.",
    "The guidance is approximate and clipped. The diagram does not claim exact prefix equality."
  ],
  "targets": {
    "prefixWeight": {
      "id": "mechanism-prefixWeight",
      "kind": "node",
      "label": "Committed prefix"
    },
    "overlapWeight": {
      "id": "mechanism-overlapWeight",
      "kind": "node",
      "label": "Overlap"
    },
    "futureWeight": {
      "id": "mechanism-futureWeight",
      "kind": "node",
      "label": "New future"
    },
    "current0": {
      "id": "mechanism-current0",
      "kind": "node",
      "label": "a0"
    },
    "next0": {
      "id": "mechanism-next0",
      "kind": "node",
      "label": "a′0"
    },
    "guide0": {
      "id": "mechanism-guide0",
      "kind": "edge",
      "label": "Guide position 0"
    },
    "current1": {
      "id": "mechanism-current1",
      "kind": "node",
      "label": "a1"
    },
    "next1": {
      "id": "mechanism-next1",
      "kind": "node",
      "label": "a′1"
    },
    "guide1": {
      "id": "mechanism-guide1",
      "kind": "edge",
      "label": "Guide position 1"
    },
    "current2": {
      "id": "mechanism-current2",
      "kind": "node",
      "label": "a2"
    },
    "next2": {
      "id": "mechanism-next2",
      "kind": "node",
      "label": "a′2"
    },
    "guide2": {
      "id": "mechanism-guide2",
      "kind": "edge",
      "label": "Guide position 2"
    },
    "current3": {
      "id": "mechanism-current3",
      "kind": "node",
      "label": "a3"
    },
    "next3": {
      "id": "mechanism-next3",
      "kind": "node",
      "label": "a′3"
    },
    "guide3": {
      "id": "mechanism-guide3",
      "kind": "edge",
      "label": "Guide position 3"
    },
    "current4": {
      "id": "mechanism-current4",
      "kind": "node",
      "label": "a4"
    },
    "next4": {
      "id": "mechanism-next4",
      "kind": "node",
      "label": "a′4"
    },
    "guide4": {
      "id": "mechanism-guide4",
      "kind": "edge",
      "label": "Guide position 4"
    },
    "current5": {
      "id": "mechanism-current5",
      "kind": "node",
      "label": "a5"
    },
    "next5": {
      "id": "mechanism-next5",
      "kind": "node",
      "label": "a′5"
    },
    "current6": {
      "id": "mechanism-current6",
      "kind": "node",
      "label": "a6"
    },
    "next6": {
      "id": "mechanism-next6",
      "kind": "node",
      "label": "a′6"
    },
    "current7": {
      "id": "mechanism-current7",
      "kind": "node",
      "label": "a7"
    },
    "next7": {
      "id": "mechanism-next7",
      "kind": "node",
      "label": "a′7"
    }
  },
  "stateLabels": {
    "stage": "Stage",
    "control": "Controller time",
    "generation": "Generation"
  },
  "scenarios": [
    {
      "id": "guided",
      "title": "Illustrative delayed successor",
      "description": "The positions and arrival time are examples. They are not measured delay or a record of robot execution.",
      "initial": {
        "stage": "Prepared",
        "control": "Current chunk available",
        "generation": "No successor in this step"
      },
      "unselected": [],
      "steps": [
        {
          "title": "Initialize all successor positions",
          "description": "Generation initializes all successor positions as one joint candidate.",
          "duration": 3000,
          "active": [
            "next0",
            "next1",
            "next2",
            "next3",
            "next4",
            "next5",
            "next6",
            "next7",
            "prefixWeight",
            "overlapWeight",
            "futureWeight"
          ],
          "paths": [],
          "state": {
            "stage": "Initialize all successor positions",
            "control": "Controller executes current chunk",
            "generation": "Joint candidate initialized"
          }
        },
        {
          "title": "Execute during candidate updates",
          "description": "The controller executes the first command while generation updates all candidate positions jointly.",
          "duration": 3000,
          "active": [
            "current0",
            "next0",
            "next1",
            "next2",
            "next3",
            "next4",
            "next5",
            "next6",
            "next7"
          ],
          "paths": [
            "guide0",
            "guide1",
            "guide2",
            "guide3",
            "guide4"
          ],
          "state": {
            "stage": "Execute during candidate updates",
            "control": "First illustrative command committed",
            "generation": "All candidate positions updated jointly"
          }
        },
        {
          "title": "Continue execution during guided generation",
          "description": "Prefix and overlap targets guide a joint update of all candidate positions during controller execution.",
          "duration": 3000,
          "active": [
            "current1",
            "next0",
            "next1",
            "next2",
            "next3",
            "next4",
            "next5",
            "next6",
            "next7"
          ],
          "paths": [
            "guide0",
            "guide1",
            "guide2",
            "guide3",
            "guide4"
          ],
          "state": {
            "stage": "Continue execution during guided generation",
            "control": "Second illustrative command committed",
            "generation": "Prefix and overlap guidance applied"
          }
        },
        {
          "title": "Track already committed motion",
          "description": "Generation tracks committed motion during joint updates of all candidate positions.",
          "duration": 3000,
          "active": [
            "current2",
            "next0",
            "next1",
            "next2",
            "next3",
            "next4",
            "next5",
            "next6",
            "next7"
          ],
          "paths": [
            "guide0",
            "guide1",
            "guide2",
            "guide3",
            "guide4"
          ],
          "state": {
            "stage": "Track already committed motion",
            "control": "Three illustrative prefix positions committed",
            "generation": "Candidate generation continues with joint updates."
          }
        },
        {
          "title": "Receive the successor chunk",
          "description": "The controller receives the successor chunk after execution of the committed prefix.",
          "duration": 3000,
          "active": [
            "next0",
            "next1",
            "next2",
            "next3",
            "next4",
            "next5",
            "next6",
            "next7"
          ],
          "paths": [],
          "state": {
            "stage": "Receive the successor chunk",
            "control": "The controller completes the committed prefix before it receives the successor.",
            "generation": "The successor is available with an approximate constraint."
          }
        },
        {
          "title": "Use the successor’s remaining commands",
          "description": "The controller starts the remaining successor commands. It does not execute the committed prefix again.",
          "duration": 3000,
          "active": [
            "next3",
            "next4",
            "next5",
            "next6",
            "next7"
          ],
          "paths": [],
          "state": {
            "stage": "Use the successor’s remaining commands",
            "control": "The controller starts the remaining successor commands.",
            "generation": "The controller does not execute the committed prefix again."
          }
        }
      ]
    }
  ]
}
