LightBridge is a MaxMSP app that uses Mira4Web to generate a simple-to-use GUI to control the lighting inside the IASpace. It allows control over the ceiling and gallery lights, such as Ceiling Lights (normal room lights), Arri Fresnels (spotlights), Arri Skypanels (if installed) and Moving Lights (also called moving heads, if installed).
In order to make it work three conditions have to be met:
- The main switch of the room is set to off (there are three such switches at each door).
- The ETC app and the LightBridge app are running on the machines IO / MAYA.
- You can access the IASpace LAN via cable or WiFi.
If conditions meet, you simply have to click here (this link only works if you are connected to the IAS network), and you will have access to the GUI.
The main tab of the LightBridge GUI is RoomLights.

The Roomlights interface allows you to set all the ceiling lights individually, by using the blue sliders on the top, you can control the overall intensity of the selected activated lights.
The yellow sliders, on the bottom, override all the individual settings. Once these sliders are set to 0, the individual settings take precedence.
Each light can be addressed individually or in groups by using its ID number. Each light has an individual ID, visible as a small number on the corners of the buttons.
Presets allow for storing specific settings (so-called sets) for recall.

This interface lets you switch on the control of other kinds of lights, like Moving Lights and Arri Fresnels (spotlights), Arri Skypanels, etc. If you enable extra lights, you can use the ‘x’ to choose whether these lights should be controllable via recalls of presets. This lets you control the lights with the presets and other live data from your preferred show software by sending OSC (see OSC-messages below for instructions).
If you want to store the current set, first press the green button ‘on recall’ so it turns red and reads ‘store’, and then select the preset button you want to store the set in.
Once you are happy with your presets, you can press ‘save’ to store the presets for future use.
To use fade times between the different sets, you can enable ‘fade’ and select or enter a suitable time in seconds.
With ‘label’, you can select a suitable description for the set. The label has no other function than to give information about the specific set.
ArriFresnels are 6 rows of 3 spots each. To enable their control, you need to toggle them via the button in the Presets interface.

The upper slider overrides the same settings for all the Arri Fresnel lights.
There are two colour modes, one of which allows setting RGB values plus a white addition, and the other mode allows setting the colour temperature.
LightBridge is developed on this GitLab repo: https://gitlab.zhdk.ch/iaspace/infrastructure/iaserver/lightbridge
The compiled standalone app can be found inside the IAS NAS under: 08_software > 0_server_only
The LightBridge app is to be started in conjunction with the ETC app. Three scheduled tasks are set on the IO / Maya pc to start ETC and LightBridge in the correct sequence and can be found inside: 08_software > 0_server_only>TaskScheduler
If you need to restart the apps manually (in the IO / MAYA pc), first launch the ETC app as primary, then launch the LightBridge app (the apps’ icons are visible on the taskbar).


It is possible to remotely control the LightBridge by sending OSC messages to the IP address of the machine the LightBridge currently runs (most likely inside the IO pc) and on port 1234:
- /Cue <group> <set>
- /RoomLights/ceiling <list of 54 floats(0..1), with 6 lights in 9 rows >
- /RoomLights/gessner/floor/0 <list of 5 floats (0..1)>
- /RoomLights/gessner/floor/1 <list of 6 floats (0..1)>
- /RoomLights/gessner/floor/2 <list of 8 floats (0..1)>
- /RoomLights/multiplier/ceiling <float(0..1)>
- /RoomLights/multiplier/gessner <float(0..1)>
- /RoomLights/multiplier/sihl <float(0..1)>
- /RoomLights/override/ceiling <float(0..1)>
- /RoomLights/override/gessner <float(0..1)>
- /RoomLights/override/sihl <float(0..1)>
- /RoomLights/sihl/floor/0 <list of 6 floats (0..1)>
- /RoomLights/sihl/floor/1 <list of 6 floats (0..1)>
- /RoomLights/sihl/floor/2 <list of 7 floats (0..1)>
- /ArriFresnels/<rownumber>/intensity <float>
- /ArriFresnels/<rownumber>/mode <boolean>
- /ArriFresnels/<rownumber>/rgb <red> <green> <blue> <alpha>
- /ArriFresnels/<rownumber>/temp<float>
- /ArriFresnels/<rownumber>/white<float>
- /ArriFresnels/grp/intensity <float>
- /ArriFresnels/grp/mode <boolean>
- /ArriFresnels/grp/rgb <red> <green> <blue> <alpha>
- /ArriFresnels/grp/temp<float>
- /ArriFresnels/grp/white<float>
- /ArriFresnels/spots/intensity <list of 18 floats (0..1)>
- /MovingLight_<number>/color <red> <green> <blue> <alpha>
- /MovingLight_<number>/focus <float>
- /MovingLight_<number>/intensity <float>
- /MovingLight_<number>/iris <float>
- /MovingLight_<number>/moving_mode <boolean>
- /MovingLight_<number>/pan <float>
- /MovingLight_<number>/pointAt <posX> <posY> <posZ>
- /MovingLight_<number>/strobo <float>
- /MovingLight_<number>/tilt <float>
- /MovingLight_<number>/zoom <float>
- /MovingLight_<number>/gobo/dyn <string>
- /MovingLight_<number>/gobo/rotation <float>
- /MovingLight_<number>/gobo/static <string>
A set of examples to interactively control the lights using Max.
This example showcases how to send rigidbody information from the mocap system to the LightBrige to control the Moving Lights.

