Skip to content

Custom JSON Fixtures

Mark Slee edited this page Nov 24, 2020 · 18 revisions

Overview

Custom lighting fixtures that cannot be simply represented as a strip, arc, or grid can be defined in custom fixture files. These JSON-formatted files should be placed in the Fixtures folder with the .lxf file suffix.

Here is example syntax indicating all possible fields. Fields are described in greater detail below.

{
  "label": "Custom",

  "modelKeys": [ "custom", "another" ],

  "parameters": {
    "intParam": {
      "type": "int", "default": 0, "min": 0, "max": 100,
      "label": "Int Param",
      "description": "Example integer parameter"
    },
    "floatParam": {
      "type": "float", "default": 0.5,
      "label": "Float Param",
      "description": "Example float parameter"
    },
    "stringParam": {
      "type": "string", "default": "text",
      "label": "String Param",
      "description": "Example string parameter"
    },
    "boolParam": {
      "type": "boolean", "default": false,
      "label": "Bool Param",
      "description": "Example boolean parameter"
    }
  },

  "points": [
    { "x": 0, "y":0, "z": 0 }
  ],

  "strips": [
    {
      "x": 0, "y": 0, "z": 0, "numPoints": 40, "spacing": 10,
      "yaw": 45, "pitch": 45, "roll": 45
    },
    {
      "x": 0, "y": 0, "z": 0, "numPoints": 50, "spacing": 20,
      "direction": { "x": 1, "y": -1, "z": 0.5 }
    }
  ],

  "arcs": [
    {
      "x": 0, "y": 0, "z": 0,
      "mode": "center", "radius": 100, "degrees": 90,
      "yaw": 0, "pitch": 0, "roll": 0
    },
    {
      "x": 0, "y": 0, "z": 0,
      "mode": "origin", "radius": 100, "degrees": 90,
      "direction": { "x": 3, "y": 1, "z": -1 }
    },
    {
      "x": 0, "y": 0, "z": 0,
      "mode": "origin", "radius": 100, "degrees": 90,
      "normal": { "x": 3, "y": 1, "z": -1 }
    }
  ],

  "children": [
  ],

  "outputs": [
    {}
  ]
}

Fields

Model Keys