ImprintX Tactile SDK
High-performance Python SDK for Touch Glove 5-channel tactile data acquisition, RTC time synchronization, real-time 3D displacement/force physical inference (ONNX Runtime / OpenVINO), and H.265 video recording with microsecond-level timestamps.
Powered by a native Rust core with high-efficiency PyO3 bindings.
⚡ Quick Start
Installation
pip install imprintx
High-Level One-Line APIs 🚀
import imprintx
# 1. 实时流式控制台输出
imprintx.stream()
# 2. GUI 网格图形界面展示(支持模型推理与 'b' 键实时去皮标定)
imprintx.show_gui(model="dense_3ch.onnx", device="cuda")
# 3. 抓取并保存 5 通道快照图片
imprintx.save_image(output_dir="./snapshots")
# 4. 录制 H.265 MP4 视频与微秒级时间戳 JSON
imprintx.record_video(output_path="recording.mp4", duration=5.0)
📖 Key Python APIs
1. High-Level Functions
-
imprintx.stream(port=None, callback=None, duration=None): Connects to device and streams real-time tactile data to console or custom callback function. -
imprintx.show_gui(port=None, model=None, device="auto"): Opens an OpenCV 2x3 grid window displaying 5-channel real-time tactile images, displacement, and force fields. Press'q'to exit or'b'to calibrate zero point. -
imprintx.save_image(port=None, output_dir=".", prefix="tactile", save_grid=True): Captures a 5-channel tactile snapshot and saves channel images (*_ch0.png...*_ch4.png) and a combined grid image (*_grid.png) tooutput_dir. -
imprintx.record_video(port=None, output_path="output_h265.mp4", duration=5.0, fps=30.0): Records 5-channel H.265 grid video and exports microsecond-level aligned timestamp JSON metadata. -
imprintx.list_ports(): Scans and returns a list of available serial port paths. -
imprintx.load_video_timestamps(path: str): Loads and parses recorded video timestamp metadata from.jsonfiles.
2. Low-Level Core API (TouchGlove Class)
For custom control loops and fine-grained integration:
from imprintx import TouchGlove, list_ports
import time
ports = list_ports()
with TouchGlove(port=ports[0]) as glove:
print("Device SN:", glove.get_sn())
glove.sync_rtc() # Synchronize host clock with hardware RTC
glove.start()
while True:
batch = glove.poll()
for frame in batch:
print(f"Ch {frame.channel} | Seq: {frame.seq_id} | Timestamp: {frame.timestamp_us} us | Image: {frame.image.shape}")
time.sleep(0.01)
TouchGlove Methods
glove.open(port)/glove.close(): Connection management.glove.start()/glove.stop(): Streaming control.glove.poll() -> FrameBatch: Fetch latest 5-channel frame batch.glove.calibrate_baseline(duration_sec=1.0): Recalibrate zero point.glove.get_dense_fields(): Get 5-channel 3D displacement/force fields(5, 32, 32, 3).glove.get_sn()/glove.set_sn(sn): Read / write hardware serial number.glove.sync_rtc()/glove.query_rtc(): RTC clock synchronization.glove.start_recording(output_path)/glove.stop_recording(): Video recording control.
📜 License
Proprietary / All Rights Reserved.
Metadata
Release files for imprintx 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| imprintx-0.2.1.tar.gz | 68.4 kB | Without provenance | Details for imprintx-0.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| imprintx-0.2.1-cp38-abi3-manylinux_2_34_x86_64.whl | CPython 3.8 | abi3 | Linux glibc 2.34+ x86-64 | Details for imprintx-0.2.1-cp38-abi3-manylinux_2_34_x86_64.whl |
Total release size: 57.3 MB
Release files / imprintx-0.2.1.tar.gz
| Download URL | imprintx-0.2.1.tar.gz |
|---|---|
| Size | 68.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
61afba2d6b15f2d99a9df5d93b488ca44bffe2032ec32d8a7891ec9d15975246
|
|
BLAKE2b-256 checksum How to use checksums |
32d7b22d6ee97f60b4ee6c2b213e79f4449fe962697e5b2e741b97901c61244f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|
Release files / imprintx-0.2.1-cp38-abi3-manylinux_2_34_x86_64.whl
| Download URL | imprintx-0.2.1-cp38-abi3-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 57.2 MB |
| Tags | CPython 3.8 Linux glibc 2.34+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
a0a69d21f74889ad43a92eafef04bef53d9983c2fdb62b65d7061188936d6fec
|
|
BLAKE2b-256 checksum How to use checksums |
2445b2985da66d36078a86964bac110172a34f4442b4a0da65e97184ca847445
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.12
|
Security for imprintx 0.2.1
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.