Downloads · 30 days
6
20% of all-time downloads
kingJulio/tactile-1-v1
tactile-1-v1 is a feature extraction model from kingJulio. Use it when you need embeddings to search or compare text. The card lists the license as apache-2.0.
A cross-modal predictor that predicts tactile embeddings from visual observations using frozen pretrained encoders.
Downloads · 30 days
6
20% of all-time downloads
All-time downloads
30
Public
Repo size
400 MB
Likes
0
Public
Click a slice to open those files.
.tar400 MB · 100%
From the Hugging Face model README
A cross-modal predictor that predicts tactile embeddings from visual observations using frozen pretrained encoders.
| Component | Model | Params | Status |
|---|---|---|---|
| Visual encoder | DINOv2-Small (ViT-S/14) | 22M | Frozen |
| Tactile encoder | Sparsh-DINO (ViT-B/16, 6ch) | 86M | Frozen |
| Predictor | CrossAttnPredictor (6-layer, 384-dim) | 16M | Trained |
| Action encoder | MLP (7→384) | 0.15M | Initialized (not yet trained) |
| Total | 125M | 16M trainable |
| Metric | Value |
|---|---|
| Val prediction loss (L2OO) | 0.0108 |
| Train loss (converged) | 0.0112 |
The model converged rapidly — most learning happened in epoch 0 (loss: 0.52 → 0.011).
import torch
from tactile_jepa.encoders import FrozenDINOv2, FrozenSparsh
from tactile_jepa.architectures import CrossAttnPredictor, ActionEncoder
from tactile_jepa.cross_modal_jepa import CrossModalJEPA
from tactile_jepa.losses import CrossModalLoss
# Build model
model = CrossModalJEPA(
visual_encoder=FrozenDINOv2(),
tactile_encoder=FrozenSparsh(),
predictor=CrossAttnPredictor(dim=384, depth=6, num_heads=6, num_queries=16,
visual_dim=384, output_dim=768, dropout=0.1),
action_encoder=ActionEncoder(action_dim=7, hidden_dim=384),
predcost=CrossModalLoss(target_dim=768),
).to("cuda")
# Load checkpoint
ckpt = torch.load("best.pth.tar", map_location="cuda", weights_only=False)
model.load_state_dict(ckpt["model_state_dict"], strict=False)
model.eval()
# Predict tactile from visual input
# visual_obs: [B, T, 3, 224, 224] ImageNet-normalized
predicted_tactile = model.predict_tactile(visual_obs) # [B, N_queries, 768]
best.pth.tar — Best checkpoint (epoch 0, val_pred=0.0108), 382MBconfig.yaml — Training configuration@software{tactile_jepa_2026,
title={Tactile-JEPA: Cross-Modal Visual-Tactile World Model},
author={Julian Saks},
year={2026},
url={https://github.com/kingulio8238/tactile_jepa}
}