diff --git a/show/dance2024/theaterLightConfig.n3 b/show/dance2024/theaterLightConfig.n3
new file mode 100644
--- /dev/null
+++ b/show/dance2024/theaterLightConfig.n3
@@ -0,0 +1,61 @@
+@prefix : .
+@prefix dev: .
+@prefix dmxA: .
+@prefix effect: .
+@prefix func: .
+@prefix rdfs: .
+@prefix show: .
+@prefix xsd: .
+
+:EffectFunction rdfs:comment """
+Linked to a code function. That func's Inputs are
+1) magic stuff like time,
+2) the effectAttrs listed under (?effect :input ?)
+
+Outputs are always a DeviceSettings list which can affect arbitrary devices.
+""" .
+
+######## effectFunction
+
+func:scale
+ a :EffectFunction;
+ rdfs:label "a submaster- scales :deviceSettings";
+ :input
+ [ :effectAttr :strength; :defaultValue 0.0 ],
+ [ :effectAttr :deviceSettings; ] . # e.g. "parR2 at color=red; parR3 at color=white"
+
+func:strobe
+ a :EffectFunction;
+ rdfs:label "blink specified devices";
+ :input
+ [ :effectAttr :strength; :defaultValue 0.0 ],
+ [ :effectAttr :period; :defaultValue 0.5 ],
+ [ :effectAttr :onTime; :defaultValue 0.1 ],
+ [ :effectAttr :deviceSettings ] .
+
+func:image
+ a :EffectFunction;
+ rdfs:label "sample image at x=time";
+ :input
+ [ :effectAttr :strength; :defaultValue 0.0 ],
+ [ :effectAttr :period; :defaultValue 2.0 ],
+ [ :effectAttr :image; :defaultValue "specks.png" ],
+ [ :effectAttr :deviceSettings; rdfs:comment "these might have a :sort key or a :y value" ] .
+
+
+dev:strip1 a :Bar612601d; rdfs:label "strip-r"; :dmxUniverse dmxA:; :dmxBase 175 .
+dev:strip2 a :ChauvetColorStrip; rdfs:label "strip-c"; :dmxUniverse dmxA:; :dmxBase 12 .
+dev:strip3 a :Bar612601d; rdfs:label "strip-l"; :dmxUniverse dmxA:; :dmxBase 178 .
+
+# dev:par90 a :LedPar90; :dmxUniverse dmxA:; :dmxBase 16 .
+
+dev:parFloorL a :LedPar54; rdfs:label "floor-l"; :dmxUniverse dmxA:; :dmxBase 84 .
+dev:parFloorR a :LedPar54; rdfs:label "floor-r"; :dmxUniverse dmxA:; :dmxBase 168 .
+dev:parL1 a :LedPar54;rdfs:label "l-1"; :dmxUniverse dmxA:; :dmxBase 105 .
+dev:parL2 a :LedPar54;rdfs:label "l-2"; :dmxUniverse dmxA:; :dmxBase 161 .
+dev:parL3 a :LedPar54;rdfs:label "l-3"; :dmxUniverse dmxA:; :dmxBase 147 .
+dev:parR2 a :LedPar54;rdfs:label "r-2"; :dmxUniverse dmxA:; :dmxBase 1 .
+dev:parR3 a :LedPar54;rdfs:label "r-3"; :dmxUniverse dmxA:; :dmxBase 21 .
+dev:parR1 a :LedPar54;rdfs:label "r-1"; :dmxUniverse dmxA:; :dmxBase 154 .
+
+# dev:plain1 a :SimpleDimmer; :dmxUniverse dmxA:; :dmxBase 10 .