A
dual-rate
2D rigid-body physics predictor. A frozen, truncated
Qwen3.5-0.8B
semantic encoder (first 12 of 24 layers + 8 readout tokens) reads the scene text
(header + recent frames) and produces a latent that is
refreshed only every K=8
frames
; between refreshes a fast
38.9M flow-matching expert
(per-object tokens,
cross/self-attention, 10 Euler steps) advances the numeric object state
[px, py, vx, vy, angle, angular_velocity]
every frame
. The slow semantic path
is the "slow rate", the per-frame flow head is the "fast rate".
🏋️
Checkpoints:
ckpt_v1_60k.pt
(final champion, step 60k) ·
ckpt_v1_45k.pt
(earlier) ·
ckpt_v1_10k_ood.pt
(10k-step checkpoint — best mid-training OOD before LR-decay recovery; see the checkpoint-trajectory table in
results/RESULTS.md
)
📐
Semantic encoder:
Qwen/Qwen3.5-0.8B
(downloaded from the Hub; its weights are
not
stored in these checkpoints — the files hold only the expert, projection, and
conditioning weights + config + normalizer).
The stale latent is nearly free:
refreshing the Qwen latent 8× less often costs ~1%
accuracy. The slow semantic path can tick at ⅛ rate; all per-frame precision lives in the
fast flow head.
Honest caveats
Long rollouts drift:
short horizons are excellent (~7.8 px RMS at step 10), but beyond
~30 steps chaotic many-body dynamics + error compounding dominate (no rollout-aware training
yet — the obvious v2 lever).
Trained on 54k val-derived scenes (17× smaller than the baseline's 900k train split) yet wins.
OOD generalization dipped mid-training (high LR) and recovered via cosine decay — don't
early-stop on seen-type metrics.
import torch
from transformers import AutoTokenizer
from huggingface_hub import hf_hub_download
# from your copy of src/dualrate/from dualrate.config import DualRateConfig
from dualrate.model import DualRatePhysicsModel
from dualrate.normalization import StateNormalizer
ckpt = torch.load(hf_hub_download("AlexWortega/dualrate-physics", "ckpt_v1_60k.pt"),
map_location="cpu", weights_only=False)
cfg = DualRateConfig.from_dict(ckpt["config"])
norm = StateNormalizer(**{k: ckpt["normalizer"][k]
for k in ("state_offset", "state_scale", "delta_scale")})
tok = AutoTokenizer.from_pretrained(cfg.model_name)
model = DualRatePhysicsModel(cfg, readout_token_id=tok.pad_token_id)
missing, unexpected = model.load_state_dict(ckpt["model"], strict=False)
# `semantic.lm.*` keys are "missing" on purpose — they come from the Qwen3.5 download.
model.eval().cuda() # requires a CUDA GPU: Qwen3.5 linear-attention uses Triton kernels
⚠️ A CUDA GPU is required for inference: the Qwen3.5 linear-attention layers use
flash-linear-attention Triton kernels that have no CPU backend.
Runs of AlexWortega dualrate-physics on huggingface.co
0
Total runs
0
24-hour runs
0
3-day runs
0
7-day runs
0
30-day runs
More Information About dualrate-physics huggingface.co Model
dualrate-physics huggingface.co is an AI model on huggingface.co that provides dualrate-physics's model effect (), which can be used instantly with this AlexWortega dualrate-physics model. huggingface.co supports a free trial of the dualrate-physics model, and also provides paid use of the dualrate-physics. Support call dualrate-physics model through api, including Node.js, Python, http.
dualrate-physics huggingface.co is an online trial and call api platform, which integrates dualrate-physics's modeling effects, including api services, and provides a free online trial of dualrate-physics, you can try dualrate-physics online for free by clicking the link below.
AlexWortega dualrate-physics online free url in huggingface.co:
dualrate-physics is an open source model from GitHub that offers a free installation service, and any user can find dualrate-physics on GitHub to install. At the same time, huggingface.co provides the effect of dualrate-physics install, users can directly use dualrate-physics installed effect in huggingface.co for debugging and trial. It also supports api for free installation.