AgentFEM · Morph Rod Surrogates
New: multi-zone residual surrogate — a separate 3/6/12-zone actuation model with 8-zone holdout, downloadable weights and a runnable predictor. Original branch-conditioned models below are retained unchanged.
Predict a flexible rod's shape without averaging its equilibrium branches.
Two small PyTorch MLP baselines, a conservative rod solver, and bounded inverse design examples. The branch-conditioned model takes the requested coarse branch as an input; it does not independently discover branches.
Dataset · AgentFEM · Equations & schema
Results
| Method | Test centerline RMSE / L | Mean endpoint error / L |
|---|---|---|
| Ordinary MLP, no branch input | 0.27097 | 0.26332 |
| 1-nearest-neighbor, branch provided | 0.13899 | 0.15082 |
| MLP, branch provided | 0.00661 | 0.00784 |
The ordinary model has deliberately ambiguous inputs on the multi-branch family; the comparison demonstrates why branch information matters, not a novel network architecture. The branch-conditioned model's stiffness-OOD centerline RMSE is 0.00941 L. Raw predictions are approximations, not equilibrium or stability certificates.
Run
Download this repository and install requirements.txt, then:
python src/inference.py
import sys
sys.path.insert(0, "src")
from inference import predict
c = dict(chi=.0001, fx=-.016428, fy=0., moment=0., h=.01,
delta=.1, k1=0., k2=0., k3=0.)
result = predict(c, branch="down", correct=True)
print(result["tip"], result["residual"], result["stability"])
correct=True initializes the released mechanics solver from the neural output.
Always inspect convergence and the returned branch before accepting a design.
In 102 sampled held-out cases, correction converged and preserved the intended
coarse branch; this is not a universal guarantee.
To design a bounded three-zone intrinsic-curvature rod for an endpoint or complete
centerline, see src/inverse.py. Twelve known-reachable test targets were recovered
with maximum error 6.10e-6 L; 25 equilibrium samples along each proposed curvature
ramp were locally stable. Unsampled intervals are not certified. This inverse
example uses numerical optimization plus mechanics, not the neural model.
Model details
- 8 normalized physical features; branch model adds a 3-way coarse-branch encoding.
- Tanh MLP, hidden widths 96/96, 48 angle outputs. No graph network or neural operator claim.
- Safetensors weights, training-only normalization, validation-selected checkpoint.
- Seed14, Adam, 401 epochs. Reports include grouped test and stiffness-OOD results.
- 126 training, 27 validation and 27 test scenes; 36 separate stiffness-OOD scenes.
- Stable and unstable equilibrium samples are both present in training.
Files: models/, src/rod.py, src/train.py, src/inference.py,
src/inverse.py, reports/, and SCHEMA.md.
To retrain, download the linked dataset repository and run its reproduction steps.
中文
这是可编程柔性杆的第一版代理模型与计算工具,包含普通 MLP、指定分支的 MLP、 力学求解器及逆向设计示例。模型预测 48 个转角自由度,再由运动学关系恢复中心线。
给定分支的模型在场景留出测试中,中心线均方根误差为杆长的约 **0.66%**, 端点平均误差约 **0.78%**。分支标签是输入条件,不是模型自己判断出的答案。 需要平衡与稳定性结果时,应开启力学校正,并检查收敛结果。
当前针对平面、准静态、无接触杆;不宣称真实机器人控制或跳跃动力学。
Attribution
Version 0.1.0, Haoming Luo / AgentFEM Morph Lab (2026). Code and weights: Apache-2.0; generated figures CC BY 4.0. Microforce theory: Ye, Piccolroaz & Bigoni, DOI 10.1016/j.jmps.2026.106870.
