> For the complete documentation index, see [llms.txt](https://docs.causalchamber.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.causalchamber.ai/the-chambers/original-prototypes.md).

# 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](/remote-lab/quickstart.md) 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>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.causalchamber.ai/the-chambers/original-prototypes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
