Commit Graph

28 Commits

Author SHA1 Message Date
Frank14f
9c3f93d58d fix(ccd): update run_zone_ccd.py zone definitions to unified geometry
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>
2026-07-01 12:45:10 +08:00
Frank14f
2ae248421d fix(oid): confirm FIFO bias bug has no structural impact
- Fixed bias_arr[4] (front 0), bias_arr[5] (bottom -4U0), bias_arr[6] (top +4U0)
- Re-ran full karman pipeline: force-sig overlap unchanged (-0.034)
- Force-OID still beats POD (0.295 vs 0.068, was 0.750 vs 0.418)
- Absolute R2 shifted because corrected FIFO changed PPO trajectory start
- Structural conclusion (force-sig near-orthogonal) is robust

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 16:26:54 +08:00
Frank14f
5c55c5bdf7 fix(oid): correct FIFO bias in karman_blk and collect_controlled
- 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>
2026-06-30 15:55:15 +08:00
Frank14f
8df40fb5bd chore(oid): final cleanup for paper-readiness
Remove:
  - scripts/compute_delta_fields.py (DEPRECATED, always SKIPPED)
  - scripts/replay_verify.py (duplicated logic)
  - analysis/save_robustness.py (hardcoded, superseded)

Archive:
  - scripts/collect_fields_replay.py -> archive/ (superseded by replay_full_fields.py)

Fix:
  - NaN->null in master_table.json and steady_reanalysis.json
  - Regenerate master_table.json with canonical overlap + three-layer action-OID
  - Update OID_knowledge.md with three-layer overlap table + data provenance
  - Update README: remove stale replay_verify reference, add action-OID finding

Result: 27 Python files (was 31), 3 deleted, 1 archived. All JSON valid.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 16:12:10 +08:00
Frank14f
4ae6e2e45c feat(oid): Li22b full DB collection complete — 51 commands, pipeline runner
- 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>
2026-06-28 22:35:14 +08:00
Frank14f
52229ea0f0 feat(oid): Li22b replication — collection, POD, LSE, OID, synthesis scripts
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>
2026-06-28 21:00:18 +08:00
Frank14f
3e9cffda8e feat(oid): joint analysis — OID mode zone partition, action-OID, SR validation
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>
2026-06-28 19:21:53 +08:00
Frank14f
3edf964f34 fix(oid): restore ROI masking in phase1 POD to prevent OOM
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>
2026-06-28 19:07:16 +08:00
Frank14f
31e367db0e test(oid): Sch12 code mapping and 7 unit tests for POD/OID/PCD
- Add docs/sch12_code_mapping.md: formula-to-code traceability
- Add tests/test_analysis.py: 7 unit tests, all passing
- Tests: POD energy, OID cross-covariance, field reconstruction,
  PCD whitening, standardize edge cases, snapshot method, cum_corr

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 17:43:46 +08:00
Frank14f
f66671a498 docs(oid): consolidate documentation and organize data directories
- Fix illusion rank sensitivity inconsistency (0.75L std=0.26, not 1.000)
- Unify all dates to 2026-06-28 across 4 markdown files
- Remove empty derived/delta_fields/ directory
- Update README reading order and scope date

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 17:26:55 +08:00
Frank14f
225f653840 fix(oid): code cleanup — fix NameError, remove ROI cropping, consolidate
- Fix NameError (cfg_sid -> cfg["scene_id"]) in collect_controlled.py
- Remove ROI cropping in phase1_correction_pod.py (use full 1280x512)
- Add pinball_baseline_illusion to configs.py and data_dir_for_scene()
- Deprecate compute_delta_fields.py (superseded by phase1_correction_pod)
- Fix absolute path in save_robustness.py
- Clean redundant import in phase3_force_oid.py
- Suppress module-level print in phase6_comparison.py

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-28 17:13:32 +08:00
Frank14f
56e3c78a83 chore: project-wide cleanup — consolidate docs, remove obsolete code, update .gitignore
- 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>
2026-06-28 16:52:48 +08:00
Frank14f
c918ac0de4 Update CelerisLab submodule to v0.5.1 (6e3756c).
Pull latest fix for EsoPull init layout and pre-streaming semantics.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-27 22:36:25 +08:00
Frank14f
85d1222139 CCD analysis: correction-field framework complete (Round 6)
- Shift analysis from raw-field q_ctl to correction-field dq_ctl = q_ctl - q_blk
- Force/action/signature CCD for illusion 0.75L, 1.0L, 1.5L
- Zone-restricted CCD (near_body/body_wake/sensor_zone) with spatial separation evidence
- 1.5L identified as special mechanism (low action coupling, phase drift)
- Karman reference data collected (q_in, q_blk)
- Snapshot POD speedup (96x96 instead of 1310720x96)
- Comprehensive report: docs/ccd_correction_field_report.md (412 lines)
- Handover document: docs/ccd_handover.md

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-22 19:30:16 +08:00
Frank14f
92845d6026 OID Analysis: project report and handover document
Add comprehensive project report (292 lines, 7 figure references)
and handover notes for the next agent.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-22 17:19:56 +08:00
Frank14f
6614f18248 OID Analysis: correction-field structure diagnosis pipeline
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>
2026-06-22 17:18:19 +08:00
Frank14f
8e62716ce4 SR Analysis: Phase-state SINDy + ablation study + documentation
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>
2026-06-22 16:55:03 +08:00
Frank14f
dd71af901d chore: update CelerisLab submodule to 00b957f
- feat(esopull): runtime body sync for EsoPull streaming mode

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-21 22:47:38 +08:00
Frank14f
76dd321139 chore: update CelerisLab submodule to 04c2bc7
Includes feat(obs): unified zero_obs control and time-normalised readback

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-21 00:56:32 +08:00
Frank14f
52df8620f0 chore: update CelerisLab submodule to latest
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-20 19:12:17 +08:00
Frank14f
096d9dcd0f 第二轮:整理两个工作目录 2026-06-10 15:59:52 +08:00
Frank14f
d1b9922c6b 第一轮分析工作暂存 2026-06-09 18:46:59 +08:00
Frank14f
4612928398 chore: update CelerisLab submodule to 2e05248 2026-05-31 14:54:26 +08:00
Frank14f
c4a59162dc chore: update CelerisLab to latest 2026-02-20 15:06:45 +08:00
Frank14f
454a657bec Add CelerisLab submodule 2026-02-20 12:39:24 +08:00
Frank14f
1ef1e22d46 Gitea Sync 2026-02-20 12:29:18 +08:00
Frank14f
e5956dc390 Gitea Sync 2026-02-20 12:27:36 +08:00
Frank14f
15c6de7243 First commit 2026-02-20 11:57:01 +08:00