The network was trained on cloth only. Here it solves a volumetric beam without retraining and without any change to the network or its inputs.
Each panel uses the same number of iterations per time step. The dashed box is the converged Newton solution at the same time. Playback is 10 times slower than real time.
Share of the energy decrease of one time step that is still missing after the given number of iterations: (Ek − E*) / (E0 − E*), geometric mean over the run. E* is the Newton minimum of that step. 0 % is converged. Each method runs its own trajectory.
| Case | E·h / (m/Δt²) | LeCO baseline | LeCO, context window 5 | VBD | Block Jacobi, damping 0.5 | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 5 it | 10 it | 30 it | 5 it | 10 it | 30 it | 5 it | 10 it | 30 it | 5 it | 10 it | 30 it | ||
| Cloth sheet (control)the energy it was trained on | – | 8.0 % | 0.3 % | 6e-7 | not run | ||||||||
| Cantilever, E = 10 kPaν 0.3 · beam moves up to 1020 mm | 0.4 | 1.4 % | 7e-6 | 9e-10 | 7e-4 | 3e-6 | 7e-11 | 8e-6 | 8e-11 | 9e-14 | 4.9 % | 0.3 % | 6e-8 |
| Cantilever, E = 100 kPaν 0.3 · beam moves up to 677 mm | 3.9 | 8.4 % | 0.4 % | 4e-8 | 1.3 % | 3e-5 | 3e-10 | 15 % | 2.2 % | 2e-5 | 60 % | 37 % | 5.4 % |
| Cantilever, E = 1 MPaν 0.3 · beam moves up to 111 mm | 39.4 | 26 % | 5.8 % | 8e-4 | 3.6 % | 2.1 % | 9e-7 | 81 % | 66 % | 29 % | 95 % | 90 % | 73 % |
| Cantilever, E = 10 MPaν 0.3 · beam moves up to 10 mm | 393.8 | 79 % | 71 % | 40 % | 54 % | 28 % | 2.4 % | 97 % | 95 % | 87 % | 99 % | 99 % | 96 % |
| Cantilever, E = 100 kPaν 0.45 · beam moves up to 600 mm | 3.9 | 6.6 % | 1.4 % | 3e-6 | 7.2 % | 0.3 % | 1e-7 | 43 % | 19 % | 1.0 % | 80 % | 63 % | 28 % |
| Cantilever, E = 100 kPaν 0.49 · beam moves up to 501 mm | 3.9 | 44 % | 19 % | 1.1 % | 23 % | 6.2 % | 4e-4 | 81 % | 66 % | 31 % | 95 % | 91 % | 73 % |
| Twist 90°, E = 100 kPaν 0.3 · beam moves up to 0 mm | 3.9 | 10 % | 0.3 % | 2e-8 | 1.7 % | 2e-5 | 3e-10 | 16 % | 2.6 % | 2e-5 | 61 % | 39 % | 6.1 % |
| Twist 90°, E = 1 MPaν 0.3 · beam moves up to 0 mm | 39.4 | 24 % | 3.3 % | 1e-4 | 4.9 % | 0.2 % | 1e-7 | 77 % | 61 % | 18 % | 91 % | 86 % | 67 % |
Mean vertex distance to the converged Newton trajectory, in mm, averaged over the 150 steps. The beam is 480 mm long.
| Case | E·h / (m/Δt²) | LeCO baseline | LeCO, context window 5 | VBD | Block Jacobi, damping 0.5 | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 5 it | 10 it | 30 it | 5 it | 10 it | 30 it | 5 it | 10 it | 30 it | 5 it | 10 it | 30 it | ||
| Cantilever, E = 10 kPaν 0.3 · beam moves up to 1020 mm | 0.4 | 11.6 | 1.0 | <0.1 | 0.5 | <0.1 | <0.1 | 0.3 | <0.1 | <0.1 | 41.2 | 8.9 | <0.1 |
| Cantilever, E = 100 kPaν 0.3 · beam moves up to 677 mm | 3.9 | 23.8 | 4.7 | <0.1 | 2.0 | 0.1 | <0.1 | 46.2 | 15.7 | 0.4 | 116.1 | 83.8 | 26.2 |
| Cantilever, E = 1 MPaν 0.3 · beam moves up to 111 mm | 39.4 | 14.0 | 5.6 | 0.6 | 0.9 | 3.1 | <0.1 | 21.5 | 22.9 | 15.3 | 18.1 | 19.0 | 22.7 |
| Cantilever, E = 10 MPaν 0.3 · beam moves up to 10 mm | 393.8 | 4.4 | 2.5 | 1.3 | 1.3 | 1.0 | 0.4 | 1.4 | 1.7 | 1.6 | 1.8 | 1.4 | 1.6 |
| Cantilever, E = 100 kPaν 0.45 · beam moves up to 600 mm | 3.9 | 8.3 | 5.9 | 0.1 | 5.2 | 1.6 | <0.1 | 75.0 | 42.6 | 8.2 | 122.3 | 103.7 | 55.4 |
| Cantilever, E = 100 kPaν 0.49 · beam moves up to 501 mm | 3.9 | 55.3 | 24.6 | 5.2 | 11.4 | 6.5 | 0.3 | 105.0 | 88.2 | 48.5 | 121.2 | 114.9 | 96.1 |
| Twist 90°, E = 100 kPaν 0.3 · beam moves up to 0 mm | 3.9 | 3.9 | 0.5 | <0.1 | 0.8 | <0.1 | <0.1 | 6.7 | 2.8 | 0.1 | 7.6 | 8.3 | 4.4 |
| Twist 90°, E = 1 MPaν 0.3 · beam moves up to 0 mm | 39.4 | 0.3 | 0.1 | <0.1 | 0.1 | <0.1 | <0.1 | 0.8 | 0.6 | 0.3 | 1.9 | 1.2 | 0.7 |
Cuboid 0.48 × 0.12 × 0.12 m, 24 × 6 × 6 cells of 6 tets, density 1000 kg/m³, gravity, time step 1/300 s (the training time step). Energy: inertia + gravity + stable Neo-Hookean. No contact, no DAT. Cantilever: one end face is fixed. Twist: both end faces are held and one turns.
Input per vertex: gradient, previous gradient, last update. Graph: the tet edges (11.5 neighbours per vertex; cloth has about 6). The loop is the one of SolverLearned.step; the step scale carries over between time steps. Float32 network, float64 energy.
Newton: projected Newton with line search, converged (reference). VBD: coloured Gauss-Seidel with 3 × 3 vertex blocks, 8 colours, no acceleration. Block Jacobi: the same blocks for all vertices at once. These are my own plain implementations for this test.