# Original prototypes

The original prototypes (Mk1) of the Light Tunnel and Wind Tunnel were presented in an [open-access paper](https://www.nature.com/articles/s42256-024-00964-x) in Nature Machine Intelligence, together with their open-source [blueprints](https://github.com/juangamella/causal-chamber/tree/main/hardware) and a collection of [public datasets](https://github.com/juangamella/causal-chamber).

The chambers available through the [Remote Lab](https://docs.causalchamber.ai/remote-lab/quickstart) correspond to the new models (Mk2) of these chambers. They offer more variables than the original Mk1 prototypes used to collect many datasets in the [dataset repository](https://github.com/juangamella/causal-chamber). To make it easier to replicate experiments from the repository, we provide a mapping between the old and new variables.

<details>

<summary>Light Tunnel: mapping from old (Mk1) to new (Mk2) variables</summary>

**Note:** variables that were removed in the new Mk2 models are marked with `None`

{% code overflow="wrap" %}

```python
lt_mk1_to_mk2 = {
    "timestamp": "timestamp",
    "config": None,
    "counter": "counter",
    "flag": "flag",
    "intervention": "intervention",
    "red": "red",
    "green": "green",
    "blue": "blue",
    "osr_c": "sps_current_ls",
    "v_c": "offset_current_ls",
    "current": "current_ls_raw",
    "pol_1": "pol_1",
    "pol_2": "pol_2",
    "osr_angle_1": "sps_angle_1",
    "osr_angle_2": "sps_angle_2",
    "v_angle_1": "offset_angle_1",
    "v_angle_2": "offset_angle_2",
    "angle_1": "angle_1_raw",
    "angle_2": "angle_2_raw",
    "ir_1": "ir_1",
    "vis_1": "vis_1",
    "ir_2": "ir_2",
    "vis_2": "vis_2",
    "ir_3": "ir_3",
    "vis_3": "vis_3",
    "l_11": "led_1_ir",
    "l_12": "led_1_uv",
    "l_21": "led_2_ir",
    "l_22": "led_2_uv",
    "l_31": "led_3_ir",
    "l_32": "led_3_uv",
    "diode_ir_1": "diode_ir_1",
    "diode_vis_1": "diode_vis_1",
    "diode_ir_2": "diode_ir_2",
    "diode_vis_2": "diode_vis_2",
    "diode_ir_3": "diode_ir_3",
    "diode_vis_3": "diode_vis_3",
    "t_ir_1": "t_ir_1",
    "t_vis_1": "t_vis_1",
    "t_ir_2": "t_ir_2",
    "t_vis_2": "t_vis_2",
    "t_ir_3": "t_ir_3",
    "t_vis_3": "t_vis_3",
    "camera": None,
    "v_board": None,
    "v_reg": None,
}

```

{% endcode %}

</details>

<details>

<summary>Wind Tunnel: mapping from old (Mk1) to new (Mk2) variables</summary>

**Note:** variables that were removed in the new Mk2 models are marked with `None`

{% code overflow="wrap" %}

```python
wt_mk1_to_mk2 = {
    "timestamp":          "timestamp",
    "config":             None,
    "counter":            "counter",
    "flag":               "flag",
    "intervention":       "intervention",
    "hatch":              "hatch",
    "pot_1":              None,
    "pot_2":              None,
    "osr_1":              None,
    "osr_2":              None,
    "osr_mic":            "sps_mic",
    "osr_in":             "sps_current_in",
    "osr_out":            "sps_current_out",
    "osr_upwind":         "osr_pressure_upwind",
    "osr_downwind":       "osr_pressure_downwind",
    "osr_ambient":        "osr_pressure_ambient",
    "osr_intake":         "osr_pressure_intake",
    "v_1":                None,
    "v_2":                None,
    "v_mic":              "offset_mic",
    "v_in":               "offset_current_in",
    "v_out":              "offset_current_out",
    "load_in":            "load_in",
    "load_out":           "load_out",
    "current_in":         "current_in_raw",
    "current_out":        "current_out_raw",
    "res_in":             "res_rpm_in",
    "res_out":            "res_rpm_out",
    "rpm_in":             "rpm_in",
    "rpm_out":            "rpm_out",
    "pressure_upwind":    "pressure_upwind",
    "pressure_downwind":  "pressure_downwind",
    "pressure_ambient":   "pressure_ambient",
    "pressure_intake":    "pressure_intake",
    "mic":                "mic_raw",
    "signal_1":           None,
    "signal_2":           None,
}
```

{% endcode %}

</details>
