Spaces:
Sleeping
Sleeping
Commit ·
3270c54
1
Parent(s): 88d9b78
docs: align repaired 4-knob environment docs
Browse files
docs/FUSION_DELIVERABLES_MAP.md
CHANGED
|
@@ -13,7 +13,7 @@ Use this map to sequence execution, not to reopen already-locked task choices.
|
|
| 13 |
- [x] baseline comparison has been rerun on the real verifier path
|
| 14 |
- [x] Northflank smoke workflow and note are committed
|
| 15 |
- [x] Northflank smoke test has passed on the team H100
|
| 16 |
-
- [x]
|
| 17 |
- [x] repaired low-dimensional boundary builder is implemented
|
| 18 |
- [x] explicit VMEC failure semantics are implemented
|
| 19 |
- [x] low-fi `run` truth vs high-fi `submit` truth is labeled clearly
|
|
|
|
| 13 |
- [x] baseline comparison has been rerun on the real verifier path
|
| 14 |
- [x] Northflank smoke workflow and note are committed
|
| 15 |
- [x] Northflank smoke test has passed on the team H100
|
| 16 |
+
- [x] historical upstream 3-knob family has been verified as blocked on P1 triangularity
|
| 17 |
- [x] repaired low-dimensional boundary builder is implemented
|
| 18 |
- [x] explicit VMEC failure semantics are implemented
|
| 19 |
- [x] low-fi `run` truth vs high-fi `submit` truth is labeled clearly
|
docs/FUSION_DESIGN_LAB_PLAN_V2.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
| 14 |
- [x] baseline comparison has been rerun on the real verifier path
|
| 15 |
- [x] Northflank smoke workflow and note are committed
|
| 16 |
- [x] Northflank smoke test has passed on the team H100
|
| 17 |
-
- [x]
|
| 18 |
- [x] parameterization repair is implemented so triangularity is controllable
|
| 19 |
- [x] explicit VMEC failure semantics are implemented
|
| 20 |
- [x] low-fi `run` truth vs high-fi `submit` truth is labeled clearly in the environment surface
|
|
@@ -181,7 +181,7 @@ Allowed reuse:
|
|
| 181 |
|
| 182 |
Implementation handoff:
|
| 183 |
|
| 184 |
-
- the remaining work is now
|
| 185 |
- do not treat supporting decision notes as a new planning backlog
|
| 186 |
|
| 187 |
## 8.1 Compute Surfaces
|
|
@@ -221,11 +221,11 @@ Auth stance:
|
|
| 221 |
|
| 222 |
The environment contract must be frozen before meaningful evaluation.
|
| 223 |
|
| 224 |
-
|
| 225 |
|
| 226 |
-
- the
|
| 227 |
- on the real low-fidelity verifier path, sampled points stayed at roughly `average_triangularity=+0.004975` and `p1_feasibility=1.00995`
|
| 228 |
-
-
|
| 229 |
|
| 230 |
### Observation
|
| 231 |
|
|
@@ -235,20 +235,27 @@ The observation should expose:
|
|
| 235 |
- current aspect ratio
|
| 236 |
- current average triangularity
|
| 237 |
- current edge rotational transform over field periods
|
| 238 |
-
- current
|
| 239 |
-
-
|
| 240 |
-
-
|
| 241 |
-
-
|
| 242 |
-
-
|
| 243 |
-
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 244 |
|
| 245 |
The observation must be interpretable by a human without additional hidden state.
|
| 246 |
|
| 247 |
### Action Space
|
| 248 |
|
| 249 |
-
The action space stays intentionally small and discrete
|
| 250 |
|
| 251 |
-
|
| 252 |
|
| 253 |
- `run`
|
| 254 |
- `submit`
|
|
@@ -260,11 +267,11 @@ For `run`, the controllable fields are:
|
|
| 260 |
- `aspect_ratio`
|
| 261 |
- `elongation`
|
| 262 |
- `rotational_transform`
|
| 263 |
-
- `triangularity_scale`
|
| 264 |
- direction: increase or decrease
|
| 265 |
- magnitude: small, medium, large
|
| 266 |
|
| 267 |
-
This is not trying to expose the full Fourier-boundary space. The goal is a legible environment, not maximal realism. The verifier
|
| 268 |
|
| 269 |
### Episode Flow
|
| 270 |
|
|
@@ -530,7 +537,7 @@ The repo should make the environment easy to understand:
|
|
| 530 |
|
| 531 |
- notebook starts on the team H100
|
| 532 |
- persistent storage mount is usable
|
| 533 |
-
- smoke test artifact is written successfully
|
| 534 |
- latest artifact example: `/home/jovyan/fusion-design-lab/smoke/northflank_smoke_20260308T023646Z.json`
|
| 535 |
|
| 536 |
### Gate 1: Environment Contract Locked
|
|
|
|
| 14 |
- [x] baseline comparison has been rerun on the real verifier path
|
| 15 |
- [x] Northflank smoke workflow and note are committed
|
| 16 |
- [x] Northflank smoke test has passed on the team H100
|
| 17 |
+
- [x] historical upstream 3-knob family has been checked against the real low-fidelity verifier
|
| 18 |
- [x] parameterization repair is implemented so triangularity is controllable
|
| 19 |
- [x] explicit VMEC failure semantics are implemented
|
| 20 |
- [x] low-fi `run` truth vs high-fi `submit` truth is labeled clearly in the environment surface
|
|
|
|
| 181 |
|
| 182 |
Implementation handoff:
|
| 183 |
|
| 184 |
+
- the remaining work is now fixture coverage, manual playtesting, heuristic refresh, smoke validation, and deployment
|
| 185 |
- do not treat supporting decision notes as a new planning backlog
|
| 186 |
|
| 187 |
## 8.1 Compute Surfaces
|
|
|
|
| 221 |
|
| 222 |
The environment contract must be frozen before meaningful evaluation.
|
| 223 |
|
| 224 |
+
Historical blocker that drove the repair:
|
| 225 |
|
| 226 |
+
- the upstream 3-knob `generate_rotating_ellipse(aspect_ratio, elongation, rotational_transform, n_field_periods)` family does not expose triangularity control
|
| 227 |
- on the real low-fidelity verifier path, sampled points stayed at roughly `average_triangularity=+0.004975` and `p1_feasibility=1.00995`
|
| 228 |
+
- that blocker is why the repo now uses a repaired 4-knob low-dimensional family with explicit `triangularity_scale`
|
| 229 |
|
| 230 |
### Observation
|
| 231 |
|
|
|
|
| 235 |
- current aspect ratio
|
| 236 |
- current average triangularity
|
| 237 |
- current edge rotational transform over field periods
|
| 238 |
+
- current `p1_score`
|
| 239 |
+
- current `p1_feasibility`
|
| 240 |
+
- current `constraints_satisfied`
|
| 241 |
+
- current `vacuum_well`
|
| 242 |
+
- `evaluation_fidelity`
|
| 243 |
+
- `evaluation_failed`
|
| 244 |
+
- `failure_reason`
|
| 245 |
+
- `step_number`
|
| 246 |
+
- `budget_remaining`
|
| 247 |
+
- `best_score`
|
| 248 |
+
- `best_feasibility`
|
| 249 |
+
- `target_spec`
|
| 250 |
+
- concise textual summary of the last action outcome in `diagnostics_text`
|
| 251 |
|
| 252 |
The observation must be interpretable by a human without additional hidden state.
|
| 253 |
|
| 254 |
### Action Space
|
| 255 |
|
| 256 |
+
The live action space stays intentionally small and discrete while exposing the repaired 4-knob low-dimensional family.
|
| 257 |
|
| 258 |
+
Current contract:
|
| 259 |
|
| 260 |
- `run`
|
| 261 |
- `submit`
|
|
|
|
| 267 |
- `aspect_ratio`
|
| 268 |
- `elongation`
|
| 269 |
- `rotational_transform`
|
| 270 |
+
- `triangularity_scale`
|
| 271 |
- direction: increase or decrease
|
| 272 |
- magnitude: small, medium, large
|
| 273 |
|
| 274 |
+
This is not trying to expose the full Fourier-boundary space. The goal is a legible environment, not maximal realism. The verifier stays official; the custom logic belongs in the low-dimensional boundary builder, not in reward semantics.
|
| 275 |
|
| 276 |
### Episode Flow
|
| 277 |
|
|
|
|
| 537 |
|
| 538 |
- notebook starts on the team H100
|
| 539 |
- persistent storage mount is usable
|
| 540 |
+
- smoke test artifact is written successfully from the rotating-ellipse-derived low-dimensional boundary path
|
| 541 |
- latest artifact example: `/home/jovyan/fusion-design-lab/smoke/northflank_smoke_20260308T023646Z.json`
|
| 542 |
|
| 543 |
### Gate 1: Environment Contract Locked
|
docs/FUSION_NEXT_12_HOURS_CHECKLIST.md
CHANGED
|
@@ -16,7 +16,7 @@ Do not expand scope beyond one stable task. Training is supporting evidence, not
|
|
| 16 |
- [x] re-run baselines on the real verifier path
|
| 17 |
- [x] commit the Northflank smoke workflow and note
|
| 18 |
- [x] pass the Northflank smoke test on the team H100
|
| 19 |
-
- [x] verify that the
|
| 20 |
- [x] repair the low-dimensional parameterization
|
| 21 |
- [x] add explicit VMEC failure semantics
|
| 22 |
- [x] label low-fi `run` truth vs high-fi `submit` truth in the task surface
|
|
@@ -50,7 +50,7 @@ Carry these rules through the whole checklist:
|
|
| 50 |
2. Attach persistent storage before relying on saved models, caches, or fixture downloads.
|
| 51 |
3. Preserve the concrete smoke-test evidence:
|
| 52 |
- import `constellaration`
|
| 53 |
-
- generate one rotating-ellipse boundary
|
| 54 |
- run one low-fidelity verifier call
|
| 55 |
- keep one artifact in persistent storage
|
| 56 |
- current artifact: `/home/jovyan/fusion-design-lab/smoke/northflank_smoke_20260308T023646Z.json`
|
|
|
|
| 16 |
- [x] re-run baselines on the real verifier path
|
| 17 |
- [x] commit the Northflank smoke workflow and note
|
| 18 |
- [x] pass the Northflank smoke test on the team H100
|
| 19 |
+
- [x] verify that the historical upstream 3-knob family is blocked on P1 triangularity under the real verifier path
|
| 20 |
- [x] repair the low-dimensional parameterization
|
| 21 |
- [x] add explicit VMEC failure semantics
|
| 22 |
- [x] label low-fi `run` truth vs high-fi `submit` truth in the task surface
|
|
|
|
| 50 |
2. Attach persistent storage before relying on saved models, caches, or fixture downloads.
|
| 51 |
3. Preserve the concrete smoke-test evidence:
|
| 52 |
- import `constellaration`
|
| 53 |
+
- generate one rotating-ellipse-derived low-dimensional boundary
|
| 54 |
- run one low-fidelity verifier call
|
| 55 |
- keep one artifact in persistent storage
|
| 56 |
- current artifact: `/home/jovyan/fusion-design-lab/smoke/northflank_smoke_20260308T023646Z.json`
|
docs/P1_ENV_CONTRACT_V1.md
CHANGED
|
@@ -15,16 +15,18 @@ This file captures the technical contract that should drive the next code change
|
|
| 15 |
|
| 16 |
The central change is now explicit:
|
| 17 |
|
| 18 |
-
- the
|
| 19 |
-
-
|
| 20 |
- the runtime now exposes the repaired 4-knob target, but measured sweep validation and fixture calibration are still pending
|
| 21 |
|
| 22 |
-
##
|
|
|
|
|
|
|
| 23 |
|
| 24 |
Current verified facts:
|
| 25 |
|
| 26 |
- upstream `generate_rotating_ellipse(aspect_ratio, elongation, rotational_transform, n_field_periods)` has no triangularity control
|
| 27 |
-
- the
|
| 28 |
- `aspect_ratio`
|
| 29 |
- `elongation`
|
| 30 |
- `rotational_transform`
|
|
@@ -35,8 +37,8 @@ Current verified facts:
|
|
| 35 |
|
| 36 |
Conclusion:
|
| 37 |
|
| 38 |
-
- the
|
| 39 |
-
-
|
| 40 |
|
| 41 |
## Design Split
|
| 42 |
|
|
@@ -66,12 +68,16 @@ Current repo state:
|
|
| 66 |
- explicit failure results are returned when VMEC evaluation fails
|
| 67 |
- measured sweep validation is still pending
|
| 68 |
|
| 69 |
-
|
| 70 |
|
| 71 |
-
- `
|
| 72 |
-
- `apply_low_dim_perturbation(...) -> SurfaceRZFourier`
|
| 73 |
- `evaluate_boundary(boundary, fidelity) -> EvaluationMetrics`
|
| 74 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 75 |
The verifier layer should own:
|
| 76 |
|
| 77 |
- low-fidelity step-time evaluation
|
|
@@ -147,9 +153,16 @@ Keep:
|
|
| 147 |
- `edge_iota_over_nfp`
|
| 148 |
- `p1_feasibility`
|
| 149 |
- `p1_score`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 150 |
- `budget_remaining`
|
| 151 |
- `best_score`
|
| 152 |
- `best_feasibility`
|
|
|
|
| 153 |
- `diagnostics_text`
|
| 154 |
|
| 155 |
Add clarity about fidelity:
|
|
|
|
| 15 |
|
| 16 |
The central change is now explicit:
|
| 17 |
|
| 18 |
+
- the historical upstream 3-knob rotating-ellipse family is blocked on P1 triangularity under the real verifier path
|
| 19 |
+
- that blocker drove the repair to the current 4-knob low-dimensional runtime
|
| 20 |
- the runtime now exposes the repaired 4-knob target, but measured sweep validation and fixture calibration are still pending
|
| 21 |
|
| 22 |
+
## Historical Blocker
|
| 23 |
+
|
| 24 |
+
This section records the resolved upstream blocker that motivated the current repair. It is not the live runtime state.
|
| 25 |
|
| 26 |
Current verified facts:
|
| 27 |
|
| 28 |
- upstream `generate_rotating_ellipse(aspect_ratio, elongation, rotational_transform, n_field_periods)` has no triangularity control
|
| 29 |
+
- the historical 3-knob environment directly exposed only:
|
| 30 |
- `aspect_ratio`
|
| 31 |
- `elongation`
|
| 32 |
- `rotational_transform`
|
|
|
|
| 37 |
|
| 38 |
Conclusion:
|
| 39 |
|
| 40 |
+
- the historical 3-knob family was not a meaningful playtest or baseline environment for `P1`
|
| 41 |
+
- the live runtime therefore moved to a repaired boundary family before further reward iteration
|
| 42 |
|
| 43 |
## Design Split
|
| 44 |
|
|
|
|
| 68 |
- explicit failure results are returned when VMEC evaluation fails
|
| 69 |
- measured sweep validation is still pending
|
| 70 |
|
| 71 |
+
Current live functions:
|
| 72 |
|
| 73 |
+
- `build_boundary_from_params(...) -> SurfaceRZFourier`
|
|
|
|
| 74 |
- `evaluate_boundary(boundary, fidelity) -> EvaluationMetrics`
|
| 75 |
|
| 76 |
+
Current layering note:
|
| 77 |
+
|
| 78 |
+
- discrete perturbation application lives in `server/environment.py`
|
| 79 |
+
- there is no separate `apply_low_dim_perturbation(...)` helper in the live code
|
| 80 |
+
|
| 81 |
The verifier layer should own:
|
| 82 |
|
| 83 |
- low-fidelity step-time evaluation
|
|
|
|
| 153 |
- `edge_iota_over_nfp`
|
| 154 |
- `p1_feasibility`
|
| 155 |
- `p1_score`
|
| 156 |
+
- `constraints_satisfied`
|
| 157 |
+
- `vacuum_well`
|
| 158 |
+
- `evaluation_fidelity`
|
| 159 |
+
- `evaluation_failed`
|
| 160 |
+
- `failure_reason`
|
| 161 |
+
- `step_number`
|
| 162 |
- `budget_remaining`
|
| 163 |
- `best_score`
|
| 164 |
- `best_feasibility`
|
| 165 |
+
- `target_spec`
|
| 166 |
- `diagnostics_text`
|
| 167 |
|
| 168 |
Add clarity about fidelity:
|
docs/PIVOT_P1_ROTATING_ELLIPSE.md
CHANGED
|
@@ -9,17 +9,17 @@ Use this file as rationale for the pivot, not as a fresh planning queue. Once th
|
|
| 9 |
## Current Branch Status
|
| 10 |
|
| 11 |
- [x] pivot accepted
|
| 12 |
-
- [x] 3-knob rotating-ellipse `P1` contract
|
| 13 |
- [x] `constellaration` verifier path is wired
|
| 14 |
-
- [x]
|
| 15 |
-
- [
|
| 16 |
- [ ] tracked fixtures are added
|
| 17 |
- [ ] manual playtest evidence is recorded
|
| 18 |
- [ ] heuristic baseline is refreshed for the real verifier path
|
| 19 |
|
| 20 |
Current caution:
|
| 21 |
|
| 22 |
-
- the
|
| 23 |
|
| 24 |
## Decision
|
| 25 |
|
|
@@ -52,7 +52,7 @@ This borrows the strongest low-dimensional entry point from the proven winning a
|
|
| 52 |
|
| 53 |
### Single Task
|
| 54 |
|
| 55 |
-
Improve a stellarator boundary's P1 score using
|
| 56 |
|
| 57 |
### P1 Constraints (from `GeometricalProblem`)
|
| 58 |
|
|
@@ -68,7 +68,7 @@ Feasibility tolerance: normalized constraint violations <= 1% (0.01).
|
|
| 68 |
|
| 69 |
### Parameter Space
|
| 70 |
|
| 71 |
-
|
| 72 |
|
| 73 |
| Parameter | Role | Typical range |
|
| 74 |
|---|---|---|
|
|
@@ -79,36 +79,43 @@ The upstream rotating-ellipse generator takes 3 continuous parameters + 1 discre
|
|
| 79 |
|
| 80 |
These map to `constellaration.initial_guess.generate_rotating_ellipse(aspect_ratio, elongation, rotational_transform, n_field_periods)` which returns a `SurfaceRZFourier` boundary in ~4ms.
|
| 81 |
|
| 82 |
-
|
| 83 |
|
| 84 |
- on the real low-fidelity verifier path, sampled 3-knob points kept `average_triangularity` at roughly `+0.004975`
|
| 85 |
- sampled `p1_feasibility` stayed at roughly `1.00995`
|
| 86 |
- no sampled point was feasible
|
| 87 |
|
| 88 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 89 |
|
| 90 |
### Action Space
|
| 91 |
|
| 92 |
-
|
| 93 |
|
| 94 |
```
|
| 95 |
intent: "run" | "submit" | "restore_best"
|
| 96 |
-
|
| 97 |
direction: "increase" | "decrease"
|
| 98 |
magnitude: "small" | "medium" | "large"
|
| 99 |
```
|
| 100 |
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
- `triangularity_scale` or equivalent low-dimensional control
|
| 104 |
-
|
| 105 |
-
Magnitude deltas (to be tuned by playtest):
|
| 106 |
|
| 107 |
| Parameter | small | medium | large |
|
| 108 |
|---|---|---|---|
|
| 109 |
-
| aspect_ratio | 0.
|
| 110 |
-
| elongation | 0.
|
| 111 |
-
| rotational_transform | 0.
|
|
|
|
| 112 |
|
| 113 |
### Episode Flow
|
| 114 |
|
|
@@ -135,15 +142,19 @@ p1_score: float # current step-time score
|
|
| 135 |
p1_feasibility: float # current step-time max normalized constraint violation
|
| 136 |
constraints_satisfied: bool # feasibility <= 0.01
|
| 137 |
vacuum_well: float # stability indicator
|
|
|
|
|
|
|
|
|
|
| 138 |
step_number: int
|
| 139 |
budget_remaining: int
|
| 140 |
best_score: float
|
|
|
|
| 141 |
target_spec: str
|
| 142 |
```
|
| 143 |
|
| 144 |
-
|
| 145 |
|
| 146 |
-
-
|
| 147 |
|
| 148 |
### Reward V0
|
| 149 |
|
|
@@ -170,10 +181,10 @@ submit penalty (if infeasible or no improvement):
|
|
| 170 |
|
| 171 |
This puts feasibility first. An agent that achieves feasibility then minimizes elongation gets rewarded. An agent that never reaches feasibility gets penalized.
|
| 172 |
|
| 173 |
-
|
| 174 |
|
| 175 |
- keep reward mostly scalar and verifier-driven
|
| 176 |
-
-
|
| 177 |
- do not add mode- or constraint-specific reward hacks to compensate for a blocked action family
|
| 178 |
|
| 179 |
### State
|
|
@@ -192,7 +203,7 @@ history: list[str]
|
|
| 192 |
|
| 193 |
| | Rotating-ellipse env | Curated-seed Fourier-repair env |
|
| 194 |
|---|---|---|
|
| 195 |
-
| Action space |
|
| 196 |
| Starting point | Generated from parameters | Frozen from HF dataset |
|
| 197 |
| Interpretability | High — parameters map to physical shape | Lower — mode perturbations are abstract |
|
| 198 |
| Dataset dependency | None at runtime | Requires offline curation |
|
|
@@ -230,7 +241,7 @@ Update `fusion_lab/models.py` for new schemas.
|
|
| 230 |
|
| 231 |
Status: open.
|
| 232 |
|
| 233 |
-
Validate hypothesis: "6 actions is enough"
|
| 234 |
- Play 5-10 episodes manually
|
| 235 |
- Log: can a human reach feasibility? Improve elongation?
|
| 236 |
- Tune magnitude deltas if needed
|
|
@@ -264,11 +275,12 @@ If full high-fidelity `constellaration` deployment fails (Docker build, HF Space
|
|
| 264 |
|
| 265 |
## Known-Good Fixtures
|
| 266 |
|
| 267 |
-
Start with
|
| 268 |
|
| 269 |
-
1. **
|
| 270 |
-
2. **
|
| 271 |
-
3. **
|
|
|
|
| 272 |
|
| 273 |
These are for verifier/reward sanity, not a prerequisite seed-mining project.
|
| 274 |
|
|
|
|
| 9 |
## Current Branch Status
|
| 10 |
|
| 11 |
- [x] pivot accepted
|
| 12 |
+
- [x] historical upstream 3-knob rotating-ellipse `P1` contract was implemented and evaluated
|
| 13 |
- [x] `constellaration` verifier path is wired
|
| 14 |
+
- [x] historical upstream 3-knob family is verified as blocked on P1 triangularity
|
| 15 |
+
- [x] repaired low-dimensional family with explicit triangularity control is implemented
|
| 16 |
- [ ] tracked fixtures are added
|
| 17 |
- [ ] manual playtest evidence is recorded
|
| 18 |
- [ ] heuristic baseline is refreshed for the real verifier path
|
| 19 |
|
| 20 |
Current caution:
|
| 21 |
|
| 22 |
+
- the upstream rotating-ellipse family remains useful as a seed generator, but the live environment action family is the repaired rotating-ellipse-derived 4-knob contract
|
| 23 |
|
| 24 |
## Decision
|
| 25 |
|
|
|
|
| 52 |
|
| 53 |
### Single Task
|
| 54 |
|
| 55 |
+
Improve a stellarator boundary's P1 score using a rotating-ellipse-derived low-dimensional parameterization under the official ConStellaration P1 constraints.
|
| 56 |
|
| 57 |
### P1 Constraints (from `GeometricalProblem`)
|
| 58 |
|
|
|
|
| 68 |
|
| 69 |
### Parameter Space
|
| 70 |
|
| 71 |
+
Historical upstream seed generator:
|
| 72 |
|
| 73 |
| Parameter | Role | Typical range |
|
| 74 |
|---|---|---|
|
|
|
|
| 79 |
|
| 80 |
These map to `constellaration.initial_guess.generate_rotating_ellipse(aspect_ratio, elongation, rotational_transform, n_field_periods)` which returns a `SurfaceRZFourier` boundary in ~4ms.
|
| 81 |
|
| 82 |
+
Historical blocker:
|
| 83 |
|
| 84 |
- on the real low-fidelity verifier path, sampled 3-knob points kept `average_triangularity` at roughly `+0.004975`
|
| 85 |
- sampled `p1_feasibility` stayed at roughly `1.00995`
|
| 86 |
- no sampled point was feasible
|
| 87 |
|
| 88 |
+
Current live environment family:
|
| 89 |
+
|
| 90 |
+
| Parameter | Role | Current implementation range |
|
| 91 |
+
|---|---|---|
|
| 92 |
+
| `aspect_ratio` | Width-to-height ratio of the repaired boundary | 3.2 - 3.8 |
|
| 93 |
+
| `elongation` | Vertical stretching of cross-section | 1.2 - 1.8 |
|
| 94 |
+
| `rotational_transform` | Magnetic field line winding | 1.2 - 1.9 |
|
| 95 |
+
| `triangularity_scale` | Explicit triangularity control | 0.4 - 0.7 |
|
| 96 |
+
| `n_field_periods` | Fixed at 3 (not an action) | 3 |
|
| 97 |
+
|
| 98 |
+
These ranges describe the live implementation in `server/environment.py`. They are still subject to measured sweep and playtest refinement.
|
| 99 |
|
| 100 |
### Action Space
|
| 101 |
|
| 102 |
+
Current action space:
|
| 103 |
|
| 104 |
```
|
| 105 |
intent: "run" | "submit" | "restore_best"
|
| 106 |
+
parameter: "aspect_ratio" | "elongation" | "rotational_transform" | "triangularity_scale"
|
| 107 |
direction: "increase" | "decrease"
|
| 108 |
magnitude: "small" | "medium" | "large"
|
| 109 |
```
|
| 110 |
|
| 111 |
+
Current implementation deltas:
|
|
|
|
|
|
|
|
|
|
|
|
|
| 112 |
|
| 113 |
| Parameter | small | medium | large |
|
| 114 |
|---|---|---|---|
|
| 115 |
+
| aspect_ratio | 0.05 | 0.10 | 0.20 |
|
| 116 |
+
| elongation | 0.05 | 0.10 | 0.20 |
|
| 117 |
+
| rotational_transform | 0.05 | 0.10 | 0.20 |
|
| 118 |
+
| triangularity_scale | 0.02 | 0.05 | 0.10 |
|
| 119 |
|
| 120 |
### Episode Flow
|
| 121 |
|
|
|
|
| 142 |
p1_feasibility: float # current step-time max normalized constraint violation
|
| 143 |
constraints_satisfied: bool # feasibility <= 0.01
|
| 144 |
vacuum_well: float # stability indicator
|
| 145 |
+
evaluation_fidelity: "low" | "high"
|
| 146 |
+
evaluation_failed: bool
|
| 147 |
+
failure_reason: str
|
| 148 |
step_number: int
|
| 149 |
budget_remaining: int
|
| 150 |
best_score: float
|
| 151 |
+
best_feasibility: float
|
| 152 |
target_spec: str
|
| 153 |
```
|
| 154 |
|
| 155 |
+
Current requirement:
|
| 156 |
|
| 157 |
+
- the observation and diagnostics text should make the low-fi vs high-fi distinction explicit
|
| 158 |
|
| 159 |
### Reward V0
|
| 160 |
|
|
|
|
| 181 |
|
| 182 |
This puts feasibility first. An agent that achieves feasibility then minimizes elongation gets rewarded. An agent that never reaches feasibility gets penalized.
|
| 183 |
|
| 184 |
+
Current execution note:
|
| 185 |
|
| 186 |
- keep reward mostly scalar and verifier-driven
|
| 187 |
+
- keep parameterization repair and reward semantics separate
|
| 188 |
- do not add mode- or constraint-specific reward hacks to compensate for a blocked action family
|
| 189 |
|
| 190 |
### State
|
|
|
|
| 203 |
|
| 204 |
| | Rotating-ellipse env | Curated-seed Fourier-repair env |
|
| 205 |
|---|---|---|
|
| 206 |
+
| Action space | 4 parameters (AR, elongation, rotational transform, triangularity scale) | N Fourier modes |
|
| 207 |
| Starting point | Generated from parameters | Frozen from HF dataset |
|
| 208 |
| Interpretability | High — parameters map to physical shape | Lower — mode perturbations are abstract |
|
| 209 |
| Dataset dependency | None at runtime | Requires offline curation |
|
|
|
|
| 241 |
|
| 242 |
Status: open.
|
| 243 |
|
| 244 |
+
Validate hypothesis: "6 actions is enough" on the repaired low-dimensional family.
|
| 245 |
- Play 5-10 episodes manually
|
| 246 |
- Log: can a human reach feasibility? Improve elongation?
|
| 247 |
- Tune magnitude deltas if needed
|
|
|
|
| 275 |
|
| 276 |
## Known-Good Fixtures
|
| 277 |
|
| 278 |
+
Start with the frozen repaired-family reset seeds in `server/contract.py` and expand only if the implementation needs more coverage:
|
| 279 |
|
| 280 |
+
1. **Reset seed:** aspect_ratio=3.6, elongation=1.4, rotational_transform=1.5, triangularity_scale=0.55
|
| 281 |
+
2. **Reset seed:** aspect_ratio=3.4, elongation=1.4, rotational_transform=1.6, triangularity_scale=0.55
|
| 282 |
+
3. **Reset seed:** aspect_ratio=3.8, elongation=1.4, rotational_transform=1.5, triangularity_scale=0.55
|
| 283 |
+
4. **Deliberately bad reference:** keep a clearly infeasible boundary only as a negative verifier/reward sanity check
|
| 284 |
|
| 285 |
These are for verifier/reward sanity, not a prerequisite seed-mining project.
|
| 286 |
|