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

manager = SdkManager.instance()
devices = manager.scan()
if not devices:
    print("No devices found")
    exit()
glove = manager.connect(sn=devices[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. Install the runtime dependencies first:

pip install "wuji-sdk[retarget]"

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, retargeting

# The hand model selects the builtin tuning config internally — no config path to manage.
session = retargeting.RetargetSession.for_hand(
    retargeting.HandModel.WujiHand2, side=Handedness.Right
)
qpos = session.step(np.zeros((21, 3), dtype=np.float32))  # -> (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.2-cp314-cp314-manylinux_2_34_x86_64.whl (31.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

wuji_sdk-2026.7.2-cp314-cp314-manylinux_2_34_aarch64.whl (30.6 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ ARM64

wuji_sdk-2026.7.2-cp313-cp313-manylinux_2_34_x86_64.whl (31.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

wuji_sdk-2026.7.2-cp313-cp313-manylinux_2_34_aarch64.whl (30.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ ARM64

wuji_sdk-2026.7.2-cp312-cp312-manylinux_2_34_x86_64.whl (31.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

wuji_sdk-2026.7.2-cp312-cp312-manylinux_2_34_aarch64.whl (30.6 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ ARM64

wuji_sdk-2026.7.2-cp311-cp311-manylinux_2_34_x86_64.whl (31.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

wuji_sdk-2026.7.2-cp311-cp311-manylinux_2_34_aarch64.whl (30.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ ARM64

wuji_sdk-2026.7.2-cp310-cp310-manylinux_2_34_x86_64.whl (31.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

wuji_sdk-2026.7.2-cp310-cp310-manylinux_2_34_aarch64.whl (30.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ ARM64

File details

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

File metadata

File hashes

Hashes for wuji_sdk-2026.7.2-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 2487cd081d7290b9e4584bb67d83f5b97c2c84b4d5491b7a354f16aa68e56480
MD5 6660a29be55abef814436769191a9884
BLAKE2b-256 4ffcfa7ee83d01f93cf386d5f1f0ccb772586b0bd8790f3a4521a2d9f00fdf22

See more details on using hashes here.

Provenance

The following attestation bundles were made for wuji_sdk-2026.7.2-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.2-cp314-cp314-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for wuji_sdk-2026.7.2-cp314-cp314-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 35d1ef9ed014f4118393bf9685bfdc75610d243ef281fd0db05621bd5245ab6c
MD5 deb50047b461ae3907baa504c85aead8
BLAKE2b-256 74c6ed5b7dac73b33978c328c3021004a584535f3abc12a7f65a87c4fc39b210

See more details on using hashes here.

Provenance

The following attestation bundles were made for wuji_sdk-2026.7.2-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.2-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for wuji_sdk-2026.7.2-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 b9e87fe0bad3c6473a8db5bfbb0a492fa906f615a34b3930d3be405ee6eba45b
MD5 89d2a8cf9eb3347b3ec39f6d203307eb
BLAKE2b-256 00661c10f35e1306b93382456e221d537b42d58febf60e6d2ee65a034f235ab2

See more details on using hashes here.

Provenance

The following attestation bundles were made for wuji_sdk-2026.7.2-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.2-cp313-cp313-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for wuji_sdk-2026.7.2-cp313-cp313-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 aa298f2a0acb601ab3a7700f32764a564edd23a66cae9e4be99b8b118256441a
MD5 786a9020134348677bd09d0f59e55770
BLAKE2b-256 183fe73c473222260f0a2286dcd736c16761c63b4203c72c93a726c0f58dd569

See more details on using hashes here.

Provenance

The following attestation bundles were made for wuji_sdk-2026.7.2-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.2-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for wuji_sdk-2026.7.2-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 6756291d5917b3a41b9e697b1aee790bc2bb5c8cf77ce842167ecf7fe0a3e2b0
MD5 0095616281769bf2a9532bdda4d6ecf8
BLAKE2b-256 2907685147f87f25f8d4b8c379d33ba089670c9aaafcd0f1d72bee7ea41d7404

See more details on using hashes here.

Provenance

The following attestation bundles were made for wuji_sdk-2026.7.2-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.2-cp312-cp312-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for wuji_sdk-2026.7.2-cp312-cp312-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 92411d5ee037861a2748d818e6a1775ecf551d15d78025d46ecfa8254cd13e13
MD5 5a5badee19d67a43e784b8644d41156e
BLAKE2b-256 8ec0e869c4dcb36c88b4e9c449718eeb5f7797ca6ab53cdc0f38aa22d89672f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for wuji_sdk-2026.7.2-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.2-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for wuji_sdk-2026.7.2-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 eff2773669dfa1bb55aaf1891dd4db413e45141c67a876b27aad92ef83f1d87e
MD5 057c49529bf9ba040647e3a6ec84631e
BLAKE2b-256 abcacf62e0aa93ee89067983b8f087a6591b851bf41f3ed7e9fb85e3f77a4fc6

See more details on using hashes here.

Provenance

The following attestation bundles were made for wuji_sdk-2026.7.2-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.2-cp311-cp311-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for wuji_sdk-2026.7.2-cp311-cp311-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 77e7a1b294aaec6d5ae302e091491067354d7b46b20e0c1cb3e87a849c8b6848
MD5 557bda70b3a6e833c0a25e10ebdfa3a3
BLAKE2b-256 b591ccb244bd9e914fdfd1e6453572674f01532c114bfa3b4e0ed2cc9404d3d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for wuji_sdk-2026.7.2-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.2-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for wuji_sdk-2026.7.2-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 eb11ba0d178cc9ef8d759202e0ba5f5942326066f1c5ab3ef8c498a5358bd729
MD5 d8f631cd0853b6c6d10eb239e49c1644
BLAKE2b-256 5b93efedb33560e3d1bf4dff6a5e368cda8281636bafce64a5cbb8923d6c217a

See more details on using hashes here.

Provenance

The following attestation bundles were made for wuji_sdk-2026.7.2-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.2-cp310-cp310-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for wuji_sdk-2026.7.2-cp310-cp310-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 d4ac660aa257931fc621381ee862a4bc6a46d7d4f03e8ce4946f8dcbf5bf96fb
MD5 b30ac19c795f94fb7b362d7f9c49fa6b
BLAKE2b-256 66e936eb6ca7542c76d0fd4bf39bf3105c389bae7522c5c6743875b4b46c2e1c

See more details on using hashes here.

Provenance

The following attestation bundles were made for wuji_sdk-2026.7.2-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