Skip to main content

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.
  • wuji_glove/7.tactile_calibration.py: run the recommended guided tactile-calibration flow.
  • wuji_glove/8.tactile_contact_view.py: independently observe the live tactile_binary contact grid after calibration; it is not a calibration workflow.
  • wuji_glove/9.tactile_residual_view.py: observe the continuous signed tactile_residual grid after calibration and apply an adjustable contact threshold.
  • 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

Metadata

Release files for wuji-sdk 2026.8.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for wuji-sdk 2026.8.3
File
wuji_sdk-2026.8.3-cp314-cp314-manylinux_2_34_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.34+ x86-64 Details
wuji_sdk-2026.8.3-cp314-cp314-manylinux_2_34_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.34+ ARM64 Details
wuji_sdk-2026.8.3-cp313-cp313-manylinux_2_34_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.34+ x86-64 Details
wuji_sdk-2026.8.3-cp313-cp313-manylinux_2_34_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.34+ ARM64 Details
wuji_sdk-2026.8.3-cp312-cp312-manylinux_2_34_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.34+ x86-64 Details
wuji_sdk-2026.8.3-cp312-cp312-manylinux_2_34_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.34+ ARM64 Details
wuji_sdk-2026.8.3-cp311-cp311-manylinux_2_34_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.34+ x86-64 Details
wuji_sdk-2026.8.3-cp311-cp311-manylinux_2_34_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.34+ ARM64 Details
wuji_sdk-2026.8.3-cp310-cp310-manylinux_2_34_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.34+ x86-64 Details
wuji_sdk-2026.8.3-cp310-cp310-manylinux_2_34_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.34+ ARM64 Details

Total release size: 99.8 MB

Release files / wuji_sdk-2026.8.3-cp314-cp314-manylinux_2_34_x86_64.whl

Download URL wuji_sdk-2026.8.3-cp314-cp314-manylinux_2_34_x86_64.whl
Size 9.9 MB
Tags CPython 3.14 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
9827960f32cef434311790ff80e7ca0f1124c759e2b836ca1f8f742dce17ef2a
BLAKE2b-256 checksum
How to use checksums
28d2d9b418586e7b1fcfa717cea0096e642f305967404f00de478a94e4c76880
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.

Transparency log

Release files / wuji_sdk-2026.8.3-cp314-cp314-manylinux_2_34_aarch64.whl

Download URL wuji_sdk-2026.8.3-cp314-cp314-manylinux_2_34_aarch64.whl
Size 10.0 MB
Tags CPython 3.14 Linux glibc 2.34+ ARM64
SHA-256 checksum
How to use checksums
04ae638dd83df4e35c3883c5e60b0c9311c6512a16df774503639a9575010edf
BLAKE2b-256 checksum
How to use checksums
705f5587837ea13a3cbfce836d024590300a344116cc967a2d877200c5138bc5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.

Transparency log

Release files / wuji_sdk-2026.8.3-cp313-cp313-manylinux_2_34_x86_64.whl

Download URL wuji_sdk-2026.8.3-cp313-cp313-manylinux_2_34_x86_64.whl
Size 9.9 MB
Tags CPython 3.13 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
e1e8eb97a5bd8a01dab315a3aa7023d77aae8e022db4d2912fb85f477b0dd872
BLAKE2b-256 checksum
How to use checksums
f9ce9896e0d6056e0bc8b9f2f3edd0ac0b94cb828cf6990b768b00afd7d6bdb3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.

Transparency log

Release files / wuji_sdk-2026.8.3-cp313-cp313-manylinux_2_34_aarch64.whl

Download URL wuji_sdk-2026.8.3-cp313-cp313-manylinux_2_34_aarch64.whl
Size 10.0 MB
Tags CPython 3.13 Linux glibc 2.34+ ARM64
SHA-256 checksum
How to use checksums
bdcc002153f5b43284bf9fc98be0ec2bb460d66bf733c3ffed8fb9a4b2f8a8a9
BLAKE2b-256 checksum
How to use checksums
b0b7c9e6cd160e5651b7428892c6e462c8639251b592f530f3aeb0eb13d990d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.