Copy this code, then in Max, go to File > New From Clipboard to create a new Max patch with this code.
<pre><code>
----------begin_max5_patcher----------
797.3oc4X00aaBCE84To9e.4mynXa9bus229ELUM4DbotJXiLNYoqZ+2mwNz
j0QBDDPoZuDKt1368bt2i8k7xs2r.rRrmVBb9ry2cVr3EskEFaUVVTaXAHmr
e8FRoYgfG1H3ayAKqmiwY45m0S445UakkZVqX0SeB485Z0uGiugpLaDb4wcu
dGfG2gBhZ8iLd1Ojz0JaD5GWMuCLLrZHnxcNHjqmy8m3.wVUsGP0ls1TOWPs
aD.rzArhvy.Ge0BhjjSUT4OnbxpMlU9Zv7fPlSLQQnwxuu8lpQ8vxNyab5O0
zwqbght2rgfBIsfxSct6ahcZ79UV1iJWu69kPbjjOgNgwsPmMQbAwtAKcvnC
7WTaLG77Lmy8SCC.OOCjzCFvOohAPwQuqLv0pcfQCk1Aii9+Q6vjrxFqb7u9
JGTxeocBveHzNmkAB5ACDGep1Ytw.YDEsQnhaFpnK.0PCRggIUPDide.pRjk
soYHgt9rWHNrBSIlxWje8uWOjXbUaR9ISeyUTdIS8bijjWOHIe3ohbaeFyeQ
9kngj9Tp.OUnO2XgsoEkUr.zyEhhcSBcgPrCDg8aB+8nMIq5GqGL2T52F7mr
58BgNU+EUSvL55gIDdnXOvfynfODE6WfCB6apFkflkTfT6EpSgPqsYBdSPNn
u2sgBLk0sqsubCfiGpgMAW+dCWnAn9gyU3dmjkwRWIRa7P7dzBSrQbCQFDmL
CSy5iw0QKksSmq87vdMdG90qns31BXnm+PJns6AXCi+O+WIl.oZh2vDkhsx0
06X8Gs5bRzjRKULNwnuOtpX6hNOm2c+EOs9q5e4oc+81nRHSoxVtJcnCgjyD
Bvgf0i5TH3OhrPGCgfwjEBl3Zc+I1enNQw3yPwngHDvcID7GLHi6LhgCh+l5
SK8lkUPdi44DcJDFyCK6zoDgiX.DNsI8Ng2nQLkGMs3sSmJGLbZpt3Nbit6P
CdjhhcTY4g2v5IcOsOILYf3k1mYb6yA1mkzcr5WAaMQj5lSU5NS2JMAHXe3g
OfAjKz4S9VVcIbEVqbsosYNImVVPrnxzd8s2nWve.X4ubDF
-----------end_max5_patcher-----------
</code></pre>
This Max example shows how to control the ceiling lights with a rigidbody by pointing at them.

