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.25.tar.gz (11.5 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.25-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for rigidformer-0.0.25.tar.gz
Algorithm Hash digest
SHA256 ef74b0ea25fec7f27971fd9340af0ac33cc207c3efa0cdc8c4df9c0f2bc71d98
MD5 edfb2bb86094c69061668df3585abc43
BLAKE2b-256 7851a4db8166477e39743618502b725d29ac4cf5ec8f9228ef1578575ad9dc14

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for rigidformer-0.0.25-py3-none-any.whl
Algorithm Hash digest
SHA256 251fd6e3ce65c4ceb45c390804d31587c85336de85382a8e947d1f50a22a9fae
MD5 be9268439a08879b1f153a93a281c2d3
BLAKE2b-256 9fd1a645630c86aa8f953af9092dcbad6b72204b0f5e496e1cc7e83dc14a12b7

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