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. 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.14-cp314-cp314-manylinux_2_34_x86_64.whl (10.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.14manylinux: glibc 2.34+ ARM64

wuji_sdk-2026.7.14-cp313-cp313-manylinux_2_34_x86_64.whl (10.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.13manylinux: glibc 2.34+ ARM64

wuji_sdk-2026.7.14-cp312-cp312-manylinux_2_34_x86_64.whl (10.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.12manylinux: glibc 2.34+ ARM64

wuji_sdk-2026.7.14-cp311-cp311-manylinux_2_34_x86_64.whl (10.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

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

Uploaded CPython 3.11manylinux: glibc 2.34+ ARM64

wuji_sdk-2026.7.14-cp310-cp310-manylinux_2_34_x86_64.whl (10.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

wuji_sdk-2026.7.14-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.14-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for wuji_sdk-2026.7.14-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 be9e2858775f32e7f662f1efa603f7027afb95c8a0e967ac3bfc25e8b744c1da
MD5 c67a70646d97c37097eefbc738fb9510
BLAKE2b-256 82fc1e2e928f67203034b845a0939849496fc49dcc350190321076206dd554e3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wuji_sdk-2026.7.14-cp314-cp314-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 a252a31954a8242303add3c9df86c22ee205d50d6d09ba0a100afbc048c86f49
MD5 a60f1b2dabfd03955fc2a03e033e4545
BLAKE2b-256 b1780ebe0cb9dcef7a0abecd971e48cd52f8b50b738bc576122359b360173778

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wuji_sdk-2026.7.14-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 bcb289c983722253e4b4484b516a5429165ae3393dcc72a3c8f5add9abf6840d
MD5 00a82737713d2b9cb702d0918dd87109
BLAKE2b-256 2c4649dfae2400de8ddfa9d4b24ae9b9465524474c5be1152306caf849f65f0f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wuji_sdk-2026.7.14-cp313-cp313-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 06cc8c72c78f3701bfd103169bf2753df8edfe5e42031c27a26936aff5a2500a
MD5 a42cccab6f8c9622bf894c396da13237
BLAKE2b-256 04946c458dab178c598c3701d30e9ce67b673a0f6e63a4099d606cd35d9b4a7c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wuji_sdk-2026.7.14-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 c2281052c7b92fb1b1125e3e04f729ea00ff9ee9a36bf637f6f3040e905a1172
MD5 551d0502831aedcf39eea13ab11a5899
BLAKE2b-256 c71e405ac0d06b8acb51c650cb096e74b61e0e710bd2d1ac63b018e428c2e810

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wuji_sdk-2026.7.14-cp312-cp312-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 3b8873b4171a859753c1e9d08b152e51b436e5ea9ca73e960482419cc0e9b8a8
MD5 3f364456e9ce42be158fe1a3cccdf254
BLAKE2b-256 92b45b725874ec36941ec50e3d4e0d94d57aada127cb44960b954707a24a7b36

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wuji_sdk-2026.7.14-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 7616cb3ecc3e994cbf15480f72496d9b8880653b277590f3117da80ee4086d87
MD5 dcc39f9b28db0326956917595f5e5622
BLAKE2b-256 7c4d9c9b6a2f84306ecad50d48d9ca49573cbd602ae6f066ede71a09a9a03df6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wuji_sdk-2026.7.14-cp311-cp311-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 d59d2fec1d91d36c646bea272e7b328f3a1f43f6abc3cf733ab24e435b12483f
MD5 19c12ab995b6995374b59ad3c9065f9f
BLAKE2b-256 b93018e6c2342d9c6f7143aa5b277f60a4931d03203de1fa3048d91eb84e1f83

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wuji_sdk-2026.7.14-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 ff47c81f978d027f369ae92f73fe81cfa6564191476e40a43caf8aed6614dd97
MD5 acd17540f2cf93bbe2f8a4c653f0c0fb
BLAKE2b-256 e4315615b5f2ca10a2a745190ee505741a0a40d4992f7b0b3313fb782fb75fdb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for wuji_sdk-2026.7.14-cp310-cp310-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 a78d7b36788790a8223e40e35681e03acfcb186267e99503a334daa417ec1f08
MD5 6ea896a2a6985b727de6c1ebfa67495c
BLAKE2b-256 4ee7b9af2ce6f7211e03e7743436ce2225c4f5d48dbe29e295655591b602c1a5

See more details on using hashes here.

Provenance

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