Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ─────────────────────────────────────────────────────────────
seed      = 1900
size      = 44
colormap  = "magma"
n_blobs   = 1

# ── Data ────────────────────────────────────────────────────────────────────
x = np.linspace(-3.0, 3.0, size)
y = np.linspace(-2.0, 4.0, size)
X, Y = np.meshgrid(x, y)
Z = np.zeros((size, size))

Z += -1.554388 * np.exp(
    -((X - 0.610856)**2 / (2 * 1.037198**2)
      + (Y - 1.517410)**2 / (2 * 0.679781**2))
)

# ── Plot ────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(6, 5))
im = ax.pcolormesh(X, Y, Z, cmap=colormap, shading="auto")
fig.colorbar(im, ax=ax, label="Intensity")
ax.set_title(f"Gaussian Heatmap  ({n_blobs} blob(s))")
ax.set_xlabel("X")
ax.set_ylabel("Y")
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ─────────────────────────────────────────────────────────────
seed      = 1901
size      = 27
colormap  = "plasma"
n_blobs   = 3

# ── Data ────────────────────────────────────────────────────────────────────
x = np.linspace(-3.0, 3.0, size)
y = np.linspace(-2.0, 4.0, size)
X, Y = np.meshgrid(x, y)
Z = np.zeros((size, size))

Z += -1.909467 * np.exp(
    -((X - 0.009287)**2 / (2 * 1.277628**2)
      + (Y - 2.744406)**2 / (2 * 0.629802**2))
)
Z += 0.714654 * np.exp(
    -((X - -0.036967)**2 / (2 * 0.752310**2)
      + (Y - 2.230718)**2 / (2 * 1.069237**2))
)
Z += -1.857357 * np.exp(
    -((X - -0.940575)**2 / (2 * 0.504185**2)
      + (Y - 0.917902)**2 / (2 * 0.508448**2))
)

# ── Plot ────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(6, 5))
im = ax.pcolormesh(X, Y, Z, cmap=colormap, shading="auto")
fig.colorbar(im, ax=ax, label="Intensity")
ax.set_title(f"Gaussian Heatmap  ({n_blobs} blob(s))")
ax.set_xlabel("X")
ax.set_ylabel("Y")
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ─────────────────────────────────────────────────────────────
seed      = 1902
size      = 46
colormap  = "inferno"
n_blobs   = 2

# ── Data ────────────────────────────────────────────────────────────────────
x = np.linspace(-3.0, 3.0, size)
y = np.linspace(-2.0, 4.0, size)
X, Y = np.meshgrid(x, y)
Z = np.zeros((size, size))

Z += 1.398239 * np.exp(
    -((X - -0.751440)**2 / (2 * 0.817455**2)
      + (Y - 0.277919)**2 / (2 * 0.675317**2))
)
Z += -1.122808 * np.exp(
    -((X - -0.091660)**2 / (2 * 0.598733**2)
      + (Y - 1.789293)**2 / (2 * 0.908334**2))
)

# ── Plot ────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(6, 5))
im = ax.pcolormesh(X, Y, Z, cmap=colormap, shading="auto")
fig.colorbar(im, ax=ax, label="Intensity")
ax.set_title(f"Gaussian Heatmap  ({n_blobs} blob(s))")
ax.set_xlabel("X")
ax.set_ylabel("Y")
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ─────────────────────────────────────────────────────────────
seed      = 1903
size      = 30
colormap  = "viridis"
n_blobs   = 2

# ── Data ────────────────────────────────────────────────────────────────────
x = np.linspace(-3.0, 3.0, size)
y = np.linspace(-2.0, 4.0, size)
X, Y = np.meshgrid(x, y)
Z = np.zeros((size, size))

Z += -1.033551 * np.exp(
    -((X - -1.404482)**2 / (2 * 1.339289**2)
      + (Y - 1.882034)**2 / (2 * 1.391416**2))
)
Z += 1.047285 * np.exp(
    -((X - 0.383779)**2 / (2 * 0.635175**2)
      + (Y - 1.768766)**2 / (2 * 1.234761**2))
)

