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
When running examples from this repository against local source changes, rebuild and install the Python extension into the active virtual environment first:
cd crates/sdk-python
maturin develop
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-pathto set a custom online-IK URDF first.wuji_glove/1.subscribe_async.py: subscribe to glove streams with async/await; pass--hand-model-pathto 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 withRetargetSession— no hardware needed.retargeting/1.teleop_real.py: live teleoperation — drive a Wuji Hand / Wuji Hand 2 from a Wuji Glove (an example built onRetargetSession; 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wuji_sdk-2026.7.1-cp314-cp314-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: wuji_sdk-2026.7.1-cp314-cp314-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 31.5 MB
- Tags: CPython 3.14, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd0e62d10474cc976d0e9a59adfaf4979ba16fbac1e5c7226c5f46b519e85789
|
|
| MD5 |
9e70e22ffb9c418a79372cdb8e0587bf
|
|
| BLAKE2b-256 |
63df5034582767b069b6141cfcc7290e505545dd2945eeb8185c9dfec2c52ee1
|
Provenance
The following attestation bundles were made for wuji_sdk-2026.7.1-cp314-cp314-manylinux_2_34_x86_64.whl:
Publisher:
release.yml on wuji-technology/wuji-sdk-dev
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wuji_sdk-2026.7.1-cp314-cp314-manylinux_2_34_x86_64.whl -
Subject digest:
fd0e62d10474cc976d0e9a59adfaf4979ba16fbac1e5c7226c5f46b519e85789 - Sigstore transparency entry: 2031745961
- Sigstore integration time:
-
Permalink:
wuji-technology/wuji-sdk-dev@8d71c2ae2b5d6dc815c98e8ac45f03d63123531e -
Branch / Tag:
refs/tags/v2026.7.1 - Owner: https://github.com/wuji-technology
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8d71c2ae2b5d6dc815c98e8ac45f03d63123531e -
Trigger Event:
push
-
Statement type:
File details
Details for the file wuji_sdk-2026.7.1-cp314-cp314-manylinux_2_34_aarch64.whl.
File metadata
- Download URL: wuji_sdk-2026.7.1-cp314-cp314-manylinux_2_34_aarch64.whl
- Upload date:
- Size: 30.6 MB
- Tags: CPython 3.14, manylinux: glibc 2.34+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2cf8af8df02570d22f6b4050235ede3f08a0af2e0f6d75ca75923199b6b7e3e6
|
|
| MD5 |
d539873f9487fa9377a0ff71d5eb97ed
|
|
| BLAKE2b-256 |
52c4bf6271c69b24bdd91de0a61b0f23fa7d805f6a9cac5840aa3937f6db3859
|
Provenance
The following attestation bundles were made for wuji_sdk-2026.7.1-cp314-cp314-manylinux_2_34_aarch64.whl:
Publisher:
release.yml on wuji-technology/wuji-sdk-dev
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wuji_sdk-2026.7.1-cp314-cp314-manylinux_2_34_aarch64.whl -
Subject digest:
2cf8af8df02570d22f6b4050235ede3f08a0af2e0f6d75ca75923199b6b7e3e6 - Sigstore transparency entry: 2031745586
- Sigstore integration time:
-
Permalink:
wuji-technology/wuji-sdk-dev@8d71c2ae2b5d6dc815c98e8ac45f03d63123531e -
Branch / Tag:
refs/tags/v2026.7.1 - Owner: https://github.com/wuji-technology
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8d71c2ae2b5d6dc815c98e8ac45f03d63123531e -
Trigger Event:
push
-
Statement type:
File details
Details for the file wuji_sdk-2026.7.1-cp313-cp313-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: wuji_sdk-2026.7.1-cp313-cp313-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 31.5 MB
- Tags: CPython 3.13, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0342fc5e6f7c060289ad94ef1ac1e0ae1a172b7110ddfc46d4d39410f9c092f
|
|
| MD5 |
14fe96be59c9db4971946fb9e5222dd3
|
|
| BLAKE2b-256 |
0685a1b46ec5781cf59f4db48fca6864a28e47e6099ef53f1d61cc612321bd02
|
Provenance
The following attestation bundles were made for wuji_sdk-2026.7.1-cp313-cp313-manylinux_2_34_x86_64.whl:
Publisher:
release.yml on wuji-technology/wuji-sdk-dev
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wuji_sdk-2026.7.1-cp313-cp313-manylinux_2_34_x86_64.whl -
Subject digest:
f0342fc5e6f7c060289ad94ef1ac1e0ae1a172b7110ddfc46d4d39410f9c092f - Sigstore transparency entry: 2031746723
- Sigstore integration time:
-
Permalink:
wuji-technology/wuji-sdk-dev@8d71c2ae2b5d6dc815c98e8ac45f03d63123531e -
Branch / Tag:
refs/tags/v2026.7.1 - Owner: https://github.com/wuji-technology
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8d71c2ae2b5d6dc815c98e8ac45f03d63123531e -
Trigger Event:
push
-
Statement type:
File details
Details for the file wuji_sdk-2026.7.1-cp313-cp313-manylinux_2_34_aarch64.whl.
File metadata
- Download URL: wuji_sdk-2026.7.1-cp313-cp313-manylinux_2_34_aarch64.whl
- Upload date:
- Size: 30.6 MB
- Tags: CPython 3.13, manylinux: glibc 2.34+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
daec5a6861ee27ac145fb11aee504143abaaee481921d73359cdd33e213ef46d
|
|
| MD5 |
92a8156c56c9e7de7846e7b7b1350e97
|
|
| BLAKE2b-256 |
4b14f96b9c33159624dcc9868df0a1c762938481ff943b0bc44f62c814b10cac
|
Provenance
The following attestation bundles were made for wuji_sdk-2026.7.1-cp313-cp313-manylinux_2_34_aarch64.whl:
Publisher:
release.yml on wuji-technology/wuji-sdk-dev
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wuji_sdk-2026.7.1-cp313-cp313-manylinux_2_34_aarch64.whl -
Subject digest:
daec5a6861ee27ac145fb11aee504143abaaee481921d73359cdd33e213ef46d - Sigstore transparency entry: 2031746431
- Sigstore integration time:
-
Permalink:
wuji-technology/wuji-sdk-dev@8d71c2ae2b5d6dc815c98e8ac45f03d63123531e -
Branch / Tag:
refs/tags/v2026.7.1 - Owner: https://github.com/wuji-technology
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8d71c2ae2b5d6dc815c98e8ac45f03d63123531e -
Trigger Event:
push
-
Statement type:
File details
Details for the file wuji_sdk-2026.7.1-cp312-cp312-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: wuji_sdk-2026.7.1-cp312-cp312-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 31.5 MB
- Tags: CPython 3.12, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89f4421167daf892adae2f57eade363047b403966ae3956b57e7f10762b11698
|
|
| MD5 |
c64ae0d2adaada6f3fce1ce4ad3d9a42
|
|
| BLAKE2b-256 |
7938c1cd916749b78728fe6310c099bd66f1bb149a12369c026ea6d5d06e1044
|
Provenance
The following attestation bundles were made for wuji_sdk-2026.7.1-cp312-cp312-manylinux_2_34_x86_64.whl:
Publisher:
release.yml on wuji-technology/wuji-sdk-dev
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wuji_sdk-2026.7.1-cp312-cp312-manylinux_2_34_x86_64.whl -
Subject digest:
89f4421167daf892adae2f57eade363047b403966ae3956b57e7f10762b11698 - Sigstore transparency entry: 2031745331
- Sigstore integration time:
-
Permalink:
wuji-technology/wuji-sdk-dev@8d71c2ae2b5d6dc815c98e8ac45f03d63123531e -
Branch / Tag:
refs/tags/v2026.7.1 - Owner: https://github.com/wuji-technology
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8d71c2ae2b5d6dc815c98e8ac45f03d63123531e -
Trigger Event:
push
-
Statement type:
File details
Details for the file wuji_sdk-2026.7.1-cp312-cp312-manylinux_2_34_aarch64.whl.
File metadata
- Download URL: wuji_sdk-2026.7.1-cp312-cp312-manylinux_2_34_aarch64.whl
- Upload date:
- Size: 30.6 MB
- Tags: CPython 3.12, manylinux: glibc 2.34+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bfd914b636c8c49923788b62bb1017530bf929d6a89e499e6ffcfd910acddd91
|
|
| MD5 |
fd8f5787d00659e6ae5dbb64609a71ee
|
|
| BLAKE2b-256 |
8bc6ea51aab7e462d7474132e417e067abe2e71de511eabc7d4681110c4d0b0f
|
Provenance
The following attestation bundles were made for wuji_sdk-2026.7.1-cp312-cp312-manylinux_2_34_aarch64.whl:
Publisher:
release.yml on wuji-technology/wuji-sdk-dev
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wuji_sdk-2026.7.1-cp312-cp312-manylinux_2_34_aarch64.whl -
Subject digest:
bfd914b636c8c49923788b62bb1017530bf929d6a89e499e6ffcfd910acddd91 - Sigstore transparency entry: 2031746577
- Sigstore integration time:
-
Permalink:
wuji-technology/wuji-sdk-dev@8d71c2ae2b5d6dc815c98e8ac45f03d63123531e -
Branch / Tag:
refs/tags/v2026.7.1 - Owner: https://github.com/wuji-technology
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8d71c2ae2b5d6dc815c98e8ac45f03d63123531e -
Trigger Event:
push
-
Statement type:
File details
Details for the file wuji_sdk-2026.7.1-cp311-cp311-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: wuji_sdk-2026.7.1-cp311-cp311-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 31.5 MB
- Tags: CPython 3.11, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d349d57f4ca35c1b64050b68632ea37abc8c9893d5e872e7d26b4b2a0423956b
|
|
| MD5 |
cbea089b85a2d7726e3bb7b3399facc2
|
|
| BLAKE2b-256 |
984aef780205b56aff44c5369846e30da44e1722153991fa253983db662b2d40
|
Provenance
The following attestation bundles were made for wuji_sdk-2026.7.1-cp311-cp311-manylinux_2_34_x86_64.whl:
Publisher:
release.yml on wuji-technology/wuji-sdk-dev
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wuji_sdk-2026.7.1-cp311-cp311-manylinux_2_34_x86_64.whl -
Subject digest:
d349d57f4ca35c1b64050b68632ea37abc8c9893d5e872e7d26b4b2a0423956b - Sigstore transparency entry: 2031746257
- Sigstore integration time:
-
Permalink:
wuji-technology/wuji-sdk-dev@8d71c2ae2b5d6dc815c98e8ac45f03d63123531e -
Branch / Tag:
refs/tags/v2026.7.1 - Owner: https://github.com/wuji-technology
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8d71c2ae2b5d6dc815c98e8ac45f03d63123531e -
Trigger Event:
push
-
Statement type:
File details
Details for the file wuji_sdk-2026.7.1-cp311-cp311-manylinux_2_34_aarch64.whl.
File metadata
- Download URL: wuji_sdk-2026.7.1-cp311-cp311-manylinux_2_34_aarch64.whl
- Upload date:
- Size: 30.6 MB
- Tags: CPython 3.11, manylinux: glibc 2.34+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c5f22f2dfd504e3f269b1a5b2cc3faa0361101e06142a4ebeb4ef9f92b93a38
|
|
| MD5 |
7d8f84c9996cb0ddd056f0c4f1d1e148
|
|
| BLAKE2b-256 |
b5c493d0dee61daaea71829db8bd1272fe9e1c5d99b2321e0f8db050c1ee14fd
|
Provenance
The following attestation bundles were made for wuji_sdk-2026.7.1-cp311-cp311-manylinux_2_34_aarch64.whl:
Publisher:
release.yml on wuji-technology/wuji-sdk-dev
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wuji_sdk-2026.7.1-cp311-cp311-manylinux_2_34_aarch64.whl -
Subject digest:
9c5f22f2dfd504e3f269b1a5b2cc3faa0361101e06142a4ebeb4ef9f92b93a38 - Sigstore transparency entry: 2031745787
- Sigstore integration time:
-
Permalink:
wuji-technology/wuji-sdk-dev@8d71c2ae2b5d6dc815c98e8ac45f03d63123531e -
Branch / Tag:
refs/tags/v2026.7.1 - Owner: https://github.com/wuji-technology
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8d71c2ae2b5d6dc815c98e8ac45f03d63123531e -
Trigger Event:
push
-
Statement type:
File details
Details for the file wuji_sdk-2026.7.1-cp310-cp310-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: wuji_sdk-2026.7.1-cp310-cp310-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 31.5 MB
- Tags: CPython 3.10, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c19866e7c564762dcb7e6a2f8fb3eae07d04c649ae0b060e4e1b1167b9ab7a46
|
|
| MD5 |
a74191314310a54fa7ba5ab01b100fa2
|
|
| BLAKE2b-256 |
56430d4587bfa0fadc9e08fb62dfae2f935dba32b7c98ac32c98016836f5865e
|
Provenance
The following attestation bundles were made for wuji_sdk-2026.7.1-cp310-cp310-manylinux_2_34_x86_64.whl:
Publisher:
release.yml on wuji-technology/wuji-sdk-dev
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wuji_sdk-2026.7.1-cp310-cp310-manylinux_2_34_x86_64.whl -
Subject digest:
c19866e7c564762dcb7e6a2f8fb3eae07d04c649ae0b060e4e1b1167b9ab7a46 - Sigstore transparency entry: 2031746138
- Sigstore integration time:
-
Permalink:
wuji-technology/wuji-sdk-dev@8d71c2ae2b5d6dc815c98e8ac45f03d63123531e -
Branch / Tag:
refs/tags/v2026.7.1 - Owner: https://github.com/wuji-technology
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8d71c2ae2b5d6dc815c98e8ac45f03d63123531e -
Trigger Event:
push
-
Statement type:
File details
Details for the file wuji_sdk-2026.7.1-cp310-cp310-manylinux_2_34_aarch64.whl.
File metadata
- Download URL: wuji_sdk-2026.7.1-cp310-cp310-manylinux_2_34_aarch64.whl
- Upload date:
- Size: 30.6 MB
- Tags: CPython 3.10, manylinux: glibc 2.34+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
395b922da9b790ece12d1c2c64a781a93052e2a7450ae8f27131bdfb54112012
|
|
| MD5 |
f27bcbc4504a070becca49d31f1095ef
|
|
| BLAKE2b-256 |
0c4a3c612a029e1119df49814ce2111a9bb7ffdb53611215382982abf452eeca
|
Provenance
The following attestation bundles were made for wuji_sdk-2026.7.1-cp310-cp310-manylinux_2_34_aarch64.whl:
Publisher:
release.yml on wuji-technology/wuji-sdk-dev
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wuji_sdk-2026.7.1-cp310-cp310-manylinux_2_34_aarch64.whl -
Subject digest:
395b922da9b790ece12d1c2c64a781a93052e2a7450ae8f27131bdfb54112012 - Sigstore transparency entry: 2031746846
- Sigstore integration time:
-
Permalink:
wuji-technology/wuji-sdk-dev@8d71c2ae2b5d6dc815c98e8ac45f03d63123531e -
Branch / Tag:
refs/tags/v2026.7.1 - Owner: https://github.com/wuji-technology
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@8d71c2ae2b5d6dc815c98e8ac45f03d63123531e -
Trigger Event:
push
-
Statement type: