Light Tunnel Mk2
Exhaustive documentation including variables, configurations and physical effects.

The Light Tunnel produces i.i.d. data and images from a controlled optical experiment.
It contains a controllable light source, linear polarizers mounted on rotating frames, and sensors to measure light intensity at different frequencies and locations. A camera captures images from inside the tunnel.
The chamber produces images and i.i.d. data from up to 99 variables, including sensor measurements, control inputs, and sensor parameters.


ir_1) for different intensities of the light-source channels (red/green/blue). Top left: examples of images produced by the tunnel in the linked_leds (left) and the camera_fast (right) hardware configurations. Bottom: observing Malus' law in the effect of the polarizer positions (pol_1, pol_2) on the infrared intensity at the third sensor (ir_3).Hardware configurations
Like all chambers, the wind tunnel can automatically load different hardware configurations. See the corresponding PDF for a chamber diagram, a complete description of all variables, and the causal ground-truth graph.
Map of effects
Here you can find a detailed description of all effects between chamber variables, together with additional experiments and figures. Throughout, we use an edge A B to denote that a variable A has an effect on variable B.
Short-hand notation
A1/2 B, C is equivalent to the edges A1 B, A1 C, A2 B and A2 C
We can also express this as A* B,C
Some text and figures in this section are adapted from the original paper (Gamella et al. 2025, Appendix III).

In what follows, we provide a detailed description and visualization of each edge (physical effect) in the above graph.
red, green, blue ir_1/2/3, vis_1/2/3
The brightness settings of the light-source colors (red, green, blue) affect the readings of the three light-intensity sensors. Each sensor produces two measurements: one for the infrared part of the spectrum (ir_j), and another for the visible part (vis_j). The effect of each color is approximately linear with heteroscedastic noise, and the slope is determined by its typical wavelength and the sensor's spectral sensitivity.
red, green, blue—on the measurements produced by the three light-intensity sensors ir_1/2/3 and vis_1/2/3. The sensors are placed at increasing distances from the light source (with the first sensor closest to it), resulting in a decrease in the maximum measurement value. The infrared channel (ir_j, top row) of the sensors is most sensitive to red light, whereas the effect is reversed for the visible channel (vis_j, bottom row).To recreate the data for the figure using the Remote Lab:
red, green, blue current_ls, current_ls_raw
The chamber produces calibrated measurements (current_ls, in Amperes) of the electrical current drawn by the light source. For each measurement, the chamber also returns the underlying raw, uncalibrated measurement (current_ls_raw), which takes values in the range [-2¹⁵, 2¹⁵] (the output of the sensor's ADC).
The effect of the brightness settings red/green/blue is approximately linear with the same slope for each color (Figure 2).
current_ls) and the corresponding raw uncalibrated measurement (current_ls_raw), for different values of each color channel.To recreate the data for the figure using the Remote Lab:
offset/sps/res_current_ls current_ls, current_ls_raw
We can independently control three parameters of the analog sensor that produces the measurements current_ls and current_ls_raw:
offset_current_ls: the reference voltage. Changing it creates an additive shift in the uncalibrated measurements (current_ls_raw) but is largely compensated for in the calibrated measurements (Figure 3, left).sps_current_ls: the oversampling rate, i.e., how many readings are averaged to produce a single measurement. Lower values correspond to higher oversampling rates, increasing the noise-to-signal ratio of the resulting measurements. Both the calibrated and uncalibrated measurements are affected (Figure 3, center).res_current_ls: the measurement range—and thus the resolution—of the sensor. Higher values correspond to smaller measurement ranges, increasing the resolution but saturating the sensor if the actual values fall outside this range (Figure 3, right). Changes tores_current_lsresult in a shift and scaling of the uncalibrated measurements (current_ls_raw).
offset/sps/res_current_ls (resp. left, center, right) on the calibrated (current_ls, top) and uncalibrated (current_ls_raw, bottom) measurements of the current drawn by the light source. The left and center plot show measurements for red=green=blue=0, and the right plot shows measurements for red=green=blue sampled from random values in [0,255]. The calibrated measurements (in Amps) largely compensate for changes in the reference voltage (offset_current_ls, left top) and sensor resolution (res_current_ls, right top), unless sensor saturation occurs. For example, in the right plot, at resolution res_current_ls = 2, the measurements fall outside of the sensor range, resulting in a saturation of the sensor output. Both calibrated and uncalibrated measurements are affected by changes in the oversampling rate (sps_current_ls, center) which affects their signal-to-noise ratio (i.e., variance, precision).You can replicate the experiments for this plot with the Remote Lab. For the left panel (varying offset_current_ls):
For the center panel (varying sps_current_ls):
For the right panel (varying res_current_ls):
diode_ir_j ir_j, diode_vis_j vis_j (j = 1, 2, 3)
We can control the size of the photodiode used by each sensor to produce the light-intensity measurements ir_j and vis_j. There are three photodiodes (diode_ir_j=0,1,2) for the infrared channel (ir_j) and two photodiodes (diode_vis_j=0,1) for the visible channel (vis_j). Larger values correspond to larger photodiodes, which collect light over a greater area, increasing the sensor's sensitivity.
green channel. Increasing the diode size—i.e., larger values of diode_ir/vis_j—increases the sensitivity of the sensor.To recreate the data for the figure using the Remote Lab:
t_ir_j ir_j, t_vis_j vis_j (j = 1, 2, 3)
We can also control the exposure time of each light sensor, affecting its sensitivity. Changes to the exposure time (i.e., integration time) also affect the properties of the sensor noise, changing the conditional distribution of the measurements given the light source brightness (see XY in Figure Y below). A timing mechanism ensures that changes in the exposure time do not affect the overall measurement time.
green channel. Increasing the exposure time—i.e., integration time—increases the sensitivity of the sensor and affects the noise distribution; see, e.g., the difference between t_ir/vis_j=3 and t_ir/vis_j=2 above.To recreate the data for the figure using the Remote Lab:
pol_j angle_j, angle_j_raw, angle_j_digital (j = 1, 2)
The position settings pol_1/2 determine the position (in degrees) of the two polarizer frames. The actual position is measured by two sensors: an encoder producing the measurements angle_1/2_digital , and an analog sensor producing angle_1/2, both in degrees. For the latter, the chamber also returns the underlying raw, uncalibrated measurements (angle_1/2_raw), which take values in the range [-2¹⁵, 2¹⁵] (the output of the sensor's ADC). The relationship between the position setting and the angle measurements is modulated by the motor parameters (see below) and the parameters of the analog sensor.
angle_1_digital (left, in degrees), angle_1 (center, in degrees) and angle_1_raw (right) for 1000 polarizer positions pol_1 sampled uniformly at random from the range [-90,90] . The behaviour for the second polarizer (i.e., pol_2, angle_2_*) is the same and not shown.To recreate the data for the figure using the Remote Lab:
Motor parameters
The relationship between the position settings pol_1/2 and the actual polarizer positions—as measured by angle_1/2, angle_1/2_raw, and angle_1/2_digital—is further modulated by the motor parameters.
For example, lowering the resolution of the motor (mot_1/2_steps) results in a coarser polarizer placement. If we lower the current delivered to the motors (mot_1/2_max) or power them off completely (mot_1/2_enabled = 0), they will cease to function properly, missing steps and creating a mismatch between pol_1/2 and the actual positions measured by angle_* (Figure 7).
angle_1) along a trajectory (dotted black line) defined by the input pol_1 that sets the desired polarizer position. We show trajectories for the default motor parameters (left) and different values of the motor parameters mot_1_max/enabled. Lowering the current delivered to the motor (mot_1_max), or powering it off completely (mot_1_enabled = 0) cause the motor to miss steps, creating a mismatch between the set position (pol_1) and the actual position of the hatch (angle_1). The behavior for the second polarizer (pol_2, angle_2) and the digital angle measurements (angle_1/2_digital) is the same and not shown.To recreate the data for the figure using the Remote Lab:
mot_j_max/enabled current_mot_j, current_mot_j_raw (j = 1, 2)
The variables mot_1/2_max control the amount of electrical current delivered to the each polarizer motor, and mot_1/2_enabled switch the motors on or off. Thus, they affect the calibrated (current_mot_1/2) and uncalibrated (current_mot_1/2_raw) measurements of the electrical current drawn by the polarizer motors. The effect of mot_1/2_max and mot_1/2_enabled on the current measurements is instantaneous, i.e., faster than the measurement rate (Figure 8, left). The relationship between mot_1/2_max and current_1/2_mot, current_mot_1/2_raw is non-linear (Figure 8, right).
current_mot_1) under an impulse on the input mot_1_max , when the motor is enabled (mot_1_enabled=1, blue) and when it is disabled (mot_1_enabled=0, yellow). Right: measurements of the calibrated motor current (current_mot_1) for different values of mot_1_max, when the motor is enabled (mot_1_enabled=1, blue) and when it is disabled (mot_1_enabled=0, yellow). The behavior of the second motor and the uncalibrated measurements current_mot_1/2_raw is the same and not shown.To replicate the experiment for the left panel (impulse) using the Remote Lab:
For the right panel:
offset/res/sps_angle_j angle_j, angle_j_raw (j = 1, 2)
We can independently control three parameters of the analog sensors that produce the measurements angle_1/2 and angle_1/2_raw:
offset_angle_1/2: the reference voltage. Changing it creates an additive shift in the uncalibrated measurements (angle_1/2_raw) but is largely compensated for in the calibrated measurements (Figure 9, left).sps_angle_1/2: the oversampling rate, i.e., how many readings are averaged to produce a single measurement. Lower values correspond to higher oversampling rates, increasing the noise-to-signal ratio of the resulting measurements. Both the calibrated and uncalibrated measurements are affected (Figure 9, center).res_angle_1/2: the measurement range—and thus the resolution—of the sensor. Higher values correspond to smaller measurement ranges, increasing the resolution but saturating the sensor if the actual values fall outside this range (Figure 9, right). Changes tores_angle_1/2result in a shift and scaling of the uncalibrated measurements (angle_1/2_raw).
offset/sps/res_angle_1 (resp. left, center, right) on the calibrated (angle_1, top) and uncalibrated (angle_1_raw, bottom) measurements of the polarizer position. The behavior for the second polarizer is the same and not shown. The left and center plot show measurements for pol_1=0, and the right plot shows measurements for pol_1 sampled from random values in [-180,0]. The calibrated measurements (in degrees) largely compensate for changes in the reference voltage (offset_angle_1, left top) and sensor resolution (res_angle_1, right top), unless sensor saturation occurs. For example, in the right plot, at resolution res_angle_1 = 2, the measurements fall outside of the sensor range, resulting in a saturation of the sensor output. Both calibrated and uncalibrated measurements are affected by changes in the oversampling rate (sps_angle_1, center), which affects their signal-to-noise ratio (i.e., variance, precision).You can replicate the experiments for this plot with the Remote Lab. For the left panel (varying offset_angle_1):
For the center panel (varying sps_angle_1):
For the right panel (varying res_angle_1):
pol_1/2 ir_3, vis_3
The position of the polarizers affects the intensity of the light passing through them, affecting the readings (ir_3, vis_3) of the third light sensor. The effect is described by Malus' law, i.e., the intensity after the polarizer pair is given by
where is the intensity before the polarizers, and are the polarizer positions. The above law holds for ideal polarizers; in practice, the polarizers do not block all light, and the resulting intensity is better approximated by
where are the polarizer's parallel and crossed transmission rates; see Gamella et al. (2025a, Appendix IV.2.1) for more details. Note that transmission rates vary with wavelength; i.e., the polarizer blocks red light more than green or blue light, thereby changing the color of the captured images (see, e.g., Gamella et al. 2025b, Figure 2CD).
pol_1 and pol_2 on the infrared (ir_3) and visible (vis_3) light-intensity measurements produced by the third sensor, which is placed behind both polarizers relative to the light source (see diagram). In the experiment above, the polarizer positions are sampled uniformly at random while the light source is kept at a fixed brightness (for each of the red, green and blue channels).To recreate the data for the figure using the Remote Lab:
led_j_ir, led_j_uv ir_j, vis_j (j = 1, 2, 3)
Besides the light source, two additional LEDs placed by each light sensor have an effect on its readings. To avoid affecting the measurements of the other light sensors, the LEDs only turn on when their corresponding sensor is taking a measurement. There is an IR LED and a UV LED, with the settings led_j_ir, led_j_uv controlling the current flowing through them, and thus, their brightness. The IR LED can saturate the infrared measurements (ir_1/2/3) produced by the sensors (Figure 11, top). TODO: experiment code
ir_1/2/3, top) and visible (vis_1/2/3, bottom) channels. The LEDs turn on only when their corresponding sensor is taking a measurement and do not affect the measurements of the other sensors. The IR LED (led_1/2/3_ir) can cause the infrared measurements (ir_1/2/3) to saturate.To recreate the data for the figure using the Remote Lab:
led_j_ir current_led_j_ir/_raw, led_j_vis current_led_j_vis/_raw (j = 1, 2, 3)
Analog sensors measure the current drawn by each LED, producing a calibrated measurement (current_led_j_ir/vis, in Amperes) and the raw, uncalibrated measurements (current_led_j_raw) taking values in the range [-2¹⁵, 2¹⁵] (the output of the sensor's ADC). The effect of the brightness setting led_j_ir/vis on the current measurements is linear (Figure 12). The measurements are also affected by the sensor parameters.
current_led_j_ir/uv for random brightness settings led_j_ir/uv of the corresponding LED. The small offsets in each sensor's output result in small shifts in the measurements. The effect on the uncalibrated measurements current_led_j_ir/uv_raw is the same and not shown.To recreate the data for the figure using the Remote Lab:
offset/sps/res_current_led_* current_led_*, current_led_*_raw
We can independently control three parameters of the analog sensors that produce the measurements current_led_* and current_led_*_raw:
offset_current_led_*: the reference voltage. Changing it creates an additive shift in the uncalibrated measurements (current_led_*_raw) but is largely compensated for in the calibrated measurements (Figure 13, left).sps_current_led_*: the oversampling rate, i.e., how many readings are averaged to produce a single measurement. Lower values correspond to higher oversampling rates, increasing the noise-to-signal ratio of the resulting measurements. Both the calibrated and uncalibrated measurements are affected (Figure 13, center).res_current_led_*: the measurement range—and thus the resolution—of the sensor. Higher values correspond to smaller measurement ranges, increasing the resolution but saturating the sensor if the actual values fall outside this range (Figure 13, right). Changes tores_current_led_*result in a shift and scaling of the uncalibrated measurements (current_led_*_raw).
offset/sps/res_current_led_1_ir (resp. left, center, right) on the calibrated (current_led_1_ir, top) and uncalibrated (current_led_1_ir_raw, bottom) measurements of the current drawn by the light source. The behaviour for the other LEDs is the same and not shown. The left and center plots show measurements for led_1_ir=0, and the right plot shows measurements for led_1_ir sampled from random values in [0,4095]. The calibrated measurements (in Amps) largely compensate for changes in the reference voltage (offset_current_led_1_ir, left top) and sensor resolution (res_current_led_1_ir, right top), unless sensor saturation occurs. For example, in the right plot, at resolution res_current_led_1_ir = 2, the measurements fall outside of the sensor range, resulting in a saturation of the sensor output. Both calibrated and uncalibrated measurements are affected by changes in the oversampling rate (sps_current_led_1_ir, center), which affects their signal-to-noise ratio (i.e., variance, precision).You can replicate the experiments for this plot with the Remote Lab. For the left panel (varying offset_current_led_1_ir):
For the center panel (varying sps_current_led_1_ir):
For the right panel (varying res_current_led_1_ir):
offset/sps/res_current_mot_* current_led_mot_*
We can independently control three parameters of the analog sensors that produce the measurements current_mot_1/2 and current_mot_1/2_raw of the drawn motor current:
offset_current_mot_1/2: the reference voltage. Changing it creates an additive shift in the uncalibrated measurements (current_mot_1/2_raw) but is largely compensated for in the calibrated measurements (Figure 14, left).sps_current_led_mot_1/2: the oversampling rate, i.e., how many readings are averaged to produce a single measurement. Lower values correspond to higher oversampling rates, increasing the noise-to-signal ratio of the resulting measurements. Both the calibrated and uncalibrated measurements are affected (Figure 14, center).res_current_led_mot_1/2: the measurement range—and thus the resolution—of the sensor. Higher values correspond to smaller measurement ranges, increasing the resolution but saturating the sensor if the actual values fall outside this range (Figure 14, right). Changes tores_current_led_mot_1/2result in a shift and scaling of the uncalibrated measurements (current_led_mot_1/2_raw).
offset/sps/res_current_mot_1 (resp. left, center, right) on the calibrated (current_mot_1, top) and uncalibrated (current_mot_1_raw, bottom) measurements of the current drawn by the first polarizer motor. The behaviour for the other motor is the same and not shown. The left and center plots show measurements for mot_1_max=3000, and the right plot shows measurements for mot_1_max sampled from random values in [0,4095]. The calibrated measurements (in Amps) largely compensate for changes in the reference voltage (offset_current_mot_1, left top) and sensor resolution (res_current_mot_1, right top), unless sensor saturation occurs. For example, in the right plot, at resolution res_current_mot_1 = 2, the measurements fall outside of the sensor range, resulting in a saturation of the sensor output. Both calibrated and uncalibrated measurements are affected by changes in the oversampling rate (sps_current_mot_1, center), which affects their signal-to-noise ratio (i.e., variance, precision).You can replicate the experiments for this plot with the Remote Lab. For the left panel (varying offset_current_mot_1):
For the center panel (varying sps_current_mot_1):
For the right panel (varying res_current_mot_1):
External influences
The shared circuitry across Chamber components—and changes in ambient conditions—constitute additional sources of statistical correlation among the sensor measurements produced by the Chamber.
Analog sensors
All analog sensors (i.e., current and polarizer angles) share the same power supply; thus, noise in the supply voltage (e.g., due to EMI) may create an additional—albeit small—correlation between their measurements.
Light sensors
The infrared and visible measurements from each sensor are encoded by the same electronic circuit and ADC. This produces an additional correlation between the measurements produced by the same sensor, i.e., ir_j and vis_j for j=1,2,3. This dependence holds even after conditioning on other sources of variation, e.g., red, green, blue.
While the chambers are kept in a constant environment with artificial lighting, the light sensors are extremely sensitive, and any small variation in lighting conditions will be reflected in all measurements.
Variables table
Below is a glossary of the chamber variables discussed on this page.
red
The brightness setting of the red LEDs on the main light source. Higher values correspond to higher brightness.
green
The brightness setting of the green LEDs on the main light source. Higher values correspond to higher brightness.
blue
The brightness setting of the blue LEDs on the main light source. Higher values correspond to higher brightness.
current_ls
The measurement of electric current drawn by the light source, in Amperes.
current_ls_raw
The uncalibrated measurement, i.e., the raw ADC output, corresponding to the measurement current_ls.
offset_current_ls
The reference voltage (offset) of the ADC producing the current_ls and current_ls_raw measurements. The actual reference voltage (in Volts) is given by Because the signal from the current sensor is passed through an inverting amplifier and substracted from the reference voltage, higher values of offset_current_ls result in higher values of current_ls_raw.
sps_current_ls
The data rate of the ADC producing the current_ls and current_ls_raw measurements. Lower values mean the ADC accumulates more readings to produce a single measurement, reducing noise but also lowering the measurement speed. The actual data rates are (respectively) and samples per second.
res_current_ls
The resolution of the ADC producing the current_ls and current_ls_raw measurements. Higher values mean a higher resolution, where a smaller voltage range is mapped to the ADC output range [-32768, 32767]. The voltage ranges are, respectively, and Volts. The reading will saturate, i.e., clamp at -32768 or 32767, if the input voltage exceeds the set range.
pol_1
The set position of the first polarizer, in degrees. The actual angle of the polarizer may slightly deviate from this setting due to the imperfect coupling of the mechanical pieces and the resolution of the motor (see mot_1_steps).
mot_1_steps
The steps-per-revolution of the stepper motor controlling the first polarizer. Higher values mean a higher motor resolution, i.e., more precise positioning.
mot_1_enabled
Enables (1) or disables (0) the motor of the first polarizer. If the motor is disabled (0), setting pol_1 will have no effect on the actual position of the polarizer (Figure 7).
mot_1_max
Regulates the maximum current drawn by the motor controlling the first polarizer. At low current levels, the motor may lose torque and start missing steps, resulting in a mismatch between the set position pol_1 and the actual polarizer angle (Figure 7).
current_mot_1
The measurement (in Amperes) of the electric current drawn by the motor controlling the first polarizer.
current_mot_1_raw
The uncalibrated measurement, i.e., the raw ADC output, corresponding to the measurement current_mot_1.
offset_current_mot_1
The reference voltage (offset) of the ADC producing the current_mot_1 and current_mot_1_raw measurements. The actual reference voltage (in Volts) is given by Because the signal from the current sensor is passed through an inverting amplifier and substracted from the reference voltage, higher values of offset_current_mot_1 result in higher values of current_mot_1_raw.
sps_current_mot_1
The data rate of the ADC producing the current_mot_1 and current_mot_1_raw measurements. Lower values mean the ADC accumulates more readings to produce a single measurement, reducing noise but also lowering the measurement speed. The actual data rates are (respectively) and samples per second.
res_current_mot_1
The resolution of the ADC producing the current_mot_1 and current_mot_1_raw measurements. Higher values mean a higher resolution, where a smaller voltage range is mapped to the ADC output range [-32768, 32767]. The voltage ranges are, respectively, and Volts. The reading will saturate, i.e., clamp at -32768 or 32767, if the input voltage exceeds the set range.
angle_1
The position (in degrees) of the first polarizer as measured by the analog angle sensor.
angle_1_raw
The uncalibrated angle measurement for the first polarizer, i.e., the raw ADC output corresponding to angle_1.
offset_angle_1
The reference voltage (offset) of the ADC producing the angle_1 and angle_1_raw measurements. The actual reference voltage (in Volts) is given by
sps_angle_1
The data rate of the ADC producing the angle_1 and angle_1_raw measurements. Lower values mean the ADC accumulates more readings to produce a single measurement, reducing noise but also lowering the measurement speed. The actual data rates are (respectively) and samples per second.
res_angle_1
The resolution of the ADC producing the angle_1 and angle_1_raw measurements. Higher values mean a higher resolution, where a smaller voltage range is mapped to the ADC output range [-32768, 32767]. The voltage ranges are, respectively, and Volts. The reading will saturate, i.e., clamp at -32768 or 32767, if the input voltage exceeds the set range.
angle_1_digital
The position (in degrees) of the first polarizer as measured by the rotary encoder.
pol_2
The set position of the second polarizer, in degrees. The actual angle of the polarizer may slightly deviate from this setting due to the imperfect coupling of the mechanical pieces and the resolution of the motor (see mot_2_steps).
mot_2_steps
The steps-per-revolution of the stepper motor controlling the second polarizer. Higher values mean a higher motor resolution, i.e., more precise positioning.
mot_2_enabled
Enables (1) or disables (0) the motor of the second polarizer. If the motor is disabled (0), setting pol_2 will have no effect on the actual position of the polarizer (Figure 7).
mot_2_max
Regulates the maximum current drawn by the motor controlling the second polarizer. At low current levels the motor may lose torque and start missing steps, resulting in a mismatch between the set position pol_2 and the actual polarizer angle (Figure 7).
current_mot_2
The measurement (in Amperes) of the electric current drawn by the motor controlling the second polarizer.
current_mot_2_raw
The uncalibrated measurement, i.e., the raw ADC output, corresponding to the measurement current_mot_2.
offset_current_mot_2
The reference voltage (offset) of the ADC producing the current_mot_2 and current_mot_2_raw measurements. The actual reference voltage (in Volts) is given by Because the signal from the current sensor is passed through an inverting amplifier and substracted from the reference voltage, higher values of offset_current_mot_2 result in higher values of current_mot_2_raw.
sps_current_mot_2
The data rate of the ADC producing the current_mot_2 and current_mot_2_raw measurements. Lower values mean the ADC accumulates more readings to produce a single measurement, reducing noise but also lowering the measurement speed. The actual data rates are (respectively) and samples per second.
res_current_mot_2
The resolution of the ADC producing the current_mot_2 and current_mot_2_raw measurements. Higher values mean a higher resolution, where a smaller voltage range is mapped to the ADC output range [-32768, 32767]. The voltage ranges are, respectively, and Volts. The reading will saturate, i.e., clamp at -32768 or 32767, if the input voltage exceeds the set range.
angle_2
The position (in degrees) of the second polarizer as measured by the analog angle sensor.
angle_2_raw
The uncalibrated angle measurement for the second polarizer, i.e., the raw ADC output corresponding to angle_2.
offset_angle_2
The reference voltage (offset) of the ADC producing the angle_2 and angle_2_raw measurements. The actual reference voltage (in Volts) is given by
sps_angle_2
The data rate of the ADC producing the angle_2 and angle_2_raw measurements. Lower values mean the ADC accumulates more readings to produce a single measurement, reducing noise but also lowering the measurement speed. The actual data rates are (respectively) and samples per second.
res_angle_2
The resolution of the ADC producing the angle_2 and angle_2_raw measurements. Higher values mean a higher resolution, where a smaller voltage range is mapped to the ADC output range [-32768, 32767]. The voltage ranges are, respectively, and Volts. The reading will saturate, i.e., clamp at -32768 or 32767, if the input voltage exceeds the set range.
angle_2_digital
The position (in degrees) of the second polarizer as measured by the rotary encoder.
ir_1
The uncalibrated infrared intensity measurement produced by the first light sensor, placed in front of both polarizers (wrt. the light source).
vis_1
The uncalibrated visible-light intensity measurement produced by the first light sensor, placed in front of both polarizers (wrt. the light source).
ir_2
The uncalibrated infrared intensity measurement produced by the second light sensor, placed between the two polarizers.
vis_2
The uncalibrated visible-light intensity measurement produced by the second light sensor, placed between the two polarizers.
ir_3
The uncalibrated infrared intensity measurement produced by the third light sensor, placed after both polarizers (wrt. the light source).
vis_3
The uncalibrated visible-light intensity measurement produced by the third light sensor, placed after both polarizers (wrt. the light source).
t_ir_1
The exposure time of the first sensor during an infrared intensity measurement. Higher values correspond to longer exposure, increasing the sensitivity of the sensor.
t_vis_1
The exposure time of the first sensor during a visible-light intensity measurement. Higher values correspond to longer exposure, increasing the sensitivity of the sensor.
t_ir_2
The exposure time of the second sensor during an infrared intensity measurement. Higher values correspond to longer exposure, increasing the sensitivity of the sensor.
t_vis_2
The exposure time of the second sensor during a visible-light intensity measurement. Higher values correspond to longer exposure, increasing the sensitivity of the sensor.
t_ir_3
The exposure time of the third sensor during an infrared intensity measurement. Higher values correspond to longer exposure, increasing the sensitivity of the sensor.
t_vis_3
The exposure time of the third sensor during a visible-light intensity measurement. Higher values correspond to longer exposure, increasing the sensitivity of the sensor.
diode_ir_1
The photodiode used by the first light sensor when taking an infrared measurement, corresponding to the small (0), medium(1) and large (2) photodiodes. Larger values increase the sensitivity of the sensor.
diode_vis_1
The photodiode used by the first light sensor when taking a visible-light measurement, corresponding to the small (0) and medium (1) photodiodes. Larger values increase the sensitivity of the sensor.
diode_ir_2
The photodiode used by the second light sensor when taking an infrared measurement, corresponding to the small (0), medium (1) and large (2) photodiodes. Larger values increase the sensitivity of the sensor.
diode_vis_2
The photodiode used by the second light sensor when taking a visible-light measurement, corresponding to the small (0) and medium (1) photodiodes. Larger values increase the sensitivity of the sensor.
diode_ir_3
The photodiode used by the third light sensor when taking an infrared measurement, corresponding to the small (0), medium (1) and large (2) photodiodes. Larger values increase the sensitivity of the sensor.
diode_vis_3
The photodiode used by the third light sensor when taking a visible-light measurement, corresponding to the small (0) and medium (1) photodiodes. Larger values increase the sensitivity of the sensor.
led_1_ir
The brightness setting of the infrared (IR) LED above the first light-intensity sensor. Higher values correspond to higher brightness.
led_1_uv
The brightness setting of the ultraviolet (UV) LED above the first light-intensity sensor. Higher values correspond to higher brightness.
led_2_ir
The brightness setting of the infrared (IR) LED above the second light-intensity sensor. Higher values correspond to higher brightness.
led_2_uv
The brightness setting of the ultraviolet (UV) LED above the second light-intensity sensor. Higher values correspond to higher brightness.
led_3_ir
The brightness setting of the infrared (IR) LED above the third light-intensity sensor. Higher values correspond to higher brightness.
led_3_uv
The brightness setting of the ultraviolet (UV) LED above the third light-intensity sensor. Higher values correspond to higher brightness.
current_led_1_ir
Measurement (in Amperes) of the current drawn by the IR LED above the first sensor.
current_led_1_ir_raw
The uncalibrated measurement, i.e., the raw ADC output, corresponding to the measurement current_led_1_ir.
offset_current_led_1_ir
The reference voltage (offset) of the ADC producing the current_led_1_ir and current_led_1_ir_raw measurements. The actual reference voltage (in Volts) is given by Because the signal from the current sensor is passed through an inverting amplifier and substracted from the reference voltage, higher values of offset_current_led_1_ir result in higher values of current_led_1_ir_raw.
sps_current_led_1_ir
The data rate of the ADC producing the current_led_1_ir and current_led_1_ir_raw measurements. Lower values mean the ADC accumulates more readings to produce a single measurement, reducing noise but also lowering the measurement speed. The actual data rates are (respectively) and samples per second.
res_current_led_1_ir
The resolution of the ADC producing the current_led_1_ir and current_led_1_ir_raw measurements. Higher values mean a higher resolution, where a smaller voltage range is mapped to the ADC output range [-32768, 32767]. The voltage ranges are, respectively, and Volts. The reading will saturate, i.e., clamp at -32768 or 32767, if the input voltage exceeds the set range.
current_led_1_uv
Measurement (in Amperes) of the current drawn by the UV LED above the first sensor.
current_led_1_uv_raw
The uncalibrated measurement, i.e., the raw ADC output, corresponding to the measurement current_led_1_uv.
offset_current_led_1_uv
The reference voltage (offset) of the ADC producing the current_led_1_uv and current_led_1_uv_raw measurements. The actual reference voltage (in Volts) is given by Because the signal from the current sensor is passed through an inverting amplifier and substracted from the reference voltage, higher values of offset_current_led_1_uv result in higher values of current_led_1_uv_raw.
sps_current_led_1_uv
The data rate of the ADC producing the current_led_1_uv and current_led_1_uv_raw measurements. Lower values mean the ADC accumulates more readings to produce a single measurement, reducing noise but also lowering the measurement speed. The actual data rates are (respectively) and samples per second.
res_current_led_1_uv
The resolution of the ADC producing the current_led_1_uv and current_led_1_uv_raw measurements. Higher values mean a higher resolution, where a smaller voltage range is mapped to the ADC output range [-32768, 32767]. The voltage ranges are, respectively, and Volts. The reading will saturate, i.e., clamp at -32768 or 32767, if the input voltage exceeds the set range.
current_led_2_ir
Measurement (in Amperes) of the current drawn by the IR LED above the second sensor.
current_led_2_ir_raw
The uncalibrated measurement, i.e., the raw ADC output, corresponding to the measurement current_led_2_ir.
offset_current_led_2_ir
The reference voltage (offset) of the ADC producing the current_led_2_ir and current_led_2_ir_raw measurements. The actual reference voltage (in Volts) is given by Because the signal from the current sensor is passed through an inverting amplifier and substracted from the reference voltage, higher values of offset_current_led_2_ir result in higher values of current_led_2_ir_raw.
sps_current_led_2_ir
The data rate of the ADC producing the current_led_2_ir and current_led_2_ir_raw measurements. Lower values mean the ADC accumulates more readings to produce a single measurement, reducing noise but also lowering the measurement speed. The actual data rates are (respectively) and samples per second.
res_current_led_2_ir
The resolution of the ADC producing the current_led_2_ir and current_led_2_ir_raw measurements. Higher values mean a higher resolution, where a smaller voltage range is mapped to the ADC output range [-32768, 32767]. The voltage ranges are, respectively, and Volts. The reading will saturate, i.e., clamp at -32768 or 32767, if the input voltage exceeds the set range.
current_led_2_uv
Measurement (in Amperes) of the current drawn by the UV LED above the second sensor.
current_led_2_uv_raw
The uncalibrated measurement, i.e., the raw ADC output, corresponding to the measurement current_led_2_uv.
offset_current_led_2_uv
The reference voltage (offset) of the ADC producing the current_led_2_uv and current_led_2_uv_raw measurements. The actual reference voltage (in Volts) is given by Because the signal from the current sensor is passed through an inverting amplifier and substracted from the reference voltage, higher values of offset_current_led_2_uv result in higher values of current_led_2_uv_raw.
sps_current_led_2_uv
The data rate of the ADC producing the current_led_2_uv and current_led_2_uv_raw measurements. Lower values mean the ADC accumulates more readings to produce a single measurement, reducing noise but also lowering the measurement speed. The actual data rates are (respectively) and samples per second.
res_current_led_2_uv
The resolution of the ADC producing the current_led_2_uv and current_led_2_uv_raw measurements. Higher values mean a higher resolution, where a smaller voltage range is mapped to the ADC output range [-32768, 32767]. The voltage ranges are, respectively, and Volts. The reading will saturate, i.e., clamp at -32768 or 32767, if the input voltage exceeds the set range.
current_led_3_ir
Measurement (in Amperes) of the current drawn by the IR LED above the third sensor.
current_led_3_ir_raw
The uncalibrated measurement, i.e., the raw ADC output, corresponding to the measurement current_led_3_ir.
offset_current_led_3_ir
The reference voltage (offset) of the ADC producing the current_led_3_ir and current_led_3_ir_raw measurements. The actual reference voltage (in Volts) is given by Because the signal from the current sensor is passed through an inverting amplifier and substracted from the reference voltage, higher values of offset_current_led_3_ir result in higher values of current_led_3_ir_raw.
sps_current_led_3_ir
The data rate of the ADC producing the current_led_3_ir and current_led_3_ir_raw measurements. Lower values mean the ADC accumulates more readings to produce a single measurement, reducing noise but also lowering the measurement speed. The actual data rates are (respectively) and samples per second.
res_current_led_3_ir
The resolution of the ADC producing the current_led_3_ir and current_led_3_ir_raw measurements. Higher values mean a higher resolution, where a smaller voltage range is mapped to the ADC output range [-32768, 32767]. The voltage ranges are, respectively, and Volts. The reading will saturate, i.e., clamp at -32768 or 32767, if the input voltage exceeds the set range.
current_led_3_uv
Measurement (in Amperes) of the current drawn by the UV LED above the third sensor.
current_led_3_uv_raw
The uncalibrated measurement, i.e., the raw ADC output, corresponding to the measurement current_led_3_uv.
offset_current_led_3_uv
The reference voltage (offset) of the ADC producing the current_led_3_uv and current_led_3_uv_raw measurements. The actual reference voltage (in Volts) is given by Because the signal from the current sensor is passed through an inverting amplifier and substracted from the reference voltage, higher values of offset_current_led_3_uv result in higher values of current_led_3_uv_raw.
sps_current_led_3_uv
The data rate of the ADC producing the current_led_3_uv and current_led_3_uv_raw measurements. Lower values mean the ADC accumulates more readings to produce a single measurement, reducing noise but also lowering the measurement speed. The actual data rates are (respectively) and samples per second.
res_current_led_3_uv
The resolution of the ADC producing the current_led_3_uv and current_led_3_uv_raw measurements. Higher values mean a higher resolution, where a smaller voltage range is mapped to the ADC output range [-32768, 32767]. The voltage ranges are, respectively, and Volts. The reading will saturate, i.e., clamp at -32768 or 32767, if the input voltage exceeds the set range.
current_supply
The current drawn by the chamber and all its components, including the onboard computer and server. Used for diagnosis.
current_supply_raw
The uncalibrated measurement, i.e., the raw ADC output, corresponding to the measurement current_supply.
pot_1_volts
The raw voltage (in volts) of the first angle sensor. Used for diagnosis.
pot_2_volts
The raw voltage (in volts) of the second angle sensor. Used for diagnosis.
Citation
If you use this documentation, our open-source datasets, or Remote Lab in your scientific work, please consider citing:
References
[Gamella 2025a] [PDF] Gamella, Juan L., Peters, Jonas & Bühlmann, Peter. Causal chambers as a real-world physical testbed for AI methodology. Nat Mach Intell 7, 107–118 (2025).
[Gamella 2025b] [PDF] Gamella*, Juan L. , Bing*, Simon & Runge, Jakob. Sanity Checking Causal Representation Learning on a Simple Real-World System. ICML 2025.
Last updated
