{
  "sample": "Table_door_002_processed.png",
  "num_nodes": 4,
  "joint_types": [
    "fixed",
    "revolute",
    "prismatic",
    "prismatic"
  ],
  "movable_joint_types": [
    "revolute",
    "prismatic",
    "prismatic"
  ],
  "node_names": [
    "base",
    "door",
    "drawer",
    "drawer"
  ],
  "joint_ranges": {
    "0": [
      0.0,
      0.0
    ],
    "1": [
      0.0,
      54.95037841796875
    ],
    "2": [
      0.0,
      -0.3632892668247223
    ],
    "3": [
      0.0,
      -0.3386649191379547
    ]
  },
  "parents": {
    "0": -1,
    "1": 0,
    "2": 0,
    "3": 0
  },
  "children": {
    "0": [
      1,
      2,
      3
    ],
    "1": [],
    "2": [],
    "3": []
  },
  "root_cause": "imageio EXR decode in CLI loader collapsed multi-label masks into binary, forcing num_parts=1 pre-fix",
  "fix": "use cv2.imread(..., cv2.IMREAD_UNCHANGED) for .exr masks in ImageConditioned_dataset",
  "pre_fix_behavior": "single base fixed node",
  "post_fix_behavior": "base + door + 2 drawers with revolute/prismatic joints"
}