Examples / lfo-binding
lfo-binding.json
targets v0.8.0 3 entities 7 schemas
rig.mod.lfo on one entity, rig.mod.binding driving another entity’s position.y - Update-system data (advance LFO + apply binding each dt); no UI required.
Speaks
rig.geometry.ellipse · rig.interact.selectable · rig.meta.named · rig.mod.binding · rig.mod.lfo · rig.paint.fill_stroke · rig.spatial.transform
Document
Validates under npm run check —
raw file.
{
"rig": "0.8.0",
"document": {
"title": "LFO binding",
"defaultUnit": "px"
},
"entities": [
{
"id": "pulse",
"components": {
"rig.meta.named": {
"name": "pulse",
"stableId": "pulse"
},
"rig.mod.lfo": {
"waveform": "sine",
"frequency": 0.5,
"amplitude": 40,
"offset": 120,
"phase": 0
}
}
},
{
"id": "dot",
"components": {
"rig.meta.named": {
"name": "dot",
"stableId": "dot"
},
"rig.spatial.transform": {
"position": [
200,
120,
0
],
"rotation": [
0,
0,
0,
1
],
"scale": [
1,
1,
1
]
},
"rig.geometry.ellipse": {
"centerX": 0,
"centerY": 0,
"radiusX": 16,
"radiusY": 16
},
"rig.paint.fill_stroke": {
"fillRgba": [
0.2,
0.85,
0.7,
1
],
"strokeRgba": [
0,
0,
0,
1
],
"strokeWidth": 1,
"hasFill": true,
"hasStroke": false
},
"rig.interact.selectable": {
"enabled": true
}
}
},
{
"id": "bind-y",
"components": {
"rig.mod.binding": {
"source": "pulse",
"target": "dot",
"propertyKey": "position.y",
"depth": 1,
"min": 40,
"max": 280,
"additive": false
}
}
}
]
}