# ── Plot ────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(6, 5))
im = ax.pcolormesh(X, Y, Z, cmap=colormap, shading="auto")
fig.colorbar(im, ax=ax, label="Intensity")
ax.set_title(f"Gaussian Heatmap  ({n_blobs} blob(s))")
ax.set_xlabel("X")
ax.set_ylabel("Y")
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ─────────────────────────────────────────────────────────────
seed      = 1904
size      = 25
colormap  = "plasma"
n_blobs   = 3

# ── Data ────────────────────────────────────────────────────────────────────
x = np.linspace(-3.0, 3.0, size)
y = np.linspace(-2.0, 4.0, size)
X, Y = np.meshgrid(x, y)
Z = np.zeros((size, size))

Z += -1.254077 * np.exp(
    -((X - -1.025582)**2 / (2 * 0.946983**2)
      + (Y - -0.990845)**2 / (2 * 1.097465**2))
)
Z += 1.991914 * np.exp(
    -((X - 0.660525)**2 / (2 * 1.032535**2)
      + (Y - 1.696424)**2 / (2 * 1.404641**2))
)
Z += -1.787233 * np.exp(
    -((X - -1.538434)**2 / (2 * 0.950388**2)
      + (Y - 2.198314)**2 / (2 * 0.573303**2))
)

# ── Plot ────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(6, 5))
im = ax.pcolormesh(X, Y, Z, cmap=colormap, shading="auto")
fig.colorbar(im, ax=ax, label="Intensity")
ax.set_title(f"Gaussian Heatmap  ({n_blobs} blob(s))")
ax.set_xlabel("X")
ax.set_ylabel("Y")
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ─────────────────────────────────────────────────────────────
seed      = 1905
size      = 45
colormap  = "magma"
n_blobs   = 2

# ── Data ────────────────────────────────────────────────────────────────────
x = np.linspace(-3.0, 3.0, size)
y = np.linspace(-2.0, 4.0, size)
X, Y = np.meshgrid(x, y)
Z = np.zeros((size, size))

Z += -1.252087 * np.exp(
    -((X - -1.716627)**2 / (2 * 1.418281**2)
      + (Y - -0.529773)**2 / (2 * 1.283903**2))
)
Z += 1.412459 * np.exp(
    -((X - 1.529702)**2 / (2 * 1.447362**2)
      + (Y - -0.880475)**2 / (2 * 1.167849**2))
)

# ── Plot ────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(6, 5))
im = ax.pcolormesh(X, Y, Z, cmap=colormap, shading="auto")
fig.colorbar(im, ax=ax, label="Intensity")
ax.set_title(f"Gaussian Heatmap  ({n_blobs} blob(s))")
ax.set_xlabel("X")
ax.set_ylabel("Y")
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ─────────────────────────────────────────────────────────────
seed      = 1906
size      = 35
colormap  = "viridis"
n_blobs   = 1

# ── Data ────────────────────────────────────────────────────────────────────
x = np.linspace(-3.0, 3.0, size)
y = np.linspace(-2.0, 4.0, size)
X, Y = np.meshgrid(x, y)
Z = np.zeros((size, size))

Z += -1.478871 * np.exp(
    -((X - -0.752787)**2 / (2 * 1.151201**2)
      + (Y - -0.425881)**2 / (2 * 1.444369**2))
)

# ── Plot ────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(6, 5))
im = ax.pcolormesh(X, Y, Z, cmap=colormap, shading="auto")
fig.colorbar(im, ax=ax, label="Intensity")
ax.set_title(f"Gaussian Heatmap  ({n_blobs} blob(s))")
ax.set_xlabel("X")
ax.set_ylabel("Y")
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ─────────────────────────────────────────────────────────────
seed      = 1907
size      = 42
colormap  = "viridis"
n_blobs   = 3

# ── Data ────────────────────────────────────────────────────────────────────
x = np.linspace(-3.0, 3.0, size)
y = np.linspace(-2.0, 4.0, size)
X, Y = np.meshgrid(x, y)
Z = np.zeros((size, size))

