AgentFEM-Morph-Lab / README.md
HaomingLuo's picture
Add prescribed rotary base, 24 zones and viewport controls
b5d1a0e verified
|
Raw History Blame Contribute Delete
4.76 kB
metadata
title: AgentFEM Morph Lab
emoji: 🌀
colorFrom: blue
colorTo: green
sdk: static
app_file: index.html
pinned: false
license: apache-2.0
short_description: Design flexible rods with live mechanics and inverse design.
models:
  - HaomingLuo/AgentFEM-Morph-Rod-Surrogates
datasets:
  - HaomingLuo/AgentFEM-Programmable-Soft-Rods
tags:
  - mechanics
  - inverse-design
  - soft-robotics
  - physical-ai

AgentFEM Morph Lab

Drag a target. Sketch a curve. Find a flexible rod that fits.

An English / 中文 interactive mechanics workbench. No installation, account, or GPU required.

All mechanics runs locally in your browser, with no server compute allocation.

Open on AgentFEM Lab ↗ — same live solver and interactions. 如果 HF 内嵌页面无法连接,可使用此官网入口。

  • Reach a point: move the target and optimize 3, 6, 12 or 24 actuation zones.
  • Motorized base: optionally optimize a prescribed base angle together with curvature, or set the angle manually. The default base remains fixed.
  • Draw a shape: sketch from the clamp, or start with a preset curve.
  • Explore branches: solve the upward, downward and straight equilibria of a microforce-driven rod.
  • Play sampled loading states and export the design, controls and computed shape as JSON.

Mechanics

The browser runs a 48-element extensible planar-rod solver in a Web Worker. Inverse design optimizes 3, 6, 12 or 24 bounded piecewise intrinsic curvatures along one continuous rod. Results are computed, not retrieved from a case library. Neural surrogate baselines are available in the linked model repository; this Space uses the mechanics solver.

The optional motor angle is bounded to ±π and prescribed in each equilibrium solve: this is not a free hinge. End forces remain fixed in world coordinates and are transformed into the base frame before solving. Stability is conditional on the motor holding its angle. Playback ramps both the motor angle and curvature from zero. The branch experiment always keeps its original fixed clamp. The 24-zone and motor features extend the browser solver, not the scope of the previously published neural models or datasets.

All coordinates and loads are dimensionless, with reference length L=1 and EA=1. Point/curve design uses χ=0.001 and small end forces fx=0.0003, fy=−0.0001. Curvature controls are bounded to ±2.4. A target may not be reachable with these controls; the displayed error is the actual mismatch.

Playback consists of 91 solved quasi-static states, checked for local stability. It is not physical-time dynamics, contact, or certified continuation between sampled states. The branch experiment solves each selected equilibrium independently; branch selection is not simulated snap-through.

The microforce branch example follows Ye, Piccolroaz & Bigoni, Journal of the Mechanics and Physics of Solids, doi:10.1016/j.jmps.2026.106870, with χ=10⁻⁴, h=0.01 and δ=0.1. Intrinsic curvature is idealized actuation, not a calibrated pneumatic or tendon-driven robot.

Verification

119 existing Python-solver states were independently recomputed by the JavaScript solver. Maximum endpoint discrepancy: 4.32×10⁻⁶ L; maximum residual: 8.43×10⁻¹¹. Eight known-target inverse tests passed, and an unreachable target remained explicitly unmatched. Three microforce loads were checked across the branches. See validation/browser-physics.json.

Browser checks cover target adjustment, curve drawing, playback, branch switching, export, language switching, and narrow-screen overflow. No claim of hardware validation is made.

中文

拖动目标点,或画一条曲线,寻找柔性杆的驱动方案。

网页提供目标匹配、曲线设计与力学分支三个入口,支持中英文切换、加载播放和方案导出。计算直接在浏览器完成,无需安装。

当前采用平面可伸长杆模型,一根连续杆可选择 3、6、12 或 24 个独立驱动分区。默认固定底座,也可启用角度受控的旋转底座,位置始终固定。绘图时从白色底座中心起笔,按住拖动,松开计算。播放展示逐步加载下的平衡状态,不代表真实运动时间。无法匹配的目标会保留实际偏差。详细参数与适用范围可在网页“方法”中查看。

Resources

Code: Apache-2.0. Related dataset: CC BY 4.0.