Transparency log

Release files / wuji_sdk-2026.8.3-cp312-cp312-manylinux_2_34_x86_64.whl

Download URL wuji_sdk-2026.8.3-cp312-cp312-manylinux_2_34_x86_64.whl
Size 9.9 MB
Tags CPython 3.12 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
8acaf6a90e42c78f9523bf007f8c298cee6bfbeddb200550906bf0e069e63da8
BLAKE2b-256 checksum
How to use checksums
b03e03f7828d5df7ff1850a09b5c9e9106b464b1ba2b24492573781da4eccb3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.

Transparency log

Release files / wuji_sdk-2026.8.3-cp312-cp312-manylinux_2_34_aarch64.whl

Download URL wuji_sdk-2026.8.3-cp312-cp312-manylinux_2_34_aarch64.whl
Size 10.0 MB
Tags CPython 3.12 Linux glibc 2.34+ ARM64
SHA-256 checksum
How to use checksums
7c870ac502b0bb318fa365eb7f9e13b6b368aec919e05d3161e0ccb8f8a6299c
BLAKE2b-256 checksum
How to use checksums
92a3f6ed368863e703ef1bc0fbbab4efabca8af4d291dbedc3d61d6daa0abcb8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.

Transparency log

Release files / wuji_sdk-2026.8.3-cp311-cp311-manylinux_2_34_x86_64.whl

Download URL wuji_sdk-2026.8.3-cp311-cp311-manylinux_2_34_x86_64.whl
Size 9.9 MB
Tags CPython 3.11 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
60d2c58e1e83b92a853da1078916a4eca36e503de489590e9097f8ba65fb6417
BLAKE2b-256 checksum
How to use checksums
365231dfb261803f729f0455808ee3aa56a04eedfa587c4d71121bf9f2d3e4a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.

Transparency log

Release files / wuji_sdk-2026.8.3-cp311-cp311-manylinux_2_34_aarch64.whl

Download URL wuji_sdk-2026.8.3-cp311-cp311-manylinux_2_34_aarch64.whl
Size 10.0 MB
Tags CPython 3.11 Linux glibc 2.34+ ARM64
SHA-256 checksum
How to use checksums
616371e294ce6eccaf3b3ba893b4589ebcb62d0615687b42d790f31b7abc4d66
BLAKE2b-256 checksum
How to use checksums
359092b3e8fa6cafaea53e3153e4f01acf6dfac413080875af82a08c800c151c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.

Transparency log

Release files / wuji_sdk-2026.8.3-cp310-cp310-manylinux_2_34_x86_64.whl

Download URL wuji_sdk-2026.8.3-cp310-cp310-manylinux_2_34_x86_64.whl
Size 9.9 MB
Tags CPython 3.10 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
221656b2282f12561cdf7744b0f64800dfae5e45f837326fd53f4109c82b4161
BLAKE2b-256 checksum
How to use checksums
4433e127536e05dddcd4c4ee94abf2a88bbce74077c9e28f6c9f6b63cb055412
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.

Transparency log

Release files / wuji_sdk-2026.8.3-cp310-cp310-manylinux_2_34_aarch64.whl

Download URL wuji_sdk-2026.8.3-cp310-cp310-manylinux_2_34_aarch64.whl
Size 10.0 MB
Tags CPython 3.10 Linux glibc 2.34+ ARM64
SHA-256 checksum
How to use checksums
2f1e241365f69ba1570900f32176c4dcffbd39e58d15c8447146a78d3315314c
BLAKE2b-256 checksum
How to use checksums
7704757012254d1f591aa935ccef476925c50d2261fb8e73647c5b24f2d824fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2026.8.3 This release

10 release files

0.8.0

10 release files

0.6.0

10 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page