> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wuji.tech/llms.txt
> Use this file to discover all available pages before exploring further.

# Coordinate Transforms

Device-level coordinate transforms, published independently of the per-stream data flows.

| API | Returns | Description |
| - | - | - |
| `manager.tf_static()` | [FrameTransforms](/en/docs/wuji-sdk/data-reference#frametransforms) | Static coordinate transforms (sent at 1 Hz) |
| `manager.tf()` | [FrameTransforms](/en/docs/wuji-sdk/data-reference#frametransforms) | Dynamic coordinate transforms (data-driven) |

```python theme={null}
sub = manager.tf_static().subscribe()
transforms = await sub.recv_async()
for tf in transforms.transforms:
    print(f"{tf.parent_frame_id} → {tf.child_frame_id}")
```

For the coordinate transform type definitions, see SDK [FrameTransform](/en/docs/wuji-sdk/data-reference#frametransform) and [FrameTransforms](/en/docs/wuji-sdk/data-reference#frametransforms). For the coordinate-frame conventions and frame tree, see [Coordinate Frames](/en/docs/wuji-glove/coordinate-frames).

## tf\_static — Static Coordinate Transforms

Publishes fixed coordinate-frame relationships at 1 Hz. Subscribe through `manager.tf_static()`.

```json theme={null}
{
  "transforms": [
    {
      "timestamp_us": 1709876543210,
      "parent_frame_id": "l_wrist",
      "child_frame_id": "l_hand_emf_tx",
      "translation": [0.01, 0.042, 0.005],
      "rotation": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0,
        "w": 1.0
      }
    }
  ]
}
```

## tf — Dynamic Coordinate Transforms

Driven by the dorsum IMU orientation. Publishes the `waist → {l/r}_wrist` real-time transform at the IMU sampling rate. Subscribe through `manager.tf()`.

```json theme={null}
{
  "transforms": [
    {
      "timestamp_us": 1709876543210,
      "parent_frame_id": "waist",
      "child_frame_id": "l_wrist",
      "translation": [0.0, -0.3, -0.5],
      "rotation": {
        "x": 0.0,
        "y": 0.17,
        "z": 0.0,
        "w": 0.98
      }
    }
  ]
}
```

<Tabs>
  <Tab title="Python">
    Python: See the Python API examples earlier on this page.
  </Tab>

  <Tab title="C">
    The C SDK provides global transform subscriptions. Read `WujiFrameTransforms` during the callback.

    ```c theme={null}
    wuji_subscribe_tf(on_tf, user_data, &sub);
    wuji_subscribe_tf_static(on_tf_static, user_data, &sub_static);
    ```

    Frame pointers are valid only during the callback. Call `wuji_sub_close` when the subscription is no longer needed.
  </Tab>
</Tabs>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.