Conversation
Import the AD infrastructure design docs (design, work items, R-interface, and README) into notes/ad-design. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UwX91k99M8mhKzb4SJa3ej
Collaborator
Author
|
@dfalster - I've made a start on the odelia changes. PRs to follow. |
Member
|
Excellent plan @aornugent! This level of planning is exactly what's needed. In retrospect, I should have done this earlier, but it's the right detail to inject now. Appreciate you taking the lead on that. FYI, I'll have to take a break from development for the next two weeks. Very glad if you want to pursue this In the meantime. Also, we've discovered some instability in TF24, which causes issues for automatic differentiation. For the AD work, we should assume that instability will be resolved by improvements in the TF24 model, so of now just work with cases where it performs adequately. |
Member
|
Happy for you to merge this. |
Refresh notes/ad-design with the latest design docs from the plant-dev workspace, including the new ad-record-replay.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B4FyyLScweWwLXYNKKmTfz
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This is a design-only PR — it adds a roadmap for the plant SCM automatic-differentiation
work, with no code changes. It proposes how to land the exact trait/birth-rate gradients
prototyped in #553 with surgical changes to the existing plant components plus a small
generic surface added to odelia, rather than as a plant-private AD stack.
The prototype in #553 is validated (gradients to ~1e-13) and remains the specification and
the regression oracle throughout. This roadmap is about how to merge that capability with
lower long-term technical debt.
What's included
A set of design docs (under
notes/):README.md— orientation, reading order, and a glossary for readers new to the modelor to AD.
ad-infrastructure-design.md— the design: three layers (odelia / plant / UX), thesurgical changes, the two workflows (resident vs. invasion), and the four replay levels.
ad-r-interface.md— the R/C++ boundary (why XAD types are awkward through Rcpp, the"only doubles cross" invariant) plus user stories for each persona.
ad-issues.md— the work breakdown: scoped items across odelia / plant / R-boundary /prototypes, with dependencies and a critical-path build order.
Key design positions
seam, IFT/analytic edges) it already almost provides; plant keeps only irreducible
physiology. plant already
LinkingTo: odelia.odelia::ode::SolverSystem, andSCM::run_mutant()is already the frozen-schedule replay — the gradients differentiate theruns we already have, not three bespoke
*_emergent.cppengines. The<T,E,S>thirdaxis collapses to the existing
<T,E>with the scalar carried by the strategy/environment.placed their nodes, replay on them fixed with the active scalar" — which removes the
stand_stage_historymachinery and reusesbasic_interpolator<S>/QK<S>.leaf optimizer.
Relationship to #553
This does not replace #553 — it plans how to land its result. The recommendation is to not
merge the spike as-is but to codesign the odelia surface first (with the spike's validated
Jacobians as the AD-vs-AD oracle), then rebuild the plant path onto it strategy by strategy.
The docs are explicit about scope and risk, including the TF24 leaf-optimizer cross-sensitivity
and the TF24f long-horizon stiffness limit.
Scope note
The design spans both plant and odelia; the odelia-side work items are scoped here for
coordination even though they land in
traitecoevo/odelia. Feedback on the direction iswelcome before implementation begins.
🤖 Generated with Claude Code