Turn standalone/index.html into a persistent spring playground panel in this Voyager project. Keep the offline original unchanged. Use the widgets skill and live SDK schemas. Preserve the same visual design, spring calculation, presets, dragging and comparison behavior. Save the widget source in widget.

Persist the current stiffness, damping, mass, preset and release displacement through the Voyager host so they survive closing/reopening the panel. Local controls and Replay must not start agent turns. Add one explicit button, “Render this motion”, which sends the current numeric settings and release displacement as a structured action to this conversation. Show the real delivery receipt; acceptance is not render completion. On that submitted action, render a six-second 1280×720 MP4 of this exact spring return, sampling the original shared spring function at 30fps. Use two identical three-second cycles: the card starts at the chosen release displacement, rests for 0.5s, then returns and settles. Keep the selected preset/values readable. Save both settings JSON and editable rendering source beside the MP4. Do not approximate it with CSS easing.

For now build, inspect and test the widget, then show and pin this one panel. Do not render until I click the button. Store release displacement as a fraction of the stage width/height and use the same fractions in the MP4, documenting the mapping. When slider values differ from every preset, show Custom and clear preset selection. Keep the panel compact and readable; collapse the standalone introduction so the motion and controls are reachable; avoid exposing IDs, implementation details or debug controls. Verify at narrow width and test persistence and structured action payload with intercepted writes before publishing. No external media generation is needed.
