Skip to content

feat(tlabel): add TLabel format reader/writer#40

Open
liesliy wants to merge 5 commits into
arpitg1304:mainfrom
liesliy:add-tlabel-format
Open

feat(tlabel): add TLabel format reader/writer#40
liesliy wants to merge 5 commits into
arpitg1304:mainfrom
liesliy:add-tlabel-format

Conversation

@liesliy

@liesliy liesliy commented Jul 24, 2026

Copy link
Copy Markdown

What

Adds read/write support for TLabel tactile annotation files as a Forge format.

TLabel is an open schema for tactile sensor data (GelSight, PaXini, Daimon, etc.) with a 14-dimensional semantic annotation standard. This PR allows users to:

# Convert: LeRobot + tactile labels → merged dataset
forge convert /data/lerobot --tactile-annotations /data/tactile/ --tactile-format tlabel -o /data/merged --output-format lerobot-v3

# Inspect a .tlabel file
forge inspect /data/episode_001.tlabel --format tlabel

Changes

  • forge/formats/tlabel/reader.py — reads .tlabel JSON files into Forge Episodes (tactile dims stored in Frame.extras["tlabel.schema_v2"])
  • forge/formats/tlabel/writer.py — writes Forge Episodes back to .tlabel format
  • forge/formats/__init__.py — registers the new format
  • tests/test_tlabel.py — reader/writer/roundtrip tests

Design Notes

  • No hard dependency on tlabel package — the reader/writer work directly with .tlabel JSON files. The tlabel PyPI package is only needed for schema validation.
  • Tactile data in Frame.extras — Forge's canonical fields (state/action/images) are for proprioception. Tactile sensing goes to extras["tlabel.*"], keeping the core model clean.
  • Zero-impact if unused — wrapped in try/except ImportError like other formats.

Context

I opened Issue #39 requesting this feature. Happy to submit the implementation directly to save you time.

If this doesn't fit the project's direction or needs changes, no worries at all — just let me know and I'll adjust. 😊

cc @arpitg1304

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant