Examples / ui-panel
ui-panel.json
targets v0.9.0 6 entities 6 schemas
An LED-install flavoured control surface: rig.ui.panel (role: led.install) with controls driving rig.paint.solid colour and rig.mod.lfo frequency, plus a shared lfo.resetPhase action. Same schemas a desktop panel or an ESP32 web page would speak.
Speaks
rig.meta.named · rig.mod.lfo · rig.paint.solid · rig.ui.action · rig.ui.control · rig.ui.panel
Document
Validates under npm run check —
raw file.
{
"rig": "0.9.0",
"document": {
"title": "LED panel - colour and pulse",
"defaultUnit": "px"
},
"entities": [
{
"id": "fill",
"components": {
"rig.meta.named": {
"name": "fill",
"stableId": "fill"
},
"rig.paint.solid": {
"rgba": [
1,
0.35,
0.1,
1
],
"cmyk": [
0,
0,
0,
0
]
}
}
},
{
"id": "pulse",
"components": {
"rig.meta.named": {
"name": "pulse",
"stableId": "pulse"
},
"rig.mod.lfo": {
"waveform": "sine",
"frequency": 0.5,
"amplitude": 1,
"offset": 0,
"phase": 0
}
}
},
{
"id": "install-panel",
"components": {
"rig.meta.named": {
"name": "Install",
"stableId": "install-panel"
},
"rig.ui.panel": {
"role": "led.install",
"order": 0,
"visible": true,
"preferredWidth": 320,
"preferredHeight": 240
}
}
},
{
"id": "ctrl-colour",
"components": {
"rig.meta.named": {
"name": "Colour",
"stableId": "ctrl-colour"
},
"rig.ui.control": {
"panel": "install-panel",
"order": 0,
"target": "fill",
"propertyKey": "rgba",
"type": "vec4",
"enabled": true,
"readOnly": false,
"widget": "color"
}
}
},
{
"id": "ctrl-rate",
"components": {
"rig.meta.named": {
"name": "Pulse rate",
"stableId": "ctrl-rate"
},
"rig.ui.control": {
"panel": "install-panel",
"order": 1,
"target": "pulse",
"propertyKey": "frequency",
"type": "float",
"min": 0.05,
"max": 4,
"step": 0.05,
"enabled": true,
"readOnly": false,
"widget": "slider"
}
}
},
{
"id": "act-reset",
"components": {
"rig.meta.named": {
"name": "Reset phase",
"stableId": "act-reset"
},
"rig.ui.action": {
"panel": "install-panel",
"order": 2,
"actionId": "lfo.resetPhase",
"enabled": true
}
}
}
]
}