> ## 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.

# Data Streams Overview

This page lists every data stream Wuji Glove outputs: **raw data** captured directly by the glove hardware, and **post-processed products** solved by SDK algorithms.

## Shared SDK Capabilities

Install, connection, and subscription are shared across products and come from the Wuji SDK (`wuji_sdk`, `pip install wuji-sdk`). This section links to those docs instead of repeating them:

| Capability | Wuji SDK docs |
| - | - |
| Install and environment | [Quick Start](https://docs.wuji.tech/docs/en/wuji-sdk/latest/quick-start.md) |
| Device discovery and connection | [Device Connection](https://docs.wuji.tech/docs/en/wuji-sdk/latest/device-connection.md) |
| Data subscription and output rate | [Data Subscription](https://docs.wuji.tech/docs/en/wuji-sdk/latest/data-subscription.md) |
| Common data types | [Common Data Types](https://docs.wuji.tech/docs/en/wuji-sdk/latest/data-reference.md) |
| SDK user management and data import/export | [Device Parameters](https://docs.wuji.tech/docs/en/wuji-sdk/latest/device-params.md#sdk-user-management) |
| Time synchronization | [Time Synchronization](https://docs.wuji.tech/docs/en/wuji-sdk/latest/time-sync.md) |
| Data recording | [Data Recording](https://docs.wuji.tech/docs/en/wuji-sdk/latest/data-recording.md) |
| C API | [C API Reference](https://docs.wuji.tech/docs/en/wuji-sdk/latest/c-sdk-reference.md) |
| SDK-side logs and troubleshooting | [Troubleshooting](https://docs.wuji.tech/docs/en/wuji-sdk/latest/troubleshooting.md) |

For source and releases, see the [wuji-sdk repository](https://github.com/wuji-technology/wuji-sdk).

> [!NOTE]
>
> All data frames share the same [FrameHeader](https://docs.wuji.tech/docs/en/wuji-sdk/latest/data-reference.md#frameheader), which contains a sequence number and device timestamp. For `timestamp_us` semantics, the sync mechanism, and accuracy, see SDK [Time Synchronization](https://docs.wuji.tech/docs/en/wuji-sdk/latest/time-sync.md).

## Available data streams

The data streams fall into three categories by how they are produced:

* [Raw data](#raw-data): captured directly by the glove hardware and the input for every product. It can be saved alone and recomputed into all products afterward with the [offline pipeline](https://docs.wuji.tech/docs/en/wuji-glove/latest/offline-pipeline.md), with the same result as real-time computation and significantly lower CPU usage during capture.
* [Post-processed products](#post-processed-products): solved by SDK algorithms on top of the raw data.
* [Global resources](#global-resources): device-level coordinate transforms published independently of the data streams.

**Raw data**

<table>
  <thead>
    <tr><th>Data stream</th><th>SDK method</th><th>Type</th><th>Default output rate</th><th>Description</th></tr>
  </thead>

  <tbody>
    <tr><td>Tactile</td><td>`glove.tactile()`</td><td>[TactileFrame](https://docs.wuji.tech/docs/en/wuji-glove/latest/sdk-data-reference/tactile.md#tactileframe)</td><td>120 FPS</td><td>24×31 calibrated pressure matrix from the piezoresistive array</td></tr>
    <tr><td>EMF poses</td><td>`glove.emf_poses()`</td><td>[EmfPoseArray](https://docs.wuji.tech/docs/en/wuji-glove/latest/sdk-data-reference/hand-tracking.md#emfposearray)</td><td>120 Hz</td><td>5-finger positioning poses from the EMF modules</td></tr>
    <tr><td>IMU</td><td>`glove.imu_palm()`</td><td>[ImuData](https://docs.wuji.tech/docs/en/wuji-glove/latest/sdk-data-reference/imu.md#imudata)</td><td>800 Hz</td><td>Dorsum IMU angular velocity and linear acceleration (raw, no orientation)</td></tr>
  </tbody>
</table>

**Post-processed products**

<table>
  <thead>
    <tr><th>Data stream</th><th>SDK method</th><th>Type</th><th>Default output rate</th><th>Description</th></tr>
  </thead>

  <tbody>
    <tr><td>Tactile zones</td><td>`glove.tactile_zones()`</td><td>[TactileZones](https://docs.wuji.tech/docs/en/wuji-glove/latest/sdk-data-reference/tactile.md#tactilezones)</td><td>120 FPS</td><td>Pressure data aggregated from `tactile` by hand region</td></tr>
    <tr><td>Tactile point cloud</td><td>`glove.tactile_point_cloud()`</td><td>[PointCloud](https://docs.wuji.tech/docs/en/wuji-glove/latest/sdk-data-reference/tactile.md#pointcloud)</td><td>120 Hz</td><td>Tactile 3D point cloud generated from `tactile`</td></tr>
    <tr><td>Contact detection</td><td>`glove.tactile_binary()`</td><td>[TactileBinary](https://docs.wuji.tech/docs/en/wuji-glove/latest/sdk-data-reference/tactile.md#tactilebinary)</td><td>120 FPS</td><td>24×31 binary contact map inferred from `tactile` (1.0 contact / 0.0 no contact / -1.0 invalid taxel)</td></tr>
    <tr><td>Contact residual</td><td>`glove.tactile_residual()`</td><td>[TactileResidual](https://docs.wuji.tech/docs/en/wuji-glove/latest/sdk-data-reference/tactile.md#tactileresidual)</td><td>120 FPS</td><td>24×31 signed contact residual inferred from `tactile` (per-taxel `measured − predicted baseline`, threshold it yourself)</td></tr>
    <tr><td>Fingertip poses</td><td>`glove.tip_poses()`</td><td>[FingertipPoses](https://docs.wuji.tech/docs/en/wuji-glove/latest/sdk-data-reference/hand-tracking.md#fingertipposes)</td><td>120 Hz</td><td>5-finger fingertip poses solved from `emf_poses`</td></tr>
    <tr><td>Joint angles</td><td>`glove.hand_joint_angles()`</td><td>[HandJointAngles](https://docs.wuji.tech/docs/en/wuji-glove/latest/sdk-data-reference/hand-tracking.md#handjointangles)</td><td>120 Hz</td><td>21 DoF hand joint angles solved from `emf_poses` (thumb 5 + other four fingers 4 each)</td></tr>
    <tr><td>Hand skeleton</td><td>`glove.hand_skeleton()`</td><td>[HandSkeleton](https://docs.wuji.tech/docs/en/wuji-glove/latest/sdk-data-reference/hand-tracking.md#handskeleton)</td><td>120 Hz</td><td>21 MediaPipe keypoint skeleton solved from `emf_poses`</td></tr>
    <tr><td>IMU fusion</td><td>`glove.imu_data_palm()`</td><td>[ImuData](https://docs.wuji.tech/docs/en/wuji-glove/latest/sdk-data-reference/imu.md#imudata)</td><td>800 Hz</td><td>Complementary-filter fusion of `imu_palm` raw data, adding orientation</td></tr>
  </tbody>
</table>

> [!NOTE]
>
> The tactile frame (`tactile`), tactile zones (`tactile_zones`), EMF poses (`emf_poses`), and the raw IMU streams support runtime output rate tuning: call `sub.set_rate(hz)` on a subscription handle to request a lower output rate — the device quantizes it, returns the rate in effect, and `0` restores the default. Although the table above lists `tactile_zones` as aggregated by zone, the device produces it directly, so it can be tuned independently. Derived streams (`tip_poses`, `hand_joint_angles`, `hand_skeleton`, `tactile_point_cloud`, `imu_data_palm`, and so on) follow their source rate and can't be tuned on their own. See [Output Rate Tuning](https://docs.wuji.tech/docs/en/wuji-glove/latest/sdk-data-reference/hand-tracking.md#output-rate-tuning).

**Global resources**

<table>
  <thead>
    <tr><th>Data stream</th><th>SDK method</th><th>Type</th><th>Output rate</th><th>Description</th></tr>
  </thead>

  <tbody>
    <tr><td>Static TF</td><td>`manager.tf_static()`</td><td>[FrameTransforms](https://docs.wuji.tech/docs/en/wuji-sdk/latest/data-reference.md#frametransforms)</td><td>1 Hz</td><td>Fixed frame relationships</td></tr>
    <tr><td>Dynamic TF</td><td>`manager.tf()`</td><td>[FrameTransforms](https://docs.wuji.tech/docs/en/wuji-sdk/latest/data-reference.md#frametransforms)</td><td>800 Hz</td><td>IMU-driven dynamic transforms</td></tr>
  </tbody>
</table>

C SDK equivalents: `wuji_subscribe_tf(...)` / `wuji_subscribe_tf_static(...)`, callback signature `WujiFrameTransforms`, device-independent. For the full C API reference, see [Wuji SDK · C API Reference](https://docs.wuji.tech/docs/en/wuji-sdk/latest/c-sdk-reference.md).

## Example Code

Runnable, complete examples ship with the Wuji SDK.

| Resource | Location |
| - | - |
| Python examples | [`examples/python/wuji_glove/`](https://github.com/wuji-technology/wuji-sdk/tree/main/examples/python/wuji_glove) |
| C examples | [`examples/c/wuji_glove/`](https://github.com/wuji-technology/wuji-sdk/tree/main/examples/c/wuji_glove) |
| Teleoperation example | [`examples/python/retargeting/`](https://github.com/wuji-technology/wuji-sdk/tree/main/examples/python/retargeting) |
| Offline pipeline example | [`examples/python/wuji_glove/3.offline_pipeline.py`](https://github.com/wuji-technology/wuji-sdk/blob/main/examples/python/wuji_glove/3.offline_pipeline.py) |


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