Interactive mass-spring physics simulation — nodes repel each other (Coulomb) and are held by Hooke springs on defined edges. Click and drag to pin and move nodes. Settles naturally from a stacked initial position.
| Field | Type | |
|---|---|---|
| nodes | array. Array of {id, label} objects. Defaults to 6 labelled nodes. | optional |
| edges | array. Array of {a, b} index pairs for spring connections. | optional |
| colour | string. Node and edge accent colour. Default | optional |
| bg | string. Background colour. Default | optional |
| height | integer. Canvas height px. Default 420. | optional |
| rest_length | integer. Spring rest length px. Default 110. | optional |
{
"type": "spring_nodes"
}
{
"identifier": "urn:air:a2uicatalog.ai:atom:spring_nodes",
"displayName": "Spring Nodes",
"type": "application/vnd.a2ui.atom+json",
"url": "https://a2uicatalog.ai/atoms/spring_nodes",
"capabilities": [
"apps-script-web",
"web",
"meet-stage"
],
"description": "Interactive mass-spring physics simulation \u2014 nodes repel each other (Coulomb) and are held by Hooke springs on defined edges. Click and drag to pin and move nodes. Settles naturally from a stacked initial position.",
"representativeQueries": [
"show a interactive mass-spring physics graph with drag-to-pin nodes",
"interactive mass-spring physics simulation \u2014 nodes repel each other (coulomb) and are held by hooke",
"render a spring nodes"
]
}
The renderer is open source. Deploy your own instance in 4 commands — you own the URL, no dependency on the demo endpoint.
git clone https://github.com/a2uicatalog/a2ui
cd apps-script-surface/gas-schema-renderer
clasp push && clasp deploy
Full deploy guide →