Tactile-JEPA: Xela / Sparsh-skin
One shared JEPA pretrain (seed 3407) and the selected downstream checkpoint(s) from the main Tactile-JEPA protocol. No baselines or masking ablations are included.
368 taxels, three magnetic channels per taxel; 10-frame encoder input.
Selected checkpoints
| Task | Metric | Selected checkpoint value | Head seed |
|---|---|---|---|
| force | Force RMSE | 0.1246741693 (12.4674 cN) | 17 |
| object | Object top-1 accuracy | 83.735521% | 17 |
| pose | Orientation RMSE | 5.3932287653 degrees | 17 |
These are individual checkpoints selected using the saved test metrics, not the multi-seed means reported in the paper. Selection from test results makes these scores descriptive of the chosen release; they are not a fresh, unbiased evaluation. The within-run checkpoint is the saved checkpoint referenced by the evaluation artifact (best validation checkpoint).
The shared pretrain is selected by the sum of ranks across the best available force, object and orientation heads, with equal weight per task. Seed 3407 has ranks 1/2/2 (sum 5), seed 17 has 2/3/1 (sum 6), seed 42 has 3/1/3 (sum 7). Each released head is the best head for seed 3407 on its task; pose is selected by orientation RMSE.
The pose checkpoint also has x@2cm = 95.949728%, y@2cm = 94.036232%, and theta@5deg = 73.635870%.
Normalization: downstream Xela checkpoints contain task-specific model_encoder.xela_mean and model_encoder.xela_std buffers. Preserve these by loading the complete downstream state after constructing the task module. All remaining encoder tensors were checked against the shared pretrain. Do not overwrite the task buffers with the pretrain buffers.
Files
pretrain/model.ckpt: original SSL checkpoint, including context encoder, EMA target encoder, predictor and saved training state.pretrain/encoder.safetensors: EMA target encoder weights;target_encoder.prefix removed.pretrain/training_config.yaml: saved pretraining configuration with server paths replaced by portable placeholders.downstream/<task>/model.ckpt: original evaluated downstream checkpoint.downstream/<task>/model.safetensors: complete downstream model state; original parameter names preserved.downstream/<task>/training_config.yaml: saved downstream configuration.downstream/<task>/metrics.json: metrics, seeds, checkpoint hashes, source run identifiers and encoder-pair verification.SHA256SUMS: checksums for the released files.
Download and load weights
from huggingface_hub import snapshot_download
from safetensors.torch import load_file
root = snapshot_download("Tactile-JEPA/tactile-jepa-xela")
encoder_state = load_file(f"{root}/pretrain/encoder.safetensors")
task_state = load_file(f"{root}/downstream/force/model.safetensors")
# Construct the matching architecture using the linked project and saved config:
# encoder.load_state_dict(encoder_state, strict=True)
# task_module.load_state_dict(task_state, strict=True)
# task_module.eval()
These are project-native PyTorch checkpoints, not Transformers AutoModel repositories. Use the linked code and matching architecture. Saved configs may contain Hydra runtime interpolation and data-dependent fields populated by the dataset loaders; they are training snapshots, not standalone inference applications. Set dataset paths and preserve the preprocessing, sensor ordering and normalization. Raw .ckpt files retain the original project checkpoint format.
Provenance
Selection source: notebooks/shared_experiment_queue_recent_20260910_timeline_and_results.executed.ipynb, supplied snapshot timestamp 2026-09-16T07:22:22+03:00. The source notebook was retrieved on 2026-09-23. Weights were paired using the downstream training configuration and verified by tensor comparison. The safetensors exports preserve tensor values; original checkpoint SHA-256 hashes are recorded. No training or dataset files are included.
License follows the source project: CC BY-NC 4.0. See LICENSE.md.