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 checkraw 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
        }
      }
    }
  ]
}