Schemas / Animation / modulators

rig.mod.binding

v0.31.0 · draft 7 fields 3 required

Fields

FieldTypeMeaning
source entity required Modulator entity (e.g. LFO)
target entity required Driven entity
propertyKey string required Field name / path (same style as tween)
depth float optional Optional. Scale; absent = 1
min float optional Optional. Clamp; absent = unclamped
max float optional Optional. Clamp; absent = unclamped
additive bool optional Optional. Add vs replace; absent = false (replace)

A discrete fire (sensor to flash / sample) is rig.mod.trigger, not a binding.

Fulfillment

A binding is two entities plus a property address - fulfill it as an Update system that reads the source modulator and writes the target field (same propertyKey style as rig.ui.control and tween). Do not park live values on the import report. Tween / orbit drives follow the same pattern when implemented.

JSON Schema

Resolves at https://rig.works/schemas/rig.mod.binding.schema.jsonraw file.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://rig.works/schemas/rig.mod.binding.schema.json",
  "title": "rig.mod.binding",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "source": {
      "$ref": "./_defs.schema.json#/$defs/entity"
    },
    "target": {
      "$ref": "./_defs.schema.json#/$defs/entity"
    },
    "propertyKey": {
      "$ref": "./_defs.schema.json#/$defs/string"
    },
    "depth": {
      "$ref": "./_defs.schema.json#/$defs/float"
    },
    "min": {
      "$ref": "./_defs.schema.json#/$defs/float"
    },
    "max": {
      "$ref": "./_defs.schema.json#/$defs/float"
    },
    "additive": {
      "$ref": "./_defs.schema.json#/$defs/bool"
    }
  },
  "required": [
    "source",
    "target",
    "propertyKey"
  ]
}

Seen in

lfo-binding.json