Z += 0.592669 * np.exp(
    -((X - 1.216654)**2 / (2 * 1.417214**2)
      + (Y - -0.698115)**2 / (2 * 1.244495**2))
)
Z += 1.383131 * np.exp(
    -((X - 0.968027)**2 / (2 * 0.864172**2)
      + (Y - 0.815769)**2 / (2 * 1.395209**2))
)
Z += 1.402953 * np.exp(
    -((X - 1.965273)**2 / (2 * 0.779246**2)
      + (Y - 1.011683)**2 / (2 * 1.077274**2))
)

# ── Plot ────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(6, 5))
im = ax.pcolormesh(X, Y, Z, cmap=colormap, shading="auto")
fig.colorbar(im, ax=ax, label="Intensity")
ax.set_title(f"Gaussian Heatmap  ({n_blobs} blob(s))")
ax.set_xlabel("X")
ax.set_ylabel("Y")
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ─────────────────────────────────────────────────────────────
seed      = 1908
size      = 26
colormap  = "viridis"
n_blobs   = 1

# ── Data ────────────────────────────────────────────────────────────────────
x = np.linspace(-3.0, 3.0, size)
y = np.linspace(-2.0, 4.0, size)
X, Y = np.meshgrid(x, y)
Z = np.zeros((size, size))

Z += -0.672556 * np.exp(
    -((X - 0.812188)**2 / (2 * 0.582840**2)
      + (Y - 1.030430)**2 / (2 * 1.414861**2))
)

# ── Plot ────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(6, 5))
im = ax.pcolormesh(X, Y, Z, cmap=colormap, shading="auto")
fig.colorbar(im, ax=ax, label="Intensity")
ax.set_title(f"Gaussian Heatmap  ({n_blobs} blob(s))")
ax.set_xlabel("X")
ax.set_ylabel("Y")
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ─────────────────────────────────────────────────────────────
seed      = 1909
size      = 34
colormap  = "inferno"
n_blobs   = 2

# ── Data ────────────────────────────────────────────────────────────────────
x = np.linspace(-3.0, 3.0, size)
y = np.linspace(-2.0, 4.0, size)
X, Y = np.meshgrid(x, y)
Z = np.zeros((size, size))

Z += -1.811477 * np.exp(
    -((X - 1.913968)**2 / (2 * 1.123902**2)
      + (Y - 1.897390)**2 / (2 * 1.075150**2))
)
Z += 1.836162 * np.exp(
    -((X - 0.490576)**2 / (2 * 1.139029**2)
      + (Y - 2.586806)**2 / (2 * 0.828708**2))
)

# ── Plot ────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(6, 5))
im = ax.pcolormesh(X, Y, Z, cmap=colormap, shading="auto")
fig.colorbar(im, ax=ax, label="Intensity")
ax.set_title(f"Gaussian Heatmap  ({n_blobs} blob(s))")
ax.set_xlabel("X")
ax.set_ylabel("Y")
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ─────────────────────────────────────────────────────────────
seed     = 2900
n_points = 161

# ── Data ────────────────────────────────────────────────────────────────────
x = np.linspace(0.0, 2.0 * np.pi, n_points)

y0 = 0.831950 * np.sin(1.118913 * x + 1.008837)
y1 = 1.338358 * np.sin(0.932295 * x + 2.234393)

# ── Plot ────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x, y0, color="tab:blue", label="A=0.83, f=1.12, φ=1.01")
ax.plot(x, y1, color="tab:orange", label="A=1.34, f=0.93, φ=2.23")
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.set_title("Sinusoidal Line Plot  (2 curve(s))")
ax.legend(fontsize=8)
ax.grid(True, alpha=0.3)
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ─────────────────────────────────────────────────────────────
seed     = 2901
n_points = 145

# ── Data ────────────────────────────────────────────────────────────────────
x = np.linspace(0.0, 2.0 * np.pi, n_points)

y0 = 1.155640 * np.sin(1.302779 * x + 4.981734)
y1 = 0.911540 * np.sin(2.947745 * x + 2.938028)
y2 = 0.859045 * np.sin(1.454283 * x + 4.031508)