This example patch called: ias.roomlight.controlWithRigidbody.maxpat can be found inside the 00_Core at this folder path: D:/00_core/MaxMSP_Packages/IASpace-tools/patchers/examples
Copy this code, then in Max, go to File > New From Clipboard to create a new Max patch with this code.
<pre><code>
----------begin_max5_patcher----------
1044.3oc0XsraaiCEcsCP9GHzZOVjTOrTmYVMaKZAZ6toCBnkYrYGIRURpTG
Tz+8RQIm3lvXoJKK3rvPvTT7dOm6gG936We0LuUhcTkG3Mf+ELa12MsLy1Vc
Ky12vLuBxtrbhx1QON8ahUewad66zzcZa6kRZIkuF3+Agn3srMa0JeEaat+s
4BgzG+vWvVa6uYP9Cb7CsJpz4Ts99RZS534A9u8uqjny1x3atQRyzMuNFubA
bNHHAW+.kfpefM+4wuhWUv3lwzl1nCZsITMMaa8GWeU8Syi4maZ.4jFVNXZH
AZogH3EFMvHpERx83bKCrnlAbh7jif74s+5iP.uzBcDNpCF.6lABlZg.zIcj
NTgvxf.qP.k9JX9vFpRwoxi4LfhFJSD.SOvY.Cie8vDNMGPAClIhwGXNbAwD
OwbnkDbBdzo5OzJGdc3O7qxAmVDCddQHJ5.GhKH0fzL5TScJxoiXWBfih4Hq
oHJzNAHJcXkd7fQroLZFJm55kGGVqH7MGGZn1Y0ggVrAeN1LHiUXBecQy711
VuUHKH1wHd9i479NF8XGcKFJIRRAUSk2P4jU41bFN17VgYZ.YC84Rk+7yxOy
McEjSp3YaWIEeSQkfsZco5M99aX5sUqVjIJ70zLhTmSV4SJKu4cD86n5OsUR
o32+w+4gANmwoYhJt9WJ+GVmBG5zMTrU6kjXmzkZceBh+c0dCe1lgDJnFf8L
N7u.zcklzTALLAnkpUfakhBfVRx9eCN.p6UZZA3NFAvIZNUiEpLPgXM8uMQw
oh9wkweY1H1Z5DBaLgg+tdOvyj2iujsgsdkX88tPV7H3.0f3TzT6.8R3tZsY
4mLJ6NpI2fXmqzLXoezA0ZDL7RYcFClU0K3hfKP3jEowKPn.yNBBBcg9jiIm
iPKhL53.K1PwCDhvIYOElprwlaiKLFbZU3.TyguiuTO04QfN9zfNdYi5FEOr
YzmocQUZ5EnTnXZlfC9ZEQ6zpFdpapt0UqgDvAcswpfoZO015+dubrQI.P.H
vo6F5DE.sZeb53H.Z9Z6FRd58wYyg5W7DFQIpjY6y41Ep.GjFqoJMyr5sQJb
Pmp2PccudYtu2wKpOwKYzBWXeBW7nEtfoEc0W8yjFu5gB2oZIcbCHpy.tbbC
X2yGFOEy9bexJgwSb7P8Id0qtLVArOwKXzBGpW0umpiEx0TYGamarSgWHCvS
VFTeubNSAzXjBS7BKnI1p2RdcZ8FMtwq6R5HGvNs5Qi3LWXuP33FOTehGZbh
WuMlfmKio95KAOW9R81VB1Cao1saSJKuiJUsCRSvMmz3KB6GkLu4+Ldy+atv
TOI8N19OoY28dDo4TBZyQDpj1b1aWb6kJ3UemYRdEaeVTC+5PaOLCmTPUkjF
fZOzy0WY5vOQIf.Q4
-----------end_max5_patcher-----------
</code></pre>
Moving Lights
- ML_0 = 31/389-419
- ML_1 = 31/420-450
- ML_2 = 31/451-481
- ML_3 = 31/482-512
- ML_4 = 32/1-31
- ML_5 = 32/32-62
- ML_6 = 32/63-93
- ML_7 = 32/94-124
Arri Fresnel
- trass 6 / ch1 = 31/101-116
- trass 6 / ch2 = 31/117-132
- trass 6 / ch3 = 31/133-148
- trass 5 / ch4 = 31/149-164
- trass 5 / ch5 = 31/165-180
- trass 5 / ch6 = 31/181-196
- trass 4 / ch7 = 31/197-212
- trass 4 / ch8 = 31/213-228
- trass 4 / ch9 = 31/229-244
- trass 3 / ch10 = 31/245-260
- trass 3 / ch11 = 31/261-276
- trass 3 / ch12 = 31/277-292
- trass 2 / ch13 = 31/293-308
- trass 2 / ch14 = 31/309-324
- trass 2 / ch15 = 31/325-340
- trass 1 / ch16 = 31/341-356
- trass 1 / ch17 = 31/357-372
- trass 1 / ch18 = 31/373-388
Profiler
- xx/xxx-xxx
Arri Skypannel
- 22/1-20
- 22/21-40
- 22/41-60
- 22/61-80
- 22/81-100
- 22/101-120
- 22/121-140
- 22/141-160
