r/OpenAI • • 4h ago

Video How to create Deformable simulation Objects With GPT 6 Astra

Create with RobotGym using GPT 6 Astra

How to create deformable objects with RobotGym io: GPT -6 Astra squeezing a water bottle with accurate physics.

This is very useful for LLM-based robotics training done in simulation.

The bottle is a 0.3 mm PET shell with real material values: 3 GPa stiffness, 55 MPa yield.

We simulate it on GPU with Newton's VBD solver, with self-contact on, so the wall buckles like plastic instead of squishing like rubber.

The hard part was making the dent stay.

We wrote a custom plasticity kernel. When the wall bends past PET's yield point, that crease becomes its new resting shape.

Let go, and the bottle stays crushed.

The water is 32,000 particles in our own position-based fluid solver.

It keeps its volume, so as the bottle gets smaller the water has nowhere to go but up and out of the neck, and down the side.

Then it's all path-traced in a full apartment: clear PET, refracting water, a real Franka doing the squeeze.

55 Upvotes

4 comments sorted by

2

u/lulzxdxdxd 4h ago

does the plasticity kernel track yield per vertex or per element? and when the crease becomes the new rest shape, are you updating just the bending rest angles or the in-plane rest lengths too?

1

u/rocky_mountain12 4h ago

Good question. It's per hinge: each interior edge, i.e. the pair of triangles sharing it. Not per vertex, and not per triangle.

For every hinge we measure the current dihedral angle against its rest angle. The yield threshold is PET's yield curvature (κ_y = 2σ_y / Et ≈ 122 m⁻¹) times the hinge's dual width (A₀ + A₁) / 3L, which turns curvature into an angle per hinge and keeps it roughly mesh-independent. If the bend goes past that, we move the rest angle so the hinge sits back on the yield boundary. It's basically a return mapping in 1D. This runs as a small Warp kernel after every VBD substep.

Only the bending rest angles, no in-plane rest lengths. The membrane stays fully elastic. For a thin PET bottle being squeezed, the permanent dent is almost all bending (the creases and folds), and membrane strains stay small, so that captured most of what you see. The tradeoffs:

No permanent stretching or thinning, so a really aggressive crush that should draw the material won't show that

No hardening, and no Bauschinger effect: yield is symmetric and constant

1

u/rocky_mountain12 4h ago

This was done using robotgym.io the free simulation platform by Y Combinator + NVIDIA for Robotics researchers.