# ── Plot ────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x, y0, color="tab:blue", label="A=1.16, f=1.30, φ=4.98")
ax.plot(x, y1, color="tab:orange", label="A=0.91, f=2.95, φ=2.94")
ax.plot(x, y2, color="tab:green", label="A=0.86, f=1.45, φ=4.03")
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.set_title("Sinusoidal Line Plot  (3 curve(s))")
ax.legend(fontsize=8)
ax.grid(True, alpha=0.3)
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ─────────────────────────────────────────────────────────────
seed     = 2902
n_points = 80

# ── Data ────────────────────────────────────────────────────────────────────
x = np.linspace(0.0, 2.0 * np.pi, n_points)

y0 = 0.781911 * np.sin(1.543293 * x + 4.144060)

# ── Plot ────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x, y0, color="tab:blue", label="A=0.78, f=1.54, φ=4.14")
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.set_title("Sinusoidal Line Plot  (1 curve(s))")
ax.legend(fontsize=8)
ax.grid(True, alpha=0.3)
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ─────────────────────────────────────────────────────────────
seed     = 2903
n_points = 141

# ── Data ────────────────────────────────────────────────────────────────────
x = np.linspace(0.0, 2.0 * np.pi, n_points)

y0 = 1.857967 * np.sin(0.942220 * x + 5.084951)
y1 = 0.590013 * np.sin(1.142741 * x + 0.572998)
y2 = 1.924395 * np.sin(1.682643 * x + 4.928356)

# ── Plot ────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x, y0, color="tab:blue", label="A=1.86, f=0.94, φ=5.08")
ax.plot(x, y1, color="tab:orange", label="A=0.59, f=1.14, φ=0.57")
ax.plot(x, y2, color="tab:green", label="A=1.92, f=1.68, φ=4.93")
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.set_title("Sinusoidal Line Plot  (3 curve(s))")
ax.legend(fontsize=8)
ax.grid(True, alpha=0.3)
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ─────────────────────────────────────────────────────────────
seed     = 2904
n_points = 153

# ── Data ────────────────────────────────────────────────────────────────────
x = np.linspace(0.0, 2.0 * np.pi, n_points)

y0 = 0.514431 * np.sin(1.513446 * x + 0.116435)

# ── Plot ────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x, y0, color="tab:blue", label="A=0.51, f=1.51, φ=0.12")
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.set_title("Sinusoidal Line Plot  (1 curve(s))")
ax.legend(fontsize=8)
ax.grid(True, alpha=0.3)
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ─────────────────────────────────────────────────────────────
seed     = 2905
n_points = 165

# ── Data ────────────────────────────────────────────────────────────────────
x = np.linspace(0.0, 2.0 * np.pi, n_points)

y0 = 0.607619 * np.sin(1.667818 * x + 6.143726)
y1 = 1.205378 * np.sin(1.973711 * x + 0.172039)
y2 = 1.652390 * np.sin(2.122295 * x + 0.591268)

# ── Plot ────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x, y0, color="tab:blue", label="A=0.61, f=1.67, φ=6.14")
ax.plot(x, y1, color="tab:orange", label="A=1.21, f=1.97, φ=0.17")
ax.plot(x, y2, color="tab:green", label="A=1.65, f=2.12, φ=0.59")
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.set_title("Sinusoidal Line Plot  (3 curve(s))")
ax.legend(fontsize=8)
ax.grid(True, alpha=0.3)
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ─────────────────────────────────────────────────────────────
seed     = 2906
n_points = 115

# ── Data ────────────────────────────────────────────────────────────────────
x = np.linspace(0.0, 2.0 * np.pi, n_points)

y0 = 0.617971 * np.sin(1.020470 * x + 0.512607)
y1 = 0.790376 * np.sin(0.861338 * x + 0.057956)
y2 = 1.269849 * np.sin(1.617446 * x + 5.271811)

# ── Plot ────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x, y0, color="tab:blue", label="A=0.62, f=1.02, φ=0.51")
ax.plot(x, y1, color="tab:orange", label="A=0.79, f=0.86, φ=0.06")
ax.plot(x, y2, color="tab:green", label="A=1.27, f=1.62, φ=5.27")
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.set_title("Sinusoidal Line Plot  (3 curve(s))")
ax.legend(fontsize=8)
ax.grid(True, alpha=0.3)
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ─────────────────────────────────────────────────────────────
seed     = 2907
n_points = 85

