Implementation of Rigidformer
Project description
Rigidformer (wip)
Implementation of RigidFormer, Learning Rigid Dynamics using Transformers, out of MIT and Meta
Install
$ pip install rigidformer
Usage
import torch
from rigidformer import Rigidformer
# instantiate model
model = Rigidformer(
dim = 256,
dim_head = 192,
heads = 8,
object_self_attn_depth = 4,
anchor_cross_attn_depth = 4,
num_anchors = 4,
object_hidden_layers = (0, 1, 2, 4),
vertex_properties_dim = 3
)
# mock inputs
delta_times = torch.randn(2)
vertex_properties = torch.randn(2, 4, 3) # (batch, num_objects, d_attr)
object_pos = torch.randn(2, 4, 64, 3) # (batch, num_objects, num_points, 3)
object_pos_prev = torch.randn(2, 4, 64, 3)
object_pos_next = torch.randn(2, 4, 64, 3)
# training
loss, loss_breakdown = model(
delta_times = delta_times,
vertex_properties = vertex_properties,
object_pos = object_pos,
object_pos_prev = object_pos_prev,
object_pos_next = object_pos_next # target
)
loss.backward()
# if `object_pos_next` not passed in, will return predictions
pred = model(
delta_times = delta_times,
vertex_properties = vertex_properties,
object_pos = object_pos,
object_pos_prev = object_pos_prev,
)
assert pred.object_pos_next.shape == object_pos.shape
# rollout multiple steps with a wrapper
from rigidformer import RigidformerRolloutWrapper
wrapper = RigidformerRolloutWrapper(model)
rollout_positions = wrapper(
num_steps = 10,
delta_times = delta_times,
vertex_properties = vertex_properties,
object_positions = [object_pos_prev, object_pos]
)
# rollout_positions is a list of length 12 tensors of shape (batch, num_objects, num_points, 3)
# includes the 2 initial positions
Citations
@misc{dou2026rigidformerlearningrigiddynamics,
title = {RigidFormer: Learning Rigid Dynamics using Transformers},
author = {Zhiyang Dou and Minghao Guo and Haixu Wu and Doug Roble and Tuur Stuyck and Wojciech Matusik},
year = {2026},
eprint = {2605.09196},
archivePrefix = {arXiv},
primaryClass = {cs.CV},
url = {https://arxiv.org/abs/2605.09196},
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
rigidformer-0.0.28.tar.gz
(12.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rigidformer-0.0.28.tar.gz.
File metadata
- Download URL: rigidformer-0.0.28.tar.gz
- Upload date:
- Size: 12.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
51368b95f7d97e4bcc5bd80ceb632e9565e6a303dacdb3333b292421f5b8ece4
|
|
| MD5 |
f81c9ac36d4b9a59df52b921183c15b0
|
|
| BLAKE2b-256 |
d90858559cbc0ad0790375a3fb9dc7d814f11286c8a26b9e1e593fbb6b14eeae
|
File details
Details for the file rigidformer-0.0.28-py3-none-any.whl.
File metadata
- Download URL: rigidformer-0.0.28-py3-none-any.whl
- Upload date:
- Size: 11.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25735a9dc8f6c9fcf68402a4487d063c9e7629af79f3789c4df34b8e79a2a92c
|
|
| MD5 |
033717456ebbf10a5f324e75d2f2f427
|
|
| BLAKE2b-256 |
6b5ff082c9488a9b68c525fa22375a22b430e20d67846505f3ed68a3e514eadb
|