Φferromotion · textbook · chapter 11 rust → wasm · on-device
Not every robot is rigid links and hinges. A soft arm has no joints at all — it curves continuously along its whole length, and to control it you first have to describe that curve. This page bends a real compliant rod on your device and checks its shape against beam theory.
A rigid arm has a handful of joint angles, and its pose is those numbers. A soft, continuum arm — a tentacle, a growing vine-robot, a silicone finger — bends everywhere. In principle it has infinitely many degrees of freedom. So the first question is not how to control it but how to even write down its configuration with a finite handful of numbers.
The trick is to describe the rod by its strain along the arc length — here, its curvature — rather than by where each point sits. Split the rod into short sections of constant curvature; a few curvatures then determine the whole shape, recovered by integrating along the body. It is the soft-robot analogue of joint angles: a compact handle on a continuous thing.
Below is a compliant arm clamped at the wall. Drag the load at its tip and watch the entire body curve to balance it; adjust its stiffness.
the blue ring is where Euler-Bernoulli beam theory predicts the tip lands — the bent arm meets it for small loads
For a gentle load the soft arm is nothing exotic: it is a cantilever beam, and it obeys the oldest result in the book — the tip deflects by δ = F L³ / (3 EI). The blue marker is that prediction; the arm's tip sits on it. On load, this page hung a small weight and compared the strain model to the formula:
| tip deflection — strain model, on device | … |
| Euler-Bernoulli δ = F L³ / (3 EI) | … |
| agreement | … |
| verdict | … |
The strain description is not a fudge — in the small-deflection limit it reproduces beam theory exactly, and past that limit it keeps working where the linear formula (cube of the length, small angles) breaks down. Pull the load hard and the arm curls well beyond what δ = FL³/3EI would say; the strain model still holds because it never assumed the deflection was small.
Trade joint angles for a strain field and a continuous, infinite-DOF body becomes a finite object you can simulate, load, and control — reducing, when it must, to the beam theory engineers have trusted for two centuries.
This is what makes soft robots tractable rather than mystifying. The strain-based model unifies the compliant and the rigid — a stiff link is just a section that barely strains — so the same machinery describes a steel arm and a silicone tentacle. It is a distinct member of this series: where the rigid-body chapters found the one quantity that governs a jointed machine, this one finds it for a machine with no joints at all.
What you just drove: the CosseratRod from ferromotion-core — a planar piecewise-constant-strain rod — compiled to WebAssembly, the same code the native tools link against. Equilibrium under load is the minimizer of bending energy minus load work, found by the analytic strain gradient; nothing precomputed, every drag re-solves it.
Verified in the library: the cantilever tip deflection matches Euler-Bernoulli δ=FL³/(3EI) to under 2%; a pure moment bends it to a uniform circular arc of radius EI/M; deflection scales as 1/EI; arc length is preserved; the analytic strain gradient matches finite differences. Each is a test in cargo test, not a claim in prose. See also ch.1 · ch.3 · ch.8 · ch.10 · the full textbook.
Institute for Physical AI · the Rust library · crates.io