# ── Data ────────────────────────────────────────────────────────────────────
x = np.linspace(0.0, 2.0 * np.pi, n_points)

y0 = 1.032634 * np.sin(2.206059 * x + 2.518333)

# ── Plot ────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x, y0, color="tab:blue", label="A=1.03, f=2.21, φ=2.52")
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.set_title("Sinusoidal Line Plot  (1 curve(s))")
ax.legend(fontsize=8)
ax.grid(True, alpha=0.3)
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ─────────────────────────────────────────────────────────────
seed     = 2908
n_points = 131

# ── Data ────────────────────────────────────────────────────────────────────
x = np.linspace(0.0, 2.0 * np.pi, n_points)

y0 = 0.698043 * np.sin(2.606526 * x + 5.039795)
y1 = 1.662470 * np.sin(1.724687 * x + 1.478118)
y2 = 1.207486 * np.sin(2.091718 * x + 0.338356)

# ── Plot ────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x, y0, color="tab:blue", label="A=0.70, f=2.61, φ=5.04")
ax.plot(x, y1, color="tab:orange", label="A=1.66, f=1.72, φ=1.48")
ax.plot(x, y2, color="tab:green", label="A=1.21, f=2.09, φ=0.34")
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.set_title("Sinusoidal Line Plot  (3 curve(s))")
ax.legend(fontsize=8)
ax.grid(True, alpha=0.3)
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ─────────────────────────────────────────────────────────────
seed     = 2909
n_points = 127

# ── Data ────────────────────────────────────────────────────────────────────
x = np.linspace(0.0, 2.0 * np.pi, n_points)

y0 = 1.044005 * np.sin(1.288522 * x + 3.606051)
y1 = 0.548443 * np.sin(2.583436 * x + 2.986435)
y2 = 1.236664 * np.sin(1.559843 * x + 5.118033)

# ── Plot ────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(7, 4))
ax.plot(x, y0, color="tab:blue", label="A=1.04, f=1.29, φ=3.61")
ax.plot(x, y1, color="tab:orange", label="A=0.55, f=2.58, φ=2.99")
ax.plot(x, y2, color="tab:green", label="A=1.24, f=1.56, φ=5.12")
ax.set_xlabel("x")
ax.set_ylabel("y")
ax.set_title("Sinusoidal Line Plot  (3 curve(s))")
ax.legend(fontsize=8)
ax.grid(True, alpha=0.3)
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ──────────────────────────────────────────────────────────────
seed      = 3900
n_petals  = 7    # k in r = A|cos(k·θ/2)|
amplitude = 1.821660
n_points  = 1000

# ── Data ────────────────────────────────────────────────────────────────────
theta = np.linspace(0.0, 2.0 * np.pi, n_points)
r     = amplitude * np.abs(np.cos(n_petals * theta / 2.0))

# ── Plot ─────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(subplot_kw={"projection": "polar"}, figsize=(5, 5))
ax.plot(theta, r, linewidth=1.5)
ax.set_title(
    f"Rose Curve  (k={n_petals}, A={amplitude:.2f})", pad=15
)
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ──────────────────────────────────────────────────────────────
seed      = 3901
n_petals  = 4    # k in r = A|cos(k·θ/2)|
amplitude = 1.977908
n_points  = 1000

# ── Data ────────────────────────────────────────────────────────────────────
theta = np.linspace(0.0, 2.0 * np.pi, n_points)
r     = amplitude * np.abs(np.cos(n_petals * theta / 2.0))

# ── Plot ─────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(subplot_kw={"projection": "polar"}, figsize=(5, 5))
ax.plot(theta, r, linewidth=1.5)
ax.set_title(
    f"Rose Curve  (k={n_petals}, A={amplitude:.2f})", pad=15
)
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ──────────────────────────────────────────────────────────────
seed      = 3902
n_petals  = 5    # k in r = A|cos(k·θ/2)|
amplitude = 1.288979
n_points  = 1000

