Revise the JFM research workflow documentation to clarify project structure, decision-making processes, and tool routing. Remove outdated figures and images that are no longer relevant to the current manuscript. Ensure that the workflow aligns with the latest research objectives and safety protocols.
Track the research dossiers, section freezes, supporting manuscript materials, and round-aware agent controls so future drafting decisions can be reviewed across both repository mirrors.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add a canonical src package index, synchronize cross-project status and root navigation, and ignore local generated/runtime payloads while preserving the documented solver and evidence boundaries.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add indexed DRL pinball documentation, provenance-aware training CSV export, first-phase flow rendering, and audited reproduction assets so the retained results are ready for manuscript analysis.
Co-authored-by: Cursor <cursoragent@cursor.com>
Consolidate the validated Karman CCD chain into a bounded, navigable package with reproducible diagnostics and lightweight plotting contracts while keeping dense evidence external.
Co-authored-by: Cursor <cursoragent@cursor.com>
Freeze the bounded steady-flow evidence, reader documentation, lattice-exact plotting package, and reproducible diagnostics for writing and review.
Co-authored-by: Cursor <cursoragent@cursor.com>
Narrow active SR claims to Karman cloaking, preserve Illusion as an indexed historical route, and add readable provenance catalogs and acquisition documentation.
Co-authored-by: Cursor <cursoragent@cursor.com>
Extend the canonical Legacy collector to deploy hash-bound symbolic policies across training, generalization, and ablation scenarios with reproducible execution provenance.
Co-authored-by: Cursor <cursoragent@cursor.com>
Retire duplicate reproduction paths in favor of the canonical V5 and Legacy runners, while preserving historical tooling in archives and publishing audited summary plots.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add deterministic phase-filtered V5 and Legacy acquisition with complete-cycle mean fields, then evaluate controlled wakes against target and zero baselines offline.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace the legacy CCD workspace with acquisition, direct-dq, original and lagged CCD contracts so the DRL-versus-constant-mean mechanism is reproducible and fail-closed.
Co-authored-by: Cursor <cursoragent@cursor.com>
Archive excluded experiments and superseded outputs so the active tree exposes only the auditable Kármán and Illusion workflow while preserving scientific provenance.
Co-authored-by: Cursor <cursoragent@cursor.com>
Publish the unified scratch-training contract, compact best-policy bundles, calibrated targets, tests, and presentation-ready retained evidence while excluding archived and intermediate run payloads.
Co-authored-by: Cursor <cursoragent@cursor.com>
Freeze the source-derived action contract and direct q-in objective so the new MFS strip model and serial CFD runner provide a compact, auditable basis for the steady-cloak study.
Co-authored-by: Cursor <cursoragent@cursor.com>
Canonicalize V5 case identities and preserve the SR evidence chain while replacing ambiguous diagnostics with reproducible tables, phase-matched flow fields, and presentation-ready summaries.
Co-authored-by: Cursor <cursoragent@cursor.com>
Archive superseded studies and payload metadata while preserving a tested Schlegel LR/LE implementation with explicit scientific and physics contracts.
Co-authored-by: Cursor <cursoragent@cursor.com>
Freeze the contract-audited discovery, closed-loop validation, robustness, plotting, and manuscript evidence so the SR section is reproducible and ready for paper development.
Co-authored-by: Cursor <cursoragent@cursor.com>
Create pre-fix baseline with:
- Manifest recording ignored NPZ hashes, model inventory, env versions
- Plan file for long-term SR Legacy Pipeline execution
- Snapshot of current stage_1_infer, PIPELINE, STAGE_1_INFER, results/README
This commit preserves the frozen historical state before Stage 1-3
contract repair begins. All canonical results are marked historical_frozen;
no formula or validation data will be overwritten during round 1.
Round 1 scope: legacy Karman (code Re 50/100/200/400) + Illusion (0.75L/1L).
V5, Vortex, unseen-Re, erase, 1.5L, and paper figures excluded.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Track A (legacy_test): systematic validation scripts for all trained PPO
models using LegacyCelerisLab. Each test script rebuilds the exact legacy
CFD environment, runs deterministic inference, and compares against
SR_analysis reference data using DTW-based comparison. Verified: Karman
re100/re50/re200, Vortex lamb/taylor all pass (DTW > 0.95).
- Track B (reproduce): Phase 2 open-loop CFD validation + Phase 3 DRL
inference using the legacy-compatible config (regularized inlet with
neq_damp=1.0, matching the legacy NBB formula). The inlet scheme fix
improves new-CFD Karman DTW from 0.916 to 0.943.
- Fixes: action_wrapper sign convention docstring, model inventory
duplicate entries and missing models, stale config paths in legacy
run_all_cases.py/run_illusion_vortex.py, illusion label formatting
- Add READMEs and run-all shell scripts for both tracks
- Add .gitignore entries for runtime output directories
Co-authored-by: Cursor <cursoragent@cursor.com>
- Add PIPELINE.md as primary entry (pipeline overview, conventions, results index,
new training integration guide)
- Create results/ directory with numbered symlinks to all 16 core figures
- Copy final CCD JSON into results/ccd/
- Rewrite README.md to point to PIPELINE.md
Design follows SR_analysis lightweight pattern: clear structure,
small number of entry files, results/ as canonical output directory.
Co-authored-by: Cursor <cursoragent@cursor.com>
Old zones (350-500, 500-700, 580-650) were based on pre-unification
illusion-only coordinates. Updated to match diagnose_corrections.py:
near_body 580-720, body_wake 720-850, sensor_zone 780-850.
Co-authored-by: Cursor <cursoragent@cursor.com>
- collect_karman_blk.py: bias_arr[4]=front (was -4U0, should be 0),
bias_arr[5]=bottom (was +4U0, should be -4U0),
bias_arr[6]=top (was 0, should be +4U0).
Matches legacy_karman_env.py:179-182.
- collect_controlled.py: same fix for Karman branch.
- Add missing import data_dir_for_scene in collect_controlled.py
Co-authored-by: Cursor <cursoragent@cursor.com>
- 51 steady open-loop commands collected (2.1h on device 2)
- q_in and q_blk reference fields collected
- Full pipeline: run_full_pipeline.py (A.2 POD -> A.3 LSE -> B OID -> C synthesis)
Co-authored-by: Cursor <cursoragent@cursor.com>
Phase A.1: Open-loop DB collection (50 commands, LHS, new CelerisLab)
Phase A.2: Snapshot POD on Li22b DB (ROI-masked, energy analysis)
Phase A.3: LSE [sensors, b] -> POD coefficients
Phase B: Delta-q OID + cross-mapping + joint-input OID
Phase C: Three-framework synthesis (SR, Li22b, OID)
Partial data collected (in progress). Reference fields done.
Co-authored-by: Cursor <cursoragent@cursor.com>
P3.1: Zone energy partition from OID spatial modes
P3.3: Three-layer overlap (action-OID, force-OID, signature-OID)
- Key finding: action is near-orthogonal to both force and sig OID modes
- Confirms OID finds observable-relevant, not action-relevant structures
P3.5: SR formula → OID coordinate validation
- Karman: corr(OID_z1, Cl_tot) = -0.82 (strong)
Fix: Restore ROI masking in phase1_correction_pod.py (OOM prevention)
Co-authored-by: Cursor <cursoragent@cursor.com>
Full 1280x512 POD with 500 snapshots needs ~50 GB RAM.
ROI [400:1000, 100:400] (600x300 px) reduces to ~1.4 GB.
This was the original design — removing it was a critical mistake.
Fields saved at full resolution (Rule 5); ROI applied at analysis stage only.
Also add phase_error_karman_sig.py for P2.4b future work.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Remove obsolete docs (OID_handover, SR_analysis_results, ccd_* handover)
- Remove CCD legacy output_redux and old scripts
- Remove SR old sindy scripts and compare modules
- Update .gitignore to cover all analysis-generated outputs
- Retain all active code in OID/SR/CCD analysis directories
Co-authored-by: Cursor <cursoragent@cursor.com>
Add comprehensive project report (292 lines, 7 figure references)
and handover notes for the next agent.
Co-authored-by: Cursor <cursoragent@cursor.com>
Complete implementation of Observable-Inferred Decomposition (OID)
for the fluidic pinball project. Covers Phases 0-7 for all 5 scenes
(steady cloak, Karman cloak, illusion 0.75L/1.0L/1.5L).
Key deliverables:
- Full analysis pipeline: configs, utils, 11 collection scripts, 7 phase
scripts, robustness analysis, figure generator, batch runner
- Data collected: 500 snapshots per scene, separate illusion-position q_blk
- 7 publication-quality figures: force-sig overlap, rank sensitivity,
OID vs POD comparison, tau_c sensitivity, POD energy, steady metrics,
white-box chain
- Comprehensive report at docs/OID_analysis_results.md (292 lines)
- Handover document at docs/OID_handover.md
- Updated knowledge base and notes with all Phase 2 results
Core finding: force-relevant and signature-relevant correction structures
systematically separate across control tasks (steady: +0.763 -> Karman: -0.034
-> illusion: -0.082 to -0.932), with OID consistently outperforming POD.
Co-authored-by: Cursor <cursoragent@cursor.com>
Core changes:
- New phase-state features (PHASE_STATE_KEYS, ILLUSION_PHASE_KEYS) with obs dynamics
- Derivative and absolute output modes (output_mode="deriv"|"absolute")
- predict_v23_deriv() with integration support for closed-loop
- Offline multi-step rollout evaluator (eval_rollout.py)
Key results:
- Illusion 0.75L/1L: phase-state+error-state+abs achieves 0.974/0.958 closed-loop
with zero action history features — proving the new route works
- Karman re100: phase-state+abs reaches 0.699 (vs 0.901 with action history)
- 1.5L confirmed as bang-bang regime (R2=0.12 for linear SINDy)
- Feature ablation: 6-dim phase-state outperforms 16-dim full-lag in closed-loop
Documentation:
- docs/SR_analysis_results.md: comprehensive analysis report
- docs/HANDOVER_SR_ANALYSIS.md: handover notes for next coder
- 6 figures in docs/figures/SR_analysis/
- Updated README.md, sindy_sr_notes.md, sindy_sr_knowledge.md
- Updated configs.py with generalization scenes
Co-authored-by: Cursor <cursoragent@cursor.com>