Skip to main content

Wuji SDK: Python package for automatic device discovery and real-time data streaming with Wuji devices.

Project description

wuji-sdk (Python)

Python SDK for Wuji series devices. Provides automatic device discovery, connection management, and real-time data streaming for Wuji Glove, Wuji Hand 2, and other Wuji peripherals. Features a type-safe semantic API with native async/await and callback-based subscription support, multi-channel MCAP recording, and rich hand tracking data including joint angles, skeleton, and fingertip poses.

For detailed documentation, see the Wuji Docs Center.

Looking for the C SDK? See the C SDK README.

Installation

pip install wuji-sdk

Quick Start

import time
from wuji_sdk import SdkManager, DeviceType

manager = SdkManager.instance()
# scan() reports each device's type, so connect only the glove.
gloves = [d for d in manager.scan() if d.device_type == DeviceType.WujiGlove]
if not gloves:
    print("No Wuji Glove found")
    exit()
glove = manager.connect(sn=gloves[0].sn, device_name="glove")

sub = glove.tactile().subscribe_with_callback(
    callback=lambda frame: print(f"Max pressure: {max(frame.data):.2f}")
)

time.sleep(10)
sub.close()

More examples: examples/python/.

Examples

  • wuji_glove/0.subscribe_callback.py: subscribe to glove streams with callbacks; pass --hand-model-path to set a custom online-IK URDF first.
  • wuji_glove/1.subscribe_async.py: subscribe to glove streams with async/await; pass --hand-model-path to set a custom online-IK URDF first.
  • wuji_glove/2.recording.py: record glove data to MCAP.
  • wuji_glove/3.offline_pipeline.py: run hand tracking from offline frames.
  • wuji_glove/4.user.py: inspect, create, and switch local SDK users.
  • wuji_glove/5.calibration.py: run IK calibration with terminal guidance or API-style callbacks.
  • wuji_glove/6.emf_poses_rate_divider.py: lower the EMF pose output rate and compare affected stream rates.
  • retargeting/0.retarget_session.py: map hand keypoints (21×3) to a joint command with RetargetSession — no hardware needed.
  • retargeting/1.teleop_real.py: live teleoperation — drive a Wuji Hand / Wuji Hand 2 from a Wuji Glove (an example built on RetargetSession; swap the glove read for any (21,3) keypoint source).

Retargeting

Map human hand keypoints to Wuji Hand joint commands. Retargeting works out of the box — numpy is the only extra dependency (keypoint/qpos arrays):

pip install wuji-sdk numpy

The SDK exposes the pure retarget interface — one frame at a time, supply keypoints from any source:

import numpy as np
from wuji_sdk import Handedness, HandModel, RetargetSession

# The hand model selects the builtin tuning config internally — no config path to manage.
session = RetargetSession.for_hand(HandModel.WujiHand2, side=Handedness.Right)

# A synthetic open right hand, (21, 3) in meters, MediaPipe landmark order —
# replace with your real keypoint source (camera / glove / replay).
# (All-zero / degenerate frames are rejected with an exception.)
keypoints = np.zeros((21, 3), dtype=np.float32)
for finger, x in enumerate([-0.04, -0.03, -0.01, 0.01, 0.03]):  # thumb..pinky
    for k in range(4):
        keypoints[1 + finger * 4 + k] = [x, 0.03 * (k + 1), 0.0]
keypoints[1] = [-0.03, 0.02, 0.01]  # thumb CMC nearer the palm

qpos = session.step(keypoints)  # -> (20,) joint command (firmware order)

Driving a hand live (read → retarget → send) is plain application code built on this interface — see retargeting/1.teleop_real.py for a complete glove → hand loop.

Retargeting is available on Linux x86_64 / aarch64.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