# ── Data ────────────────────────────────────────────────────────────────────
theta = np.linspace(0.0, 2.0 * np.pi, n_points)
r     = amplitude * np.abs(np.cos(n_petals * theta / 2.0))

# ── Plot ─────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(subplot_kw={"projection": "polar"}, figsize=(5, 5))
ax.plot(theta, r, linewidth=1.5)
ax.set_title(
    f"Rose Curve  (k={n_petals}, A={amplitude:.2f})", pad=15
)
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ──────────────────────────────────────────────────────────────
seed      = 3903
n_petals  = 6    # k in r = A|cos(k·θ/2)|
amplitude = 1.576224
n_points  = 1000

# ── Data ────────────────────────────────────────────────────────────────────
theta = np.linspace(0.0, 2.0 * np.pi, n_points)
r     = amplitude * np.abs(np.cos(n_petals * theta / 2.0))

# ── Plot ─────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(subplot_kw={"projection": "polar"}, figsize=(5, 5))
ax.plot(theta, r, linewidth=1.5)
ax.set_title(
    f"Rose Curve  (k={n_petals}, A={amplitude:.2f})", pad=15
)
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ──────────────────────────────────────────────────────────────
seed      = 3904
n_petals  = 7    # k in r = A|cos(k·θ/2)|
amplitude = 1.635304
n_points  = 1000

# ── Data ────────────────────────────────────────────────────────────────────
theta = np.linspace(0.0, 2.0 * np.pi, n_points)
r     = amplitude * np.abs(np.cos(n_petals * theta / 2.0))

# ── Plot ─────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(subplot_kw={"projection": "polar"}, figsize=(5, 5))
ax.plot(theta, r, linewidth=1.5)
ax.set_title(
    f"Rose Curve  (k={n_petals}, A={amplitude:.2f})", pad=15
)
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ──────────────────────────────────────────────────────────────
seed      = 3905
n_petals  = 5    # k in r = A|cos(k·θ/2)|
amplitude = 1.350061
n_points  = 1000

# ── Data ────────────────────────────────────────────────────────────────────
theta = np.linspace(0.0, 2.0 * np.pi, n_points)
r     = amplitude * np.abs(np.cos(n_petals * theta / 2.0))

# ── Plot ─────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(subplot_kw={"projection": "polar"}, figsize=(5, 5))
ax.plot(theta, r, linewidth=1.5)
ax.set_title(
    f"Rose Curve  (k={n_petals}, A={amplitude:.2f})", pad=15
)
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ──────────────────────────────────────────────────────────────
seed      = 3906
n_petals  = 7    # k in r = A|cos(k·θ/2)|
amplitude = 1.654892
n_points  = 1000

# ── Data ────────────────────────────────────────────────────────────────────
theta = np.linspace(0.0, 2.0 * np.pi, n_points)
r     = amplitude * np.abs(np.cos(n_petals * theta / 2.0))

# ── Plot ─────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(subplot_kw={"projection": "polar"}, figsize=(5, 5))
ax.plot(theta, r, linewidth=1.5)
ax.set_title(
    f"Rose Curve  (k={n_petals}, A={amplitude:.2f})", pad=15
)
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ──────────────────────────────────────────────────────────────
seed      = 3907
n_petals  = 7    # k in r = A|cos(k·θ/2)|
amplitude = 1.984689
n_points  = 1000

# ── Data ────────────────────────────────────────────────────────────────────
theta = np.linspace(0.0, 2.0 * np.pi, n_points)
r     = amplitude * np.abs(np.cos(n_petals * theta / 2.0))

# ── Plot ─────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(subplot_kw={"projection": "polar"}, figsize=(5, 5))
ax.plot(theta, r, linewidth=1.5)
ax.set_title(
    f"Rose Curve  (k={n_petals}, A={amplitude:.2f})", pad=15
)
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ──────────────────────────────────────────────────────────────
seed      = 3908
n_petals  = 6    # k in r = A|cos(k·θ/2)|
amplitude = 1.757216
n_points  = 1000

# ── Data ────────────────────────────────────────────────────────────────────
theta = np.linspace(0.0, 2.0 * np.pi, n_points)
r     = amplitude * np.abs(np.cos(n_petals * theta / 2.0))

