LearnChemE (CU Boulder) · "Monod Cell Growth Example (Bio)"
Monday build block · Monday, before coding
Produce: A hand-sketched growth curve taped next to the screen
In: LABLOOP-W01 Notebook
WEEK 01 · Mon 21 Sep → Sun 27 Sep 2026
UNDERSTAND · PRACTICE · KEEP EVIDENCE
Read the week in plain language, refresh the foundations, follow each challenge step by step, and check what evidence to keep. Includes worked examples, answer keys and prompts for visual study resources.
Use this within your existing weekly blocks. Your learning completion and research evidence remain in your current tracker and week files.
START HERE · 2 MINUTES
STATUS
| Deliverable | Acceptance | State |
|---|---|---|
simulator-design.mdBuild create + |
Implement X/S/P/DO balances, feed and volume terms, named parameters and units; document the scope of the simplified simulator. Acceptance: A repeatable trajectory and balance checks exist; any lag-phase behavior is explicitly modeled. | |
telemetry-demo.mdBuild create + |
Replay simulator measurements through MQTT to a local time-series store and a minimal graph; provide CSV replay if the Debian box is unavailable. Acceptance: A timestamped sample can be traced from generator to rendered curve. | |
simulation-manifest.csvBuild |
Generate 20 seeded batches including a labeled feed-stop fault; save configuration, label and generator version. Acceptance: Twenty reproducible outputs have known ground truth and no implied plant validation. | |
study-notes.mdLearning create + |
Selected exact free resources; bounded lesson/exercise; separate solution; quiz and grading rubric; Peter's answers and gaps when executed | |
founder-paper.mdFounder papers create + |
Verified source and P11 digest; authentic question and connection sentence; access limitations | |
branding-pack.mdBranding create + |
Wednesday note, Sunday build log, X adaptation, figure/caption/alt text and the week's special asset; each claim linked to real proof | |
opportunity-actions.mdOpportunities create + |
Qualified target/role, source/date, ladder stage, next action, message/interview/proposal draft and actual status | |
evidence.mdEvidence & review open & edit ↗ |
Actual paths/URLs, versions, checks/metrics, preparation versus execution state and external receipts when applicable | |
review.mdEvidence & review open & edit ↗ |
Checklist, learning assessment, gate status, shortfalls, next actions and carryover |
These filenames are outputs to prepare during this week's execution; this scaffold does not claim they already exist. Drafts and measured results have different states. Technical code/data stay in the canonical project repository and are referenced from these coordinating files.
During preparation, future measured tables get column definitions, input requirements and run instructions with PENDING status. During execution, replace pending values only with measured outputs. Do not create realistic-looking fake evidence.
600 MINUTES MAXIMUM
Target. 🎯 Make the tank grow. Hook (5 min): watch the LearnChemE Monod video and sketch the curve you expect. Do: build monod.py from the SciPy solve_ivp example with X, S, P, DO, feed and volume; every parameter named with its unit (let AI draft the skeleton, you name and check every term). Done when: one plot shows lag, log and stationary, and a mass-balance check prints OK.
Do these in this order — the plan's own sequence:
Target. 🧬 Why growth has a speed limit. Hook: point at S/(Ks+S) in your code and ask what Ks is, physically. Learn (35 min): OpenStax 6.5 Enzymes only, then five lines in notes/bio/B1.md: protein, enzyme, substrate, and why growth saturates. Done when: you explain the Monod term aloud without notes. Then stop studying and finish Monday's plot. Lipids and carbohydrates are parked.
Do these in this order — the plan's own sequence:
Target. 📡 Stream the tank like a plant. Hook: see your own curve move live. Do: publish one sample per simulated minute over MQTT and draw it (CSV replay if the Debian box is off; let AI write the MQTT boilerplate from the paho example). Done when: one timestamped sample can be traced from the generator to the rendered curve.
Do these in this order — the plan's own sequence:
Target. 📐 A matrix is a machine. Hook: 3Blue1Brown ch. 1 (10 min, it is beautiful). Learn: ch. 2-3, then redo one example in NumPy. Done when: you can say what a matrix does to a vector. Chapters 4-7 are parked. Last 30 min: founder paper, abstract and figures only.
Do these in this order — the plan's own sequence:
Target. 💥 Break the tank on purpose. Hook: decide how the feed pump will fail. Do: generate 20 seeded batches with noise and one labelled feed-stop fault; save config, label and generator version behind one command (make sim). Done when: 20 files reproduce identically and you know which one is broken.
No material for Friday — this is a pure build day. Need something to study instead? →
Target. Catch up, then reward. First: finish the earliest unfinished mission (only its Done when). Then the rabbit-hole slot: anything from PARKING or the Deeper list, guilt-free. Done when: no mission from this week is half-open, or it is logged as moved.
Optional, only if the day went well:
Target. Show it. 20 min: post the growth-curve screenshot with three lines (what, how, one honest limitation). 5 min: tick evidence. 20 min: write what was hard and why. 15 min: write next Monday's first action, startable in 2 minutes. Done when: the post is drafted and Monday's action is written.
No material for Sunday — this is a pure build day. Need something to study instead? →
Spare pockets, repo exercises and anything the plan lists without a day. Take them in this order when a day finishes early.
The model must turn these into exact physical actions using the observed files and available inputs. Each 90-minute block includes start/stop rituals. All calls, posts, debugging, reading and exercises consume this same capacity.
Each day is one mission: the Hook gets you in, Done when tells you to stop. Study stops at the understanding check. If a piece feels pointless, ask whether Done when needs it: no → skip and log; yes → let AI do the boring part and review it; still stuck → smallest version in 25 minutes.
WHAT TO WATCH, READ AND RUN
Imagine a restaurant kitchen at 7 pm. The chef (the microbe) is cooking. The pantry (the substrate, sugar) is being emptied. The dishes going out (the product) pile up. The air in the kitchen (dissolved oxygen) gets thinner as more cooks join. At first nothing happens (the cooks arrive and put their aprons on: the lag phase), then orders fly (exponential growth), then the pantry runs low and the pace flattens (stati…
2 of 18 finished · give me one to start now → · open in the deck →
In the plan's running order: each card says which block it belongs to and what has to come before it. The seven-day plan lists the same cards under the day that owns them.
Monday build block · Monday, before coding
Produce: A hand-sketched growth curve taped next to the screen
In: LABLOOP-W01 Notebook
Monday build block · after LearnChemE (CU Boulder) · "Monod Cell Growth Example (Bio)"
Replace predator-prey with biomass-substrate and Monday's task is mostly done
Read exactly: The Examples section only, especially the Lotka-Volterra style system
Produce: The working ODE skeleton in batchlens/sim/monod.py
In: LABLOOP-W01 Notebook
Tuesday · B1
Enzyme + substrate is literally the shape of the Monod term S/(Ks+S) you code on Monday
Read exactly: Whole section, plus the chapter-6 review questions reachable from Ch. 6 Introduction if time allows
Produce: 5 questions at the end of notes/bio/B1.md; answer them yourself next week
In: LABLOOP-W01 Notebook
Wednesday build block
Wednesday's telemetry hop, nothing more
Read exactly: "Publish a single message" example
Produce: The publisher in the Wednesday artifact
In: LABLOOP-W01 Notebook
Thursday · M1 · Thursday, first
Produce: notes/ml/M1.md: what a matrix does to a vector; one example redone in NumPy
In: LABLOOP-W01 Notebook
Saturday sandbox
SciPy documentation for scipy.integrate.solve_ivp (the solver you will use); read the "Examples" section
In: LABLOOP-W01 Notebook
Saturday sandbox · after SciPy documentation for scipy.integrate.solve_ivp (the solver you will use); read the "Examples"
Pioreactor project docs (pioreactor.com) — see a real, open-source mini bioreactor with optical density and temperature sensors; it makes "online variables" tangible
In: LABLOOP-W01 Notebook
Saturday sandbox · after Pioreactor project docs (pioreactor.com) — see a real, open-source mini bioreactor with optical…
OpenStax Biology 2e, ch. 3 "Biological Macromolecules" — 3-introduction, start at 3.1 Synthesis of Biological Macromolecules — 3.1 and the protein section; skim carbohydrates and lipids; finish on Chapter Summary. Moved out of core on 2026-09-29
In: LABLOOP-W01 Notebook
Saturday sandbox · after OpenStax Biology 2e, ch. 3 "Biological Macromolecules"
Khan Academy, Energy and enzymes → Activation energy (article) — One article + the practice set. Moved out of core on 2026-09-29
In: LABLOOP-W01 Notebook
Saturday sandbox · after Khan Academy, Energy and enzymes → Activation energy
Crash Course Biology #3 · "Biological Molecules — You Are What You Eat" — youtube.com/watch?v=H8WJ2KENlK0. Moved out of core on 2026-09-29
In: LABLOOP-W01 Notebook
Saturday sandbox · after Crash Course Biology #3 · "Biological Molecules — You Are What You Eat"
Khan Academy (MCAT) · "Enzymes and activation energy" — khanacademy.org/…/v/enzymes-and-activation-energy. Moved out of core on 2026-09-29
In: LABLOOP-W01 Notebook
Saturday sandbox · after Khan Academy (MCAT) · "Enzymes and activation energy"
LearnChemE · "Washout Derivation in CSTR Bioreactor (Bio)" — watch?v=L_bzv0bbU4M. The engineer's version of what happens when the feed stops — which is exactly Friday's injected fault
In: LABLOOP-W01 Notebook
Saturday sandbox · after LearnChemE · "Washout Derivation in CSTR Bioreactor (Bio)"
MIT OCW 18.06 Linear Algebra (Gilbert Strang), lectures 1-3 — ocw.mit.edu/courses/18-06-linear-algebra-spring-2010. Only if 3Blue1Brown leaves you wanting proofs
In: LABLOOP-W01 Notebook
Saturday sandbox · after MIT OCW 18.06 Linear Algebra
NPTEL Bioreactors (Suraishkumar, IIT Madras), lecture 1 — nptel.ac.in/courses/102106053. A preview of week 09. (verify) course numbering
In: LABLOOP-W01 Notebook
Colab: notebook 02.00-Introduction-to-NumPy and 02.02-The-Basics-Of-NumPy-Arrays; re-do the 3Blue1Brown matrix-on-vector examples in NumPy
In: LABLOOP-W01 Notebook
Colab: lesson 1 notebook; skim, run the first cells. Linear algebra as computation, not proofs
In: LABLOOP-W01 Notebook
Copy the solve_ivp Lotka-Volterra example; replace predator-prey with biomass-substrate. This is 70% of your Monday task
In: LABLOOP-W01 Notebook
Read README and the docs page on growth-rate estimation; no hardware needed. Shows how real online signals look
In: LABLOOP-W01 Notebook
READ FIRST
This week delivers the three concrete artifacts below and the supporting learning/branding/opportunity pack. The scientific or commercial outcome follows the preserved source brief, while the acceptance checks make its evidence testable. The career objective is to turn this work into something a scientist, hiring manager or buyer can inspect.
READ FIRST
Read v6 · Week 1 · A tank in 80 lines before Monday. It carries this week's v5 brief unchanged and adds the Welcome analogy, Learn it (▶ core and + deeper sources), Run it (repos with a 20-40 minute exercise), the NotebookLM kit and the mentor check below. Standing v6 rules: resource rules, NotebookLM protocol, chapter anatomy. v6 adds depth only; it does not change a goal, gate, output or the 600-minute cap, so this specification still governs execution.
Verified links, exact scopes and durations for this week's reading and watching: materials.md.
Act I · Threads: B, M, BL · Next gate: 4
Where this week sits.
- ← From: week 0 cockpit and batchlens repo.
- → Feeds: week 2 (you will recognise X, S, P and DO in 100 real batches), week 3 (your fake fault becomes the first thing your alarms must catch), week 9-11 (the same equations reappear as mass balances in NPTEL), week 12 (your Monod model becomes the "mechanistic half" of the hybrid model), week 17 (Paper 2 learning curves).
- ⟳ Returns in: week 12 and Paper 2. The 80 lines you write this week are literally the physics inside Paper 2's hybrid model.
Goals.
- 🎯 This week: a simulator that shows lag, log and stationary phases, streamed live, plus 20 seeded batches with one labelled fault.
- 🏁 Next milestone: Gate 4 (batchlens v0.1 with DOI).
- 🌟 Final: Paper 2 and JOSS: a hybrid soft sensor whose mechanistic core is the model you start today.
Mentor check. "I can draw the growth curve, point at each phase, and show the line of code that creates it."
OPEN WHEN NEEDED
READ FIRST
Source unit: B1 · Molecules of life and enzymes
Material: OpenStax Biology 2e 6.5 Enzymes only (trimmed 2026-09-29; ch. 3 and Crash Course are Deeper)
Produce: five lines in notes/bio/B1.md
Understanding check: You can say what a protein, an enzyme and a substrate are without looking
During preparation, write one worked example connected to the week's actual task, one exercise with a separate answer key and five questions. Peter supplies answers; score explanation quality and flag misconceptions in QUESTIONS. Numeric/scientific conclusions require actual data or explicitly synthetic teaching values.
Source unit: M1 · Linear algebra, intuitively
Material: 3Blue1Brown "Essence of Linear Algebra" ch. 1-3 (trimmed 2026-09-29; ch. 4-7 are Deeper)
Produce: one example redone in NumPy
Understanding check: You can say what a matrix does to a vector
Use the prompt pack: P1 explanation ladder, P2 concept-to-project bridge and P3 quiz. Coding practice belongs within the allocated study/build block. Where the source asks for a favorable scientific result, substitute an honest measured comparison as explained below.
Select one verified founder/scientific-lead paper relevant to this week's domain. Use P11; save the question, method, numerical result with context, data workflow, three author questions and one connection sentence in founder-paper.md. Keep abstract-only access limitations explicit. On source weeks with no study, prioritize the commercial/submission task and log any skipped digest.
OPEN WHEN NEEDED
Branding: Draft one simulation plot post and a brief explanation of the measurement-to-decision loop.
Opportunity action: Digest one verified Michroma or Levya author paper; save a question about measurement workflows and one potential feedback contact.
Use career asset contracts. Publish at most the agreed cadence; one figure and one supported number or admitted failure can support multiple drafts. In long-form weeks, prepare a 1,500–2,500-word article from existing evidence within the build/buffer allocation. In release/demo weeks, prepare a 60-second script: problem, input, command/action, result, limitation and proof link.
Verify individuals, jobs and affiliations at execution time. The GridX list and v4 company map are research seeds, not current facts. Do not reveal named company weaknesses or employer/client confidential information. Keep drafted/sent/replied/booked/held statuses separate. The planning request alone does not authorize external messages or publication; honor explicit authorization in the execution session.
OPEN WHEN NEEDED
A basic Monod model does not automatically produce lag and death phases. Eighty lines is a presentation idea, not a correctness criterion; do not force artificial physiology to match the title.
Apply the root scientific evidence contract: provenance; meaningful independent splits; no future-data leakage; baseline comparison; actual denominators/uncertainty; failed cases; human review where required. State whether data are simulated, public experimental, synthetic or partner-provided.
Keep source gates intact, and log scope/time conflicts in review. Missing people, money, access or results must not be replaced with invented evidence. Reduce optional polish first. A specific essential external dependency stays pending while independent preparation continues.
READ FIRST
This is an enabling week. Its deliverables feed the next scheduled gate: 4. Complete the acceptance checklist below; do not promote reputation from a draft.
READ FIRST
Source-preserving minimum: monod.py with the plot.
Operational first step if stalled: open simulator-design.md, write the required inputs and produce the smallest checkable example in ten minutes. If a more urgent missing gate dependency controls the week, use the source minimum above.
If the full week does not fit, use P14: retain one gate-critical deliverable and one directly supporting study exercise; record what is skipped versus moved. Do not mark the original full gate passed merely because the minimum was completed. After a missed week, reforecast from actual evidence and avoid a second unexamined lost week.
OPEN WHEN NEEDED
In review, state exactly what exists, what was verified, what Peter can now explain, which external events remain pending, where the canonical code/data live, and the next file/function or draft paragraph to touch. Link each fact to evidence. Carry scientific assumptions, split definitions and rights constraints forward explicitly.
OPEN WHEN NEEDED
Prepare Week 01 of this LABLOOP execution plan.
Read execution-plan/specs.md, execution-plan/DECISIONS.md,
execution-plan/GATES.md and
execution-plan/weeks/week-01-fermentation-simulator/specs.md, commitment.md, evidence.md and review.md.
Read prior prerequisite reviews and inspect actual repository/data state.
Use v5 as the governing sequence, the v6 Week 01 chapter
(LABLOOP-Master-Plan-v6.md) as the deeper walkthrough, and v4 only for
retained details.
Produce the full local preparation pack and the exact week-specific files named
in the artifact table. Give me a bounded lesson with exercises/answer key,
daily physical actions, technical runbook or draft, branding drafts and
career/commercial actions. Keep the total to 600 minutes.
Separate prepared artifacts from measured results and my learning completion.
Verify sources and do not invent metrics, citations, papers, people or outcomes.
Do not execute external communications, publication or spending unless the
current session already authorizes the specific action.
Finish by updating evidence/review and TODAY with the next physical action.
OPEN WHEN NEEDED
v6 reproduces this brief unchanged inside v6 · Week 1 · A tank in 80 lines. The following is source planning text, not a claim of completion. Apply the explicit evidence corrections in this specification and DECISIONS.md.
batchlens/sim/monod.py: ODEs for biomass X, substrate S, product P, dissolved oxygen; batch and fed-batch. Done when a plot shows lag, log, stationary. Wed: MQTT publisher (paho-mqtt) sending one sample per simulated minute to the Debian box; InfluxDB + Grafana dashboard. Done when you see the curve live. Fri: 20 batches with random noise and one injected fault (feed pump stops); saved as CSV. Done when make sim writes 20 files.monod.py with the plot.WEEK FILES
State: UNCONFIRMED. Owner: Peter Ciancaglini. Specification
Start date: not set. End date: not set. Available hours: confirm (planned ceiling 10).
Primary outcome: fermentation simulator.
Minimum that keeps the next gate alive: monod.py with the plot.
simulator-design.md: A repeatable trajectory and balance checks exist; any lag-phase behavior is explicitly modeled.telemetry-demo.md: A timestamped sample can be traced from generator to rendered curve.simulation-manifest.csv: Twenty reproducible outputs have known ground truth and no implied plant validation.| Day | Minutes | Physical action / outcome | Actual slot | Done |
|---|---|---|---|---|
| Mon | 90 | Implement X/S/P/DO balances, feed and volume terms, named parameters and units; document the scope of the simplified simulator. | Not set | ☐ |
| Tue | 90 | 1 page of notes in notes/bio/B1.md + 5 questions |
Not set | ☐ |
| Wed | 90 | Replay simulator measurements through MQTT to a local time-series store and a minimal graph; provide CSV replay if the Debian box is unavailable. Last ten minutes: optional note. | Not set | ☐ |
| Thu | 90 | Notes; numpy re-doing 3 examples Include relevant founder-paper work within this block. | Not set | ☐ |
| Fri | 90 | Generate 20 seeded batches including a labeled feed-stop fault; save configuration, label and generator version. | Not set | ☐ |
| Sat | 90 | Resolve critical spillover; long-form draft if due; sandbox only if done. | Not set | ☐ |
| Sun | 60 | Build log, evidence, gap review, next actions. | Not set | ☐ |
Peter's commitment / adjustments: pending. Reviewing model and date: pending.
Execution state: NOT_STARTED. Specification This file is a blank register with planned artifact names; none of the rows prove completion.
| Item | Path / URL / version | State | Verification / actual result | Verified by / date |
|---|---|---|---|---|
| simulator-design.md | Not created | NOT_STARTED | Pending: A repeatable trajectory and balance checks exist; any lag-phase behavior is explicitly modeled. | — |
| telemetry-demo.md | Not created | NOT_STARTED | Pending: A timestamped sample can be traced from generator to rendered curve. | — |
| simulation-manifest.csv | Not created | NOT_STARTED | Pending: Twenty reproducible outputs have known ground truth and no implied plant validation. | — |
| Learning exercise / Peter's quiz | Not created | NOT_STARTED | Peter's actual answers required | — |
| Founder paper digest | Not created | NOT_STARTED | Source/content and access checked | — |
| Branding pack | Not created | NOT_STARTED | Claims audited; drafted/public status distinct | — |
| Opportunity actions | Not created | NOT_STARTED | Drafted/sent/replied/booked/held distinct | — |
| Question / metric | Dataset, N and unit | Split / seed / config | Command or verification method | Output path and measured value | Uncertainty / limitation |
|---|---|---|---|---|---|
| Date | Action / counterpart | Receipt or private reference | State | Next action / date |
|---|---|---|---|---|
Peter's teach-back / quiz score: not assessed. Scientific assumptions and deviations: none recorded yet. Budget allocated / spent: not assessed / no spend recorded. Missing evidence and responsible owner: pending inspection.
Do not put API keys, source full texts with restricted rights, client data or invoice personal details in a public version of this register. Keep private evidence references private.
Review status: NOT_REVIEWED. Specification · Evidence
What Peter can explain or reproduce now: not assessed. Quiz / teach-back gaps: not assessed. Measured result and limitations: pending. Best evidence link for a scientist/recruiter/buyer: pending. What failed or changed, and why: pending.
Gate requirement: No standalone gate; check this week's acceptance criteria and next gate dependencies. Gate status: NOT_STARTED. Original target week: See next gate in specs. Actual completion date / forecast: not set. Missing external evidence: pending inspection. Blocks completed / 7: not recorded. Days with commits / 7: not recorded. Sunday build log / optional Wednesday note: not recorded. Founder conversations cumulative: not recorded. Earned evidence level and proof: not assessed. Consecutive lost weeks: not assessed.
Week-specific risk to revisit: A basic Monod model does not automatically produce lag and death phases. Eighty lines is a presentation idea, not a correctness criterion; do not force artificial physiology to match the title.
Continue / recover / blocked: not decided.
Retain as the minimum: monod.py with the plot.
Skipped permanently with reason: none recorded.
Carryover with owner, dependency and target week: none recorded.
Canonical repository paths and versions: pending.
Data permissions, split definitions or assumptions to preserve: pending.
External action authorization that still applies: not assessed.
Next physical action, exact file/function/paragraph: pending.
Updates to root PROGRESS / LOG / TODAY completed: ☐
YOUR SPACE