{
  "schemaVersion": 1,
  "lessonId": "welcome-01",
  "contentHash": "f15bc8e6b9ae9d88474253a7e4224a1c0d7f398f5a98b3f18f76fcbbdd5ef7e0",
  "rendererHash": "a1bd5b648f4731ae5d5f0a24811c2540d1a0a132149ce589d17c4113509cbedf",
  "kind": "executed",
  "generatedAt": "2026-10-20T10:45:04.797711+00:00",
  "provenance": "recorded_cpu_computation",
  "environment": {
    "backend": "cpu",
    "deviceCount": 1,
    "jax": "0.9.2",
    "numpy": "2.4.4",
    "matplotlib": "3.10.8"
  },
  "stdout": "Python: 3.14.3\nJAX: 0.9.2\nNumPy: 2.4.4\nBackend: cpu\nDevices: [CpuDevice(id=0)]\nSum: 6.0\n",
  "data": {
    "kind": "bar",
    "x": [
      0,
      1,
      2,
      3
    ],
    "labels": [
      "x[0]",
      "x[1]",
      "x[2]",
      "x[3]"
    ],
    "xlabel": "element index",
    "ylabel": "array value",
    "series": [
      {
        "label": "x",
        "y": [
          0.0,
          1.0,
          2.0,
          3.0
        ]
      },
      {
        "label": "x ** 2",
        "y": [
          0.0,
          1.0,
          4.0,
          9.0
        ]
      }
    ]
  },
  "diagram": {
    "title": "Where the first result comes from",
    "prediction": "The notebook imports JAX, but the terminal script does not. What should you compare first?",
    "reading": "Read downward: a command runs from a working folder, selects an interpreter, opens the file and imports its packages before computing. Arrows are dependencies, not measured time. A file-path failure happens before JAX arithmetic; an import failure points to the selected environment.",
    "alt": "Read downward: a command runs from a working folder, selects an interpreter, opens the file and imports its packages before computing. Arrows are dependencies, not measured time. A file-path failure happens before JAX arithmetic; an import failure points to the selected environment.",
    "scope": "Architecture and dataflow mechanism diagram.",
    "height": 6,
    "panel": {
      "kind": "graph",
      "nodes": [
        {
          "id": "0",
          "x": 5,
          "y": 1,
          "label": "Working folder + terminal command",
          "tone": "data",
          "w": 8,
          "h": 1.05
        },
        {
          "id": "1",
          "x": 5,
          "y": 2.7,
          "label": "Selected Python interpreter / environment",
          "tone": "data",
          "w": 8,
          "h": 1.05
        },
        {
          "id": "2",
          "x": 5,
          "y": 4.4,
          "label": "Saved first_experiment.py + JAX import",
          "tone": "data",
          "w": 8,
          "h": 1.05
        },
        {
          "id": "3",
          "x": 5,
          "y": 6.1,
          "label": "Computed sum + assertion + device receipt",
          "tone": "result",
          "w": 8,
          "h": 1.05
        }
      ],
      "edges": [
        {
          "from": "0",
          "to": "1"
        },
        {
          "from": "1",
          "to": "2"
        },
        {
          "from": "2",
          "to": "3"
        }
      ],
      "height": 7,
      "width": 10
    }
  }
}
