Skip to content

Add DCC'26 workshop notebook suite (participant + solutions)#62

Open
SoheylM wants to merge 64 commits into
mainfrom
codex/dcc26-workshop-notebooks
Open

Add DCC'26 workshop notebook suite (participant + solutions)#62
SoheylM wants to merge 64 commits into
mainfrom
codex/dcc26-workshop-notebooks

Conversation

@SoheylM

@SoheylM SoheylM commented Mar 16, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR adds the DCC'26 workshop notebook suite to EngiOpt with participant and facilitator tracks.

What is included

  • New workshops/dcc26/ folder with:
    • participant/ notebooks with guided PUBLIC FILL-IN exercises and checkpoints
    • solutions/ notebooks for facilitators
    • workshop runbook and pedagogy blueprint docs
    • helper utilities and a local requirements snapshot
  • Notebook 03 scaffold upgraded to a PyBullet robotics co-design problem (PlanarManipulatorCoDesignProblem)
  • Optional EngiOpt generative extension in Notebook 03 using engiopt.cgan_1d
  • Colab-friendly dependency bootstrap cells across notebooks
  • README updates linking workshop assets
  • Git ignore updates for workshop-generated artifacts

Public API impact

  • No changes to EngiBench/EngiOpt core runtime APIs.
  • This PR adds tutorial/workshop assets only.

Notes for review

Please focus on:

  1. participant notebook clarity and pacing
  2. Colab reliability
  3. documentation and public-repo hygiene

Validation

  • Notebook code cells were iteratively smoke-checked and compile-checked during development.
  • Notebook JSON has no execution counts or persisted outputs.

SoheylM added 30 commits March 4, 2026 08:33
@SoheylM SoheylM requested a review from mkeeler43 March 16, 2026 13:45
SoheylM and others added 29 commits March 16, 2026 14:49
Includes participant and solution notebooks (00-03), expanded
notebook_helpers with training/evaluation/visualization utilities,
and asset images for notebook display. Notebooks have Colab bootstrap
cells that install dependencies from this branch.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
On Colab, ../utils doesn't exist since notebooks open standalone.
Now the utils import cell downloads notebook_helpers.py and __init__.py
from GitHub raw URLs when running in Colab. Also updates NB00 asset
image references to use GitHub URLs instead of relative paths.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
engibench imports sqlitedict transitively (via airfoil problem),
so it must be explicitly installed on Colab.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
BUILTIN_PROBLEMS imports every problem module, which requires all
problem dependencies (ceviche, sqlitedict, etc.) to be installed.
Using engibench[all] ensures they are all available.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sets notebook metadata so Colab opens with GPU runtime by default.
NB01 also prints a warning with instructions if no GPU is available,
since training is ~1 min/epoch on CPU vs ~3 sec/epoch on T4.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Use constrained_layout instead of tight_layout, and increase
colorbar padding so it no longer covers the Mean Training subplot.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
A four-notebook narrative track (framing → training → evaluation → authoring
a new problem) that mirrors the participant/solution split but is run top-to-
bottom as a read-along rather than fill-in-the-blank exercises.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Falls back to `volume` (heatconduction2d) or the design-space midpoint
(photonics2d) when `volfrac` is absent, so the guided-tour notebook can
run end-to-end on more than just beams2d.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add a per-constraint violation breakdown after the feasibility bar chart so
the reader sees which named rule (e.g. volume_fraction_bound) the generator
is breaking, plus its category and an example cause — turning "X% feasible"
into actionable signal about the loss/conditioning vs solver-stability axis.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Convert British→American spelling across the four simple notebooks
(optimizer, color, gray, normalize, etc.) and add the helper support
needed to run them standalone:

- rebuild_notebook01_artifacts: regenerate train/generate/export
  artifacts so Notebook 02 runs in a fresh runtime
- show_design_set: grid preview of designs before metrics
- show_pairwise_distance_heatmap: side-by-side generated-vs-baseline
  comparison on a shared color scale

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Apply ruff format to notebook_helpers and silence PLR0913 on the
boilerplate rebuild_notebook01_artifacts helper. Drop the unused F401
noqa (keep F403) on the workshop utils shims.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Move the deferred `Generator` import in notebook_helpers to the top level
to satisfy ruff PLC0415. The cgan module shares torch/numpy/engibench deps
already imported here and has no circular dependency on workshops.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants