Skip to main content

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, RigidformerRolloutWrapper

# 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

wrapper = RigidformerRolloutWrapper(model)

rollout_positions = wrapper(
    delta_times = delta_times,
    vertex_properties = vertex_properties,
    object_positions = [object_pos_prev, object_pos],
    num_steps = 10
)

# 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


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.26.tar.gz (12.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rigidformer-0.0.26-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file rigidformer-0.0.26.tar.gz.

File metadata

  • Download URL: rigidformer-0.0.26.tar.gz
  • Upload date:
  • Size: 12.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.17

File hashes

Hashes for rigidformer-0.0.26.tar.gz
Algorithm Hash digest
SHA256 f3a11f6c3c512c6ee9173a7dbdfc38469e2f70154faf4bcb8855fac07e18fff6
MD5 76754e5141bf5e58e790509074a3e2fc
BLAKE2b-256 f35ff31389ff69b14b149d284952e85806ecb5368f2bedae31f26d3742ef79d8

See more details on using hashes here.

File details

Details for the file rigidformer-0.0.26-py3-none-any.whl.

File metadata

File hashes

Hashes for rigidformer-0.0.26-py3-none-any.whl
Algorithm Hash digest
SHA256 ba81de8c53fad535e6d81b2011f7c2e2e7de2061f478bf966a74e8cf34e88515
MD5 07726fed850eabb772c8a72d3fb8ae39
BLAKE2b-256 004b8b502d00a204f02b78f9037817dbd8556e62d7dac2b9829ec5572a7291bb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page