Skip to content

Notebook Utils Layout

The notebook tree now distinguishes between reusable helper modules and runnable notebook entrypoints:

  • notebooks/utils/ holds shared Python helpers that multiple notebooks import.
  • notebooks/generic/ holds generic notebook entrypoints such as Marimo scripts.
  • Environment-specific notebooks stay grouped under their existing environment folders like notebooks/gridworlds/... and notebooks/matrix/....

The main goal is to make notebooks/generic/ read like "generic notebooks" instead of a mixed directory that also contains importable support code. Shared orchestration moved into notebooks/utils/ includes experiment helpers, timing helpers, shielding helpers, environment registry helpers, and related graph/JAX utilities.

notebooks/generic/legend_mo.py also replaced the old notebooks/generics/legend_mo.py path so there is a single canonical home for generic notebook entrypoints.

When adding new notebook support code:

  • Put reusable, non-UI helpers in notebooks/utils/.
  • Put runnable notebooks, visual explorers, and one-off Marimo entrypoints in a notebook-oriented directory such as notebooks/generic/ or an environment-specific folder.
  • Prefer importing helpers via notebooks.utils.* from notebooks, tests, and docs to keep the separation obvious.