# ── Plot ─────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(subplot_kw={"projection": "polar"}, figsize=(5, 5))
ax.plot(theta, r, linewidth=1.5)
ax.set_title(
    f"Rose Curve  (k={n_petals}, A={amplitude:.2f})", pad=15
)
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ──────────────────────────────────────────────────────────────
seed      = 3909
n_petals  = 7    # k in r = A|cos(k·θ/2)|
amplitude = 1.407149
n_points  = 1000

# ── Data ────────────────────────────────────────────────────────────────────
theta = np.linspace(0.0, 2.0 * np.pi, n_points)
r     = amplitude * np.abs(np.cos(n_petals * theta / 2.0))

# ── Plot ─────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(subplot_kw={"projection": "polar"}, figsize=(5, 5))
ax.plot(theta, r, linewidth=1.5)
ax.set_title(
    f"Rose Curve  (k={n_petals}, A={amplitude:.2f})", pad=15
)
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```


Prompt:
You are evaluating a scientific visualization for **causal consistency**.

The following specification is the **symbolic generator** — it fully specifies
what the output plot should look like:

```python
import numpy as np
import matplotlib.pyplot as plt

# ── Parameters ─────────────────────────────────────────────────────────────
seed    = 4900
color   = "coral"

# ── Data ────────────────────────────────────────────────────────────────────
labels  = ['A', 'B', 'C', 'D']
heights = [1.49, 1.40, 3.60, 1.51]

# ── Plot ────────────────────────────────────────────────────────────────────
fig, ax = plt.subplots(figsize=(7, 4))
bars = ax.bar(labels, heights, color=color, edgecolor='white', linewidth=0.5)
ax.axhline(0, color='black', linewidth=0.8)
for bar, h in zip(bars, heights):
    va = 'bottom' if h >= 0 else 'top'
    offset = 0.05 if h >= 0 else -0.05
    ax.text(bar.get_x() + bar.get_width()/2, h + offset,
            f'{h:.2f}', ha='center', va=va, fontsize=8, fontweight='bold')
ax.set_title("Bar Chart  (4 categories)")
ax.set_xlabel("Category")
ax.set_ylabel("Value")
fig.tight_layout()
plt.show()
```

I am showing you an image that claims to be the output of this generator.

---

## Your Task

1. Read the specification carefully. Reason about what the plot should look like
   (shape, orientation, color mapping, symmetry, value signs, etc.).
2. Examine the attached image.
3. Decide whether the image is **causally consistent** with the generator.

If the image is **not** consistent, classify the inconsistency using exactly one
of these labels:

| Label | Meaning |
|---|---|
| `colormap_inversion` | The colormap used is different from what the code specifies |
| `axis_swap` | Axes or data dimensions are transposed or mirrored |
| `sign_inversion` | Values are negated — peaks and troughs (or bar directions) are swapped |
| `amplitude_scale` | The value scale is wrong — the colorbar, y-axis range, or bar value labels do not match the formula's amplitudes |
| `phase_shift` | The pattern is shifted from its correct position |
| `frequency_doubling` | The number of oscillations or cycles is wrong |
| `dc_offset` | The curves or point cloud are shifted away from their correct baseline |
| `wrong_petal_count` | The number of petals/lobes differs from what the formula produces |
| `symmetry_mismatch` | The image contains asymmetry that the code cannot produce |
| `bar_order_swap` | Two bars have had their heights swapped — a bar's value label contradicts the code's heights list |
| `coefficient_scale` | Polynomial coefficients are scaled but the formula in the spec is unchanged |
| `wrong_gravity` | Trajectory uses a different gravitational constant than the spec |
| `wrong_launch_angle` | Trajectory uses a different launch angle than the spec |
| `wrong_iteration_depth` | L-system rendered with a different iteration count than the spec |
| `wrong_angle` | L-system rendered with a different turn angle than the spec |

---

## Response Format

Respond with **only** this JSON object and nothing else:

```json
{
  "consistent": true | false,
  "bug_type": "<one label from the table above, or null if consistent>",
  "reasoning": "<1–3 sentences: what you expected vs. what you see>"
}
```