Changelog
Important Notice:
- Please update firmware, Wuji SDK, and Wuji Studio to the latest versions for optimal performance and compatibility
- For any questions, please contact support@wuji.tech
2026.08.03
Important: This release contains a C SDK breaking change (joint diagnostics struct ABI change). C applications using these structs must be recompiled against the new header.
Component Versions
| Component | Version | Update Method |
|---|---|---|
| Wuji SDK | v2026.8.3 | pip install --upgrade wuji-sdk |
Highlights
General
Changed:
- C SDK: The Linux x86_64 and aarch64 (gnu) tarballs now ship one library file,
libwuji_sdk_c.so. Wuji Hand support no longer needs thelibwujihandcpp.sothat earlier tarballs bundled beside it, andlibstdc++.so.6andlibusb-1.0.so.0are no longer runtime dependencies. The C API and link line are unchanged, so existing applications keep working without a rebuild. If you deployedlibwujihandcpp.sofrom an earlier tarball, you can delete it — the SDK doesn't load it anymore.
Fixed:
- Device scanning no longer hangs indefinitely in the rare case where a network peer disappears during discovery. The network discovery step is now time-bounded, so scanning always returns within a few seconds with the devices found so far. Covers both the Python SDK and the C SDK.
- Network device discovery now works on Linux hosts with multiple network interfaces or IP addresses when the host's primary IP address is not on the device's subnet — previously scanning on such hosts could permanently find no devices. Covers both the Python SDK and the C SDK.
Device
Wuji Hand 2
New capabilities:
- The
joint_diagnosticsstream now carries built-in communication health — each joint reports its bus response rate and timeout count, and every frame includes a summary with end-to-end (Ethernet) stream loss, request retry/timeout counters, and the fingertip tactile online bitmap. The SDK maintains all of it automatically in the background, so no polling is required.
Breaking changes (C SDK):
- The joint diagnostics structs gained new fields, so their C ABI changed. Applications that use
WujiJointDiagnosticsEntryorWujiJointDiagnosticsFramemust be recompiled against the new header before linking the new library — linking new against old will read and write past the end of the old structs. Existing fields keep their meaning and order, and no source changes are needed; the added fields carry the per-joint bus communication quality and the frame-level communication summary described above.
Fixed:
- The SDK no longer binds a fixed local network port when connecting a hand. The local port is now assigned automatically by the operating system, so the SDK will not conflict with ports used by your own applications.
- Setting
effort_limitto a value the device rejects (e.g. above the current ceiling) now raises aValueErrorinstead of a generic error; the device keeps its previous limit.
Wuji Glove
New capabilities:
-
Added guided tactile calibration — record prompted hand motions to train a per-glove contact model for real-time contact detection (
tactile_binary). Python:glove.calibrate_tactile()/glove.calibrate_tactile_blocking(). C: blocking guided flow with pose-prompt callbacks.Models load automatically. Training requires a
model-exportbuild — see the motion guide. -
C SDK: Added
wuji_glove_set_tactile_binary_sensitivityfor standalonetactile_binaryobservation tools. It changes the SDK-local contact sensitivity for the connected glove and rejects non-finite or non-positive values. -
C SDK: Added the runnable user-management example
examples/c/wuji_glove/3_user_management.cfor inspecting the current SDK user, creating or updating named users, and switching users before calibration. -
Added
tactile_residualobservation examples — the continuous signed signal behindtactile_binary, where you set your own contact threshold instead of using a built-in one. Python:glove.tactile_residual(), C:wuji_glove_subscribe_tactile_residualtyped callback. Calibrate the glove first.
Changed:
- The C IK calibration example is now
examples/c/wuji_glove/4_user_calibration.c(renamed from3_user_calibration.c) and calibrates the SDK user you are already on instead of creating or switching one — use the new3_user_management.cexample first if you need to create or switch users. It also gained a--blockingmode, which runs calibration to completion without the cooperative Ctrl+C cancellation the default asynchronous path offers.
Fixed:
- EMF finger poses now use the selected hand URDF to reject unreachable mirrored positions, reducing incorrect position reversals caused by transient interference.
Wuji Hand
Changed:
RealtimeControllercan now be shared across Python threads — for example a writer thread streaming targets while a reader thread polls actual positions — without any locking. Previously, touching the controller from a second thread raised an error.
Fixed:
- Physically unplugging the tactile glove at runtime is now detected.
is_tactile_attached()returnsfalse, the tactile status stream reportsNotPresent(state 0) typically within 200 ms, and other tactile reads return a clear "tactile not present" error — previously they all kept reporting a healthy, attached glove indefinitely and only the frame age hinted at the loss. The hand itself is unaffected and keeps working; re-attaching the glove still requires reconnecting the hand. Applies to both the Python SDK and the C SDK (wuji_hand_is_tactile_attached). - C SDK: Wuji Hand tactile-glove calls no longer crash the process when the glove is missing or faulty — they return an error status instead (details via
wuji_last_error()). - Connecting to a hand that isn't ready no longer crashes your application — it now fails with a catchable error that names any joint that didn't respond. Covers both the Python SDK and the C SDK.
2026.07.21
Important: The retargeting interface moved to the package top level (breaking change, Python) — the wuji_sdk.retargeting submodule is removed. Update caller imports to the new form.
Component Versions
| Component | Version | Update Method |
|---|---|---|
| Wuji SDK | v2026.7.21 | pip install --upgrade wuji-sdk |
Highlights
Device
Wuji Hand 2
New capabilities:
- First official release of fingertip tactile sensing: subscribe to self-describing per-finger sensor streams (
FingertipSensorInfometadata describes how to decode eachFingertipSensorDataframe — see the3.fingertip_typed.pyexample), recalibrate all five fingertips to a fresh zero baseline withhand.tactile_calibrate()(Python) /wuji_hand_2_tactile_calibrate(dev)(C) while keeping the sensor surfaces unloaded, and query each sensor's model and calibration state withhand.tactile_status(finger)to confirm a recalibration has finished
Fixed:
- Firmware upgrade failures now report the detailed error (specific reason, error code, and any failed nodes) instead of a generic "Unknown error"
Submodules
Retargeting
New capabilities:
- Added the hand retargeting API (
wuji_retarget_session_create/_step/_reset/_free) that maps 21 hand keypoints (MediaPipe order) to 20 joint angles in firmware order, matching the PythonRetargetSession, with degenerate or invalid keypoint frames returning the newWUJI_STATUS_ERR_ALGORITHMstatus and details fromwuji_last_error()
Breaking changes (Python):
RetargetSessionandHandModelnow live at the package top level and thewuji_sdk.retargetingsubmodule is removed (breaking change, Python) — update imports tofrom wuji_sdk import RetargetSession, HandModel
Changed:
RetargetSessionnow works out of the box without the[retarget]extra and with lower per-step latency —numpyis still used for keypoint/qpos arrays- Refined retargeting output with improved thumb articulation — joint angles for identical inputs may differ from previous releases
2026.07.14
Important: The Wuji Hand Python interface is aligned with the Wuji Hand 2 resource-style API (breaking change), and Wuji Glove hand calibration now belongs to the SDK user and hand side. Upgrade the SDK and update caller code to the new interface. Wuji Glove users should recalibrate.
Component Versions
| Component | Version | Update Method |
|---|---|---|
| Wuji SDK | v2026.7.14 | pip install --upgrade wuji-sdk |
Highlights
General
New capabilities:
- Export, preview, and import your Wuji user data as a portable
.zipbundle.SdkManager.export_user_data(user_id, out_path)writes everything a user owns — calibration hand models plus the tactile model and its latest complete calibration run — into one file.preview_user_data(zip_path)validates a bundle and reports its contents without importing it.import_user_data(zip_path)restores a bundle to the user who created it (creating that user if it doesn't exist) and overwrites that user's existing data, without changing the current user scan()now reports each device's type:DiscoveredDevice.device_typeis aDeviceTypeenum (WujiGlove/WujiHand2/WujiHand), so you can tell what a device is before connecting.Unknownmeans the type was not available at scan time- C SDK: scan results now carry the device type.
WujiDiscovered.device_idis aWujiDeviceTypeenum (WUJI_DEVICE_TYPE_WUJI_GLOVE/_WUJI_HAND_2/_WUJI_HAND/_UNKNOWN) andmodelcarries the readable type string, so you can tell what a device is before connecting - C SDK: added SDK user management and Wuji Glove IK calibration APIs matching the Python SDK. C applications can create and switch SDK users, run calibration with structured feedback, cancel asynchronous calibration sessions, and receive the per-user calibrated URDF path. The calibration example provides the same in-place terminal dashboard and throttled API log mode as the Python example
- C SDK: added user data import/export and preview, mirroring the Python API.
wuji_user_data_export/wuji_user_data_importmove a user's data as a portable.zipbundle, andwuji_user_data_previewvalidates and lists a bundle's contents without writing to disk. All three return aWujiStatus— callwuji_last_error()for the message on failure.WUJI_STATUS_ERR_NOT_FOUNDmeans the bundle file doesn't exist, andWUJI_STATUS_ERR_INVALID_DATAmeans the bundle is present but fails validation (corrupt zip, bad manifest, checksum mismatch, or unsafe path)
Breaking changes (C SDK):
WujiConnectOptionschanged layout to match PythonConnectOptionsfor bridge and background time-sync settings. Rebuild C applications against the updatedwuji_sdk.h. Usewuji_connect_options_default()before overriding fields when passing non-NULL options towuji_connect, or passopts_or_null = NULLto keep default connection behavior- Removed the unused
wuji_glove_subscribe_tactile_zones_cache()
Fixed:
- Fixed an issue where connecting multiple devices in the same process (for example a Wuji Glove and a Wuji Hand 2) could fail depending on the connection order
- Fixed a crash on exit. If a device disconnected while a callback subscription was still running and the process then exited, the app could crash with a fatal Python error or segmentation fault. Background subscription threads now stop cleanly before the interpreter shuts down
Device
Wuji Hand
New capabilities:
- The Wuji SDK real-time controller now exposes
get_actual_effort()(per-joint effort in amps, read from the same non-blocking upstream cache asget_actual_position()) in the Python SDK, and the C SDK exposes the matchingwuji_hand_realtime_controller_get_actual_effort. This API belongs to wuji-sdk, not wujihandcpp - Added Wuji Hand (first-generation dexterous hand) support to the C SDK. Connect by USB serial number (
wuji_hand_connect_sn), then read joint positions, per-joint diagnostics (bus voltage / temperature / error code), firmware soft limits, handedness, and whether a tactile glove is attached. Control withenable/disable/clear_all_faults, set and read the effort limit, stream commands through a joint-command publisher (a list of 20JointCommandstructs —position/velocity/effortper joint, the same shape as Wuji Hand 2, so command code is portable between the two), and run a low-pass-filtered real-time position controller. Subscription streams for joint state and tactile pressure are also available. Supported on Linux x86_64 / aarch64 (gnu) only. On Android these functions are present but returnWUJI_STATUS_ERR_UNSUPPORTED. Worked examples are underexamples/c/wuji_hand/
Breaking changes (Python):
- The joint-command publisher now takes an array of structs.
JointCommandPublisher.send(...)changed from three parallel listssend(positions, velocities, efforts)to a single list of per-joint commandssend(joints), where each entry is aJointCommand(position, velocity, effort)— pass exactly 20. The oldpublish(...)alias was removed. This matches Wuji Hand 2 exactly - The joint-command publisher is now opened via
hand.joint_command().publish(). The resource accessor was renamed from.publisher()to.publish(), and the shortcut methodhand.joint_command_publisher()was removed. The returnedJointCommandPublisher(send(...)/close()) is unchanged - Tactile-glove classes now carry a
TactileGloveprefix so they cannot be confused with the Wuji Glove's generic tactile streams:TactileStatus→TactileGloveStatus,TactileDiagnostics→TactileGloveDiagnostics,TactileDeviceInfo→TactileGloveDeviceInfo, and the sub-module handleWujiTactile→WujiTactileGlove. Accessors and wire formats are unchanged — update type references andisinstancechecks to the new class names - The joint-state stream is now
hand.joint_states()(washand.joint_state()), and the frame class isHandJointStates(wasHandJointState), matching Wuji Hand 2 and the ROS/joint_statesconvention
Wuji Hand 2
disconnect()now fully releases the hand — after disconnecting, the hand is immediately available to any other application or machine, exactly as if your application had exited. Previously the hand could remain held by the application until it exited- Fixed a bug where applications that repeatedly connect and disconnect could see each new connection take longer than the last. Connections now stay consistently fast, no matter how long the application has been running
Wuji Glove
Breaking changes:
- Hand calibration now belongs to the SDK user and hand side instead of an individual glove. Swapping to another glove of the same side no longer requires recalibration. Calibration recorded by older SDK versions is not loaded anymore — recalibrate under your user profile
- The
hand_profilecalibration option is deprecated and ignored (passing it emits aDeprecationWarning). The calibration result was simplified tohandednessplus a singlecalibrated_urdfpath. Thecalibration.hand_profileandcalibration.hand_model_paths.*parameters were removed: setting them now fails, and values left by older versions are ignored - The tactile contact model is now located automatically from the current SDK user and device serial number, the same convention as the calibrated hand model, and stored under the SDK's own tactile directory. The
algorithms.tactile_binary.model_dirparameter was removed: setting it now fails, and values left by older versions are ignored. Integrations that set this parameter should stop setting it, as the model is resolved automatically once you select the SDK user - Calibration bundles use a new format with user-level hand models and per-glove tactile data. Importing bundles from older SDK versions keeps the tactile data but skips the old hand calibration (it is no longer loaded — recalibrate under your user profile). Bundles exported by this version require an up-to-date SDK to import
Fixed:
- The Default profile uses Wuji's built-in URDF, and calibration recorded earlier does not apply. To calibrate, create and switch to your own user profile first
Submodules
Retargeting
- Optimized wheel packaging — download and installed size are significantly smaller. No functional change
2026.07.02
Component Versions
| Component | Version | Update Method |
|---|---|---|
| Wuji SDK | v2026.7.2 | pip install --upgrade wuji-sdk |
Key Updates
Device
Wuji Hand
- Fixed reconnecting within the same process: after
disconnect(), callingconnect()again for the same hand failed and previously required exiting the process to recover. The handle is no longer usable afterdisconnect(). Create a new connection to reconnect
Submodules
Retargeting
- Fixed the live teleoperation example (
examples/python/retargeting/1.teleop_real.py) that failed to run:manager.connect()defaults toenable_bridge=True(Zenoh Bridge enabled), so the glove → retarget → hand loop did not work when the example used the default connection options. The example now connects withConnectOptions(enable_bridge=False), bypassing the Bridge for a direct connection
2026.07.01
Important: The Wuji Hand 2 interface is redesigned into a unified resource-style API (breaking change). Upgrade the device firmware and SDK together, and update caller code to the new interface.
Component Versions
| Component | Version | Update Method |
|---|---|---|
| Wuji SDK | v2026.7.1 | pip install --upgrade wuji-sdk |
Key Updates
C SDK
- Added Wuji Hand 2 support, mirroring the Python resource-style API:
joint_states/joint_diagnosticssubscription streams,mit_params/effort_limitconfiguration, control actions (enable / disable / clear_fault / emergency_stop / user origin), and a joint-command publisher. Whole-hand reads cover 20 joints with a per-joint online bitmap so offline joints are distinguishable, and string getters use a two-call size query (pass aNULLbuffer to get the required length, then call again to fill it) - New
wuji_glove_get_emf_poses_rate_divider/wuji_glove_set_emf_poses_rate_dividerlower the Wuji Glove EMF output rate (divider N ≥ 1, output rate = input rate / N, for example N=4 → 30 Hz). Every derived stream (hand_joint_angles / tip_poses / hand_skeleton / tactile_point_cloud) drops to the same rate, reducing IK CPU load. Applied at runtime and preserved across reconnects - New
wuji_glove_sync_timetriggers a single time-sync round-trip with a Wuji Glove, fillingWujiTimeSyncResultwith the clock offset, round-trip time, and measurement timestamp in microseconds, matching Pythonglove.sync_time() - New
wuji_glove_get_hand_model_path/wuji_glove_set_hand_model_path(and Pythonglove.hand_model_path().get()/set(path)) select a custom hand URDF for Wuji Glove online IK. Python subscription examples now expose--hand-model-path
Device
Wuji Hand 2
Breaking changes:
- Interface redesigned into a unified resource-style API. Every feature is accessed via
.get()/.set()/.subscribe()/.publish(), with the same methods for whole-hand and per-joint use - Control actions
enable()/disable()/clear_fault()/set_origin()/clear_origin()accept a length-20 mask for subset operations.emergency_stop()always acts on the whole hand - Feedback as subscription streams:
hand.joint_states()andhand.joint_diagnostics(), with feedback frames carrying aFrameHeader(seq / timestamp_us / frame_idl_wrist/r_wrist), containing only online joints - Real-time control moved to a publish model:
hand.joint_command().publish().send(joints)takes 20JointCommandentries (each with position / velocity / effort). The previoussend(positions, velocities, efforts)three-list form is retired - Configuration resources
mit_params(kp/kd) andeffort_limit(A) reject NaN / inf / negative writes - Control mode is no longer set from Python. The device runs MIT control by default
New capability:
describe_error(code) translates a status / error code into a human-readable description.
Wuji Glove
Breaking changes:
- Updated
tactile_point_cloudto the 526-taxel active point-cloud contract — use a matching firmware version to keep point-cloud frames consistently at 526 points - The default SDK user now always uses the built-in default hand URDF for IK-derived streams (
hand_skeleton,hand_joint_angles,tip_poses) and ignores stored calibration URDF paths. Callingcalibrateas the default user fails fast with error code0x4108. Create or switch to a named SDK user before calibration so generated URDFs are scoped to that user
Default model refresh:
Finger-segment lengths and joint origins are updated to the latest calibration. Default hand-tracking output (hand_skeleton, hand_joint_angles, tip_poses) is more accurate when no user calibration profile is loaded. Joint and link layout unchanged.
Submodules
Retargeting
Ships with wuji-sdk, mapping hand keypoints to Wuji Hand / Wuji Hand 2 joint angles. Install with pip install wuji-sdk[retarget] (Linux x86_64 / aarch64 only). The standalone Wuji Retargeting repo is no longer updated.
- Maps 21 MediaPipe-format hand keypoints to Wuji Hand joint angles.
wuji_sdk.retargeting.RetargetSession.for_hand(HandModel.WujiHand2, side=Handedness.Right)builds a session in one line.session.step(keypoints)returns a 20-value joint command ready to send to the device with no extra reordering - Includes a Wuji Glove → retargeting → Wuji Hand / Wuji Hand 2 live teleoperation example at
examples/python/retargeting/1.teleop_real.py
2026.06.18
Component Versions
| Component | Version | Update Method |
|---|---|---|
| Wuji SDK | v2026.6.18 | pip install --upgrade wuji-sdk |
Key Updates
Wuji Glove
- Tactile data layout updates to 744 values in 24×31 (was 768, 24×32), shrinking
tactile,tactile_residual,tactile_binaryframes and the per-zone layout, with invalid taxels still reported as-1.0
2026.06.15
Component Versions
| Component | Version | Update Method |
|---|---|---|
| Wuji SDK | v2026.6.16 | pip install --upgrade wuji-sdk |
Key Updates
General
- Added a prebuilt C SDK (
libwuji_sdk_c.so+wuji_sdk.h), currently scoped to Wuji Glove only, covering device connection, cross-device coordinate transforms (tf/tf_static), and stream subscriptions (tactile, tactile zones, EMF poses, hand joint angles, hand skeleton, tactile point cloud), forx86_64-linux-gnu/aarch64-linux-gnu/aarch64-android. - Added local SDK user profiles via
SdkManager.create_user(display_name)andswitch_user()— each profile keeps its own calibration data per device, and switching profiles reloads calibration on connected devices immediately.
Wuji Glove
- Added
glove.tactile_residual()publishing 768 continuous contact-residual values at the same rate astactile(positive = pressed, ~0 = no contact,-1.0= invalid), mirroringTactileFrameshape so existing tactile-grid visualizers work unchanged. Apply your own thresholding instead of the built-intactile_binaryoutput. - Hand pose solving now runs in parallel, reducing compute time behind
hand_joint_anglesand derived hand-tracking data, output values and schemas unchanged. - Added Python-side IK calibration via
glove.calibrate()with per-pose progress callbacks (on_feedback), selecthand_profilefor Wuji Hand or Wuji Hand 2, or leave it unset to generate URDFs for both profiles from a single capture, switchable later for live hand tracking. - Added
glove.emf_poses_rate_divider()to lower EMF pose output rate (default 1, set N to publish at input_rate/N, e.g. N=4 → 120Hz down to ~30Hz). All EMF-derived streams (emf_poses/hand_joint_angles/tip_poses/hand_skeleton/tactile_point_cloud) drop to the same rate to reduce IK compute, while IMU (imu_*,tf) and raw tactile streams (tactile/tactile_zones/tactile_residual/tactile_binary) keep original rate. Runtime-effective, persists across reconnects.
Wuji Hand
- Added the
wuji_sdk.WujiHandclass — Wuji Hand is now usable directly throughwuji-sdk(alongside the existingwujihandpy), with USB auto-discovery and connection, motor enable/disable, per-joint effort limits, real-time 20-joint position subscription and command publishing withLowPasssmoothing, and an optional plug-in tactile glove stream. - The
WujiHandAPI surface mirrors Wuji Hand 2 (scan/connect/joint_state/joint_command), so code patterns largely interoperate between the two generations.
2026.06.02
Component Versions
| Component | Version | Update Method |
|---|---|---|
| Wuji SDK | v2026.6.2 | pip install --upgrade wuji-sdk |
Key Updates
- Wuji Glove: Added the binary contact tactile stream
glove.tactile_binary(), published at the same rate astactile()with 768 contact states (1.0in contact,0.0no contact,-1.0invalid taxel). It mirrors theTactileFrameshape, so existing tactile-grid visualizers work without changes. - Added handedness-based connection
SdkManager.connect(handedness=Handedness.Left | Handedness.Right, ...)to connect to the left or right side of a bimanual device directly.
2026.05.18
Component Versions
| Component | Version | Update Method |
|---|---|---|
| Wuji SDK | v0.10.0 | pip install --upgrade wuji-sdk |
Key Updates
- Added
device.export_flash_logs(out_dir)to dump historical device logs to JSONL files - Added per-channel recording health via
QualityMetrics.channels— frame rate, drop rate, jitter,is_online, andlast_downtime_msfor each recorded topic - Wuji Glove:
hand_joint_anglesandtip_posesnow derive from the URDF kinematic chain. Output schemas are unchanged, but numerical values may differ from previous versions - Wuji Glove: Removed
glove.tactile_raw()— subscribe toglove.tactile()(calibrated tactile frames) instead - Wuji Glove: Removed
glove.factory_reset() - Fixed devices not reliably publishing offline status when
disconnect_all()is called from non-async contexts
2026.04.07
Component Versions
| Component | Version | Update Method |
|---|---|---|
| Wuji SDK | v0.9.0 | pip install --upgrade wuji-sdk |
Key Updates
- Fixed some known issues
2026.03.23
Component Versions
| Component | Version | Update Method |
|---|---|---|
| Wuji SDK | v0.8.0 | pip install --upgrade wuji-sdk |
Key Updates
- Wuji SDK and Wuji Studio support sharing the same device
- Improved log availability and reliability during startup and runtime
- Improved upgrade stability and reduced false upgrade failure reports
2026.03.09
Component Versions
| Component | Version | Update Method |
|---|---|---|
| Wuji SDK | v0.7.0 | pip install --upgrade wuji-sdk |
Key Updates
- Added cross-device merged subscription to receive aggregated data from all connected devices at once
- Added data recording with multi-channel capture, pause/resume, episode switching, and real-time quality monitoring
- Fixed an occasional crash in callback mode
- Fixed an issue where subscribing to multiple data streams simultaneously could result in missing data
- Fixed an issue where some Wuji Glove IMU data streams could not be subscribed
2026.02.14
Component Versions
| Component | Version | Update Method |
|---|---|---|
| Wuji SDK | v0.6.0 | pip install --upgrade wuji-sdk |
Key Updates
- Added
get()/set()APIs for reading and writing device configuration parameters - Added
save_params()to persist parameter changes to device flash - Added SDK/Device logging support, use
set_log_level()to control log level - Added 6-sensor IMU data:
imu_palm(),imu_thumb(),imu_index(),imu_middle(),imu_ring(),imu_pinky() - Added coordinate transform APIs:
tf_static().subscribe()andtf().subscribe() - Added hand tracking data:
tip_poses()(fingertip poses),hand_joint_angles()(21 DoF joint angles),hand_skeleton()(21 hand keypoints) - Added tactile point cloud data:
tactile_point_cloud()for 3D tactile visualization - Positioning quality metric
EmfPose.confidence— indicates EMF pose estimation reliability (0.0 to 1.0)
2026.02.09
Component Versions
| Component | Version | Update Method |
|---|---|---|
| Wuji SDK | v0.5.0 | pip install wuji-sdk |
Key Updates
- Wuji SDK launch: Python development kit for Wuji devices
- Callback subscription support with
subscribe_with_callback() - Async/await support with
recv_async() - IDE auto-completion support
- Data stream subscriptions: tactile matrix, tactile zones, EMF poses
Supported Devices
- Wuji Glove — Smart glove with tactile sensing and motion capture
© 2026 WUJI TECH All Rights Reserved. https://wuji.tech/