wuji_sdk-2026.7.21-cp314-cp314-manylinux_2_34_x86_64.whl (10.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

wuji_sdk-2026.7.21-cp314-cp314-manylinux_2_34_aarch64.whl (10.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ ARM64

wuji_sdk-2026.7.21-cp313-cp313-manylinux_2_34_x86_64.whl (10.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

wuji_sdk-2026.7.21-cp313-cp313-manylinux_2_34_aarch64.whl (10.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ ARM64

wuji_sdk-2026.7.21-cp312-cp312-manylinux_2_34_x86_64.whl (10.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

wuji_sdk-2026.7.21-cp312-cp312-manylinux_2_34_aarch64.whl (10.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ ARM64

wuji_sdk-2026.7.21-cp311-cp311-manylinux_2_34_x86_64.whl (10.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

wuji_sdk-2026.7.21-cp311-cp311-manylinux_2_34_aarch64.whl (10.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ ARM64

wuji_sdk-2026.7.21-cp310-cp310-manylinux_2_34_x86_64.whl (10.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

wuji_sdk-2026.7.21-cp310-cp310-manylinux_2_34_aarch64.whl (10.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ ARM64

File details

Details for the file wuji_sdk-2026.7.21-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for wuji_sdk-2026.7.21-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 49a175125f0fb82d5850b088df8b9b8fe1b464c946d7cdc0644832cfc434d753
MD5 6029df6ddaec5f1809053547c02e372e
BLAKE2b-256 5c0b960bb3d21c5ff7e1b2aef322a41c7bb3cef729b572a176ca20fbfc30261d

See more details on using hashes here.

Provenance

The following attestation bundles were made for wuji_sdk-2026.7.21-cp314-cp314-manylinux_2_34_x86_64.whl:

Publisher: release.yml on wuji-technology/wuji-sdk-dev

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wuji_sdk-2026.7.21-cp314-cp314-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for wuji_sdk-2026.7.21-cp314-cp314-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 da7f88a84e14988e231fde1dd16bdb5b4a06c63fd133d9476946702dbf5be892
MD5 524ab58f575ed09a062750df8f794a28
BLAKE2b-256 2a02e2a26c6df529368efba4ac017a39e5263180ba71ebd3b6e98a686c5a8c06

See more details on using hashes here.

Provenance

The following attestation bundles were made for wuji_sdk-2026.7.21-cp314-cp314-manylinux_2_34_aarch64.whl:

Publisher: release.yml on wuji-technology/wuji-sdk-dev

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wuji_sdk-2026.7.21-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for wuji_sdk-2026.7.21-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 87ad327ea10f737197d6cf7849b3a359b7511ae49f898a0e21ae02372e367f95
MD5 0c5ff3fbef1ecedb1c5eb4837711d5ba
BLAKE2b-256 3d0b289befec82c17f8bb07a8baa92e346281a3156749136e26ca2fe968c321f

See more details on using hashes here.

Provenance

The following attestation bundles were made for wuji_sdk-2026.7.21-cp313-cp313-manylinux_2_34_x86_64.whl:

Publisher: release.yml on wuji-technology/wuji-sdk-dev

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wuji_sdk-2026.7.21-cp313-cp313-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for wuji_sdk-2026.7.21-cp313-cp313-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 e5e2f25ec99567c69362f2c5cbc7c7ca1798dc4db05a6749aef814de76b5d262
MD5 ea50966e9febed7501bd85c5508bb96f
BLAKE2b-256 32cedf38a4facd5f6895a5342a8fecb9a3f3734f6e93fc5127eb1f9757e4067e

See more details on using hashes here.

Provenance

The following attestation bundles were made for wuji_sdk-2026.7.21-cp313-cp313-manylinux_2_34_aarch64.whl:

Publisher: release.yml on wuji-technology/wuji-sdk-dev

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wuji_sdk-2026.7.21-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for wuji_sdk-2026.7.21-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 52327ceb100aae0c0b3deabe52ed6e17164bc4d7e9060b88c2934214d648e9e4
MD5 8e3c156d3b2b13abcd1123c2092f3a21
BLAKE2b-256 e3348a03f340647c6aa1d64fb35de69b2dc3e671441761d52c621c9530a966fb

See more details on using hashes here.

Provenance

The following attestation bundles were made for wuji_sdk-2026.7.21-cp312-cp312-manylinux_2_34_x86_64.whl:

Publisher: release.yml on wuji-technology/wuji-sdk-dev

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wuji_sdk-2026.7.21-cp312-cp312-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for wuji_sdk-2026.7.21-cp312-cp312-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 e2b9442b9edaf177b9d80cd5b1b41dd4cb8faf403db1b950130083d55199e165
MD5 72f30fb42c53c7a7937ddbea8574903a
BLAKE2b-256 4170f99038f771b3ee648239539a23c575fc7b94314ecc675d8c6a4b50cd7cf2

See more details on using hashes here.

Provenance

The following attestation bundles were made for wuji_sdk-2026.7.21-cp312-cp312-manylinux_2_34_aarch64.whl:

Publisher: release.yml on wuji-technology/wuji-sdk-dev

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wuji_sdk-2026.7.21-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for wuji_sdk-2026.7.21-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 3bdfc0c081667c255ba6be1b13733aea0ee69b11c035214e3f67f46d96a7a9c7
MD5 335bdab912b9ee753d47ae9c2c4b24f4
BLAKE2b-256 8d2694074b0078ca90d3d8ae6db616d7ada97119cd931e767167465f4d5c0c9f

See more details on using hashes here.

Provenance

The following attestation bundles were made for wuji_sdk-2026.7.21-cp311-cp311-manylinux_2_34_x86_64.whl:

Publisher: release.yml on wuji-technology/wuji-sdk-dev

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wuji_sdk-2026.7.21-cp311-cp311-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for wuji_sdk-2026.7.21-cp311-cp311-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 f29bc3896201c24e36afae5baf0f3687a2522a2324bc100f43ef7bedc0671e43
MD5 fe5a756ed4c2c47951b27383074826ce
BLAKE2b-256 a612dce1a4369a55d10c7bcb7ff9d784b38205104800f93a5960756342c29362

See more details on using hashes here.

Provenance

The following attestation bundles were made for wuji_sdk-2026.7.21-cp311-cp311-manylinux_2_34_aarch64.whl:

Publisher: release.yml on wuji-technology/wuji-sdk-dev

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wuji_sdk-2026.7.21-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for wuji_sdk-2026.7.21-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 447213a9137a0d8fba44eaffa3c0314c0e363fa19831b6072b42c8e2b3c76045
MD5 7dd4cacf22ba0b436e0545902c8274d1
BLAKE2b-256 925e958e982399a3e0b6b401e80e9a6c6fc59ada41f8d542b7794bc75bfa2e52

See more details on using hashes here.

Provenance

The following attestation bundles were made for wuji_sdk-2026.7.21-cp310-cp310-manylinux_2_34_x86_64.whl:

Publisher: release.yml on wuji-technology/wuji-sdk-dev

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file wuji_sdk-2026.7.21-cp310-cp310-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for wuji_sdk-2026.7.21-cp310-cp310-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 9a35530b7cac013dbe28717e9f51c239fc4ca790c3e7f4c4c6dc4ddae37dc432
MD5 a6f68b0d748223e99706689dba75e7dd
BLAKE2b-256 b738830872826e551b54fb766574e7139a9792bfeb35d14af250dbe8d8db666f

See more details on using hashes here.

Provenance

The following attestation bundles were made for wuji_sdk-2026.7.21-cp310-cp310-manylinux_2_34_aarch64.whl:

Publisher: release.yml on wuji-technology/wuji-sdk-dev

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page