TLabel
A Unified Annotation Framework for Cross-Sensor Tactile Manipulation Data
TLabel is the first cross-sensor tactile annotation schema with capability declarations and Compliance Level stratification. It enables heterogeneous tactile sensors — regardless of operating principle — to produce compatible 14-dimensional semantic annotations while preserving their unique strengths.
TL;DR — The Unicode for tactile data: one standard schema, every sensor.
Why TLabel?
Tactile datasets today ship as raw sensor signals without semantic annotations. Each sensor type demands its own ad-hoc processing, and results from different sensors cannot be compared or fused. TLabel addresses this by:
- Standardizing annotations — 14 dimensions covering spatial, mechanical, surface, dynamic, and meta perceptions
- Declaring capabilities — each adapter explicitly states which dimensions it can and cannot annotate
- Stratifying compliance — Compliance Level (L1–L4) ensures every sensor participates at its appropriate information density
- Enabling cross-sensor comparison through a shared output format
Quick Start
Install
pip install tlabel
Load and explore data
import tlabel
# Load tactile data (auto-detects sensor format)
data = tlabel.load("path/to/sensor_data.pkl")
# Or try the built-in demo — no files needed
data = tlabel.demo("gelsight")
# Inspect annotation metadata
print(data.describe())
Interactive annotation (Jupyter)
data.review() # Bilingual annotation panel (Chinese / English)
Export to training formats
data.export("output.json") # JSON / CSV
data.export_ftp1("output.zarr") # FTP-1 Zarr for foundation models
from tlabel.converters import tlabel_to_lerobot
tlabel_to_lerobot("annotations.json", "lerobot_episode/") # LeRobot
CLI
tlabel list # List all registered adapters
tlabel info gelsight # Adapter details & compliance level
tlabel validate data.json # Schema compliance check
Optional dependencies
pip install tlabel[gelsight] # GelSight / DIGIT (.pkl)
pip install tlabel[paxini] # PaXini PXCap (.h5)
pip install tlabel[daimon] # Daimon DM-TacClaw (.parquet)
pip install tlabel[ftp1] # FTP-1 export (zarr)
pip install tlabel[all] # Everything
Schema — 14 Dimensions, 4 Compliance Levels
TLabel defines 14 semantic dimensions with Compliance Levels (L1–L4) indicating annotation completeness:
| Level | Name | Required Fields | Example Sensors |
|---|---|---|---|
| L1 | Basic Tactile | contact, centroid, slip, confidence | Single-point resistive, proximity |
| L2 | Force-Aware | L1 + force_magnitude | Paxini, YCB-Slide, GelSight |
| L3 | Full-Vector | L2 + force_vector [3D] | ToucHD, calibrated DM-TAC |
| L4 | Rich-Semantic | L3 + all optional fields | BioTac, next-gen multimodal |
The 14 dimensions span: contact, contact_centroid, force_magnitude, slip_event, confidence, compliance_level, contact_region, force_vector, torque_vector, slip_velocity, manipulation_phase, texture_class, object_deformation, temperature.
Full dimension spec → docs/tlabel-format.md
Supported Sensors
Dataset Adapters (offline): GelSight/DIGIT (L3) · Daimon DM-TacClaw (L3) · PaXini PXCap (L2) · UniVTAC (L3, legacy *_gsmini and new *_tactile HDF5 layouts) · TacQuad/AnyTouch (L1) · VTouch (L2) · ToucHD-Force/AnyTouch 2 (L3) · YCB-Slide (L2) · SynTouch BioTac (L2) · Tashan TS-F-A (L3) · XELA uSkin/UniTac-NV (L1)
Real-time Adapters (hardware): PaXini GEN3 (L2) · Daimon DM-Tac (L2)
Adding a new sensor takes ~30 min — fork contrib/adapter-template/
Architecture
┌─────────────────────────────────────────────────┐
│ Layer 1: Schema │
│ 14 semantic dimensions + Compliance Level L1-L4│
├─────────────────────────────────────────────────┤
│ Layer 2: Adapters │
│ DataAdapterBase │ SensorAdapterBase │
│ (7 built-in + community-extensible) │
├─────────────────────────────────────────────────┤
│ Layer 3: Downstream │
│ Feature derivation · Augmentation · Export │
│ PredictEngine · FTP-1 · LeRobot · RLDS · ROS2 │
└─────────────────────────────────────────────────┘
LeRobot Integration
TLabel provides bidirectional converters for LeRobot format, enabling seamless integration with the LeRobot ecosystem.
LeRobot → TLabel
Convert LeRobot parquet data to TLabel for annotation and quality assessment:
from tlabel.converters import lerobot_to_tlabel
# Load LeRobot episode and convert to TLabel
data = lerobot_to_tlabel("path/to/lerobot_episode/")
# Review and annotate
data.review() # Interactive bilingual annotation panel
# Export annotated data
data.export("annotated_tlabel.json")
TLabel → LeRobot
Convert TLabel annotations back to LeRobot format for training:
from tlabel.converters import tlabel_to_lerobot
# Convert TLabel annotations to LeRobot parquet format
tlabel_to_lerobot(
"annotated_tlabel.json",
"path/to/lerobot_episode/",
tactile_field="observation.tactile",
)
Complete Example
import tlabel
from tlabel.converters import lerobot_to_tlabel, tlabel_to_lerobot
# 1. Load LeRobot data
lerobot_data = lerobot_to_tlabel("my_robot_episode/")
# 2. Review and annotate (optional)
lerobot_data.review()
# 3. Export to TLabel format for inspection
lerobot_data.export("tlabel_annotations.json")
# 4. Convert back to LeRobot format (with annotations)
tlabel_to_lerobot("tlabel_annotations.json", "my_robot_episode/")
Requirements
pip install tlabel[lerobot] # or: pip install pyarrow
Paper
TLabel: A Unified Annotation Framework for Cross-Sensor Tactile Manipulation Data
Xi Luo, Sheng Wu (Niuxiu Tech)
Submitted to SoftwareX, 2026. Manuscript: SOFTX-S-26-01665
Citation
@software{tlabel2026,
title = {TLabel: A Sensor-Agnostic Tactile Data Annotation Toolkit and Format Standard},
author = {Wu, Sheng and Luo, Xi},
year = {2026},
url = {https://github.com/liesliy/tlabel}
}
Documentation
| Document | Description |
|---|---|
| TLabel Format Spec | Complete annotation schema specification |
| Annotation Spec | Annotation methodology and guidelines |
| Design Document | Core design decisions and architecture |
| 中文文档 | Chinese README |
Contributing
TLabel is designed to be extensible. Add your sensor in ~30 minutes:
- Fork contrib/adapter-template/
- Subclass
DataAdapterBaseorSensorAdapterBase - Submit a PR or publish as a standalone package
See CONTRIBUTING.md for details.
License
MIT © 2026 Niuxiu Tech
TouchLabel AI — Tactile Data Annotation Infrastructure
GitHub ·
PyPI ·
Discord
Niuxiu Tech · Hangzhou, China
Metadata
Release files for tlabel 0.23.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 | |
|---|---|---|---|---|
| tlabel-0.23.1.tar.gz | 293.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tlabel-0.23.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 604.5 kB
Release files / tlabel-0.23.1.tar.gz
| Download URL | tlabel-0.23.1.tar.gz |
|---|---|
| Size | 293.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
eb1b2e6e7b30f374bbf8bfaa65f1a07977c4a5e8335781b56979dbf8e5ac6c1b
|
|
BLAKE2b-256 checksum How to use checksums |
df2dd389a58c4473f38d0f6646012cbccfed704678a5fd24acd8be0d6bc408fd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Release files / tlabel-0.23.1-py3-none-any.whl
| Download URL | tlabel-0.23.1-py3-none-any.whl |
|---|---|
| Size | 311.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
75cf7e15040dafb1ba01ff868268d87d9efd15cef638333bbb154fdafa097986
|
|
BLAKE2b-256 checksum How to use checksums |
4ba0f1ad62911bae68cb7f5ddff172bca941528469c387d13968740bf48b571a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.12
|
Security for tlabel 0.23.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.