auto: daily sync

This commit is contained in:
2026-02-20 08:00:17 +00:00
parent 176b75328f
commit c59072eff2
8 changed files with 26072 additions and 53179 deletions

View File

@@ -355,7 +355,18 @@ def make_objective(rm: TrialRetentionManager):
print(f" [Brain] Total pockets: {n_pockets_total}")
# ── 3b. Save per-trial figures (density, mesh, rib pattern) ──────────
# ── 3b. Degenerate check — prune near-solid trials early ─────────────
# If fewer than N_MIN_POCKETS are generated, the design is essentially a
# solid plate (likely all triangles rejected by area/fillet filter).
# Return a large penalty immediately — no point burning an NX license.
N_MIN_POCKETS = 8
if n_pockets_total < N_MIN_POCKETS:
print(f" [Brain] Degenerate trial: only {n_pockets_total} pockets "
f"(min={N_MIN_POCKETS}) — pruning before NX")
trial.set_user_attr("error", f"degenerate:{n_pockets_total}_pockets")
return 1e6
# ── 3d. Save per-trial figures (density, mesh, rib pattern) ──────────
t_fig = time.time()
n_figs = len(plot_trial_figures(sb_data, trial_dir))
print(f" [Plot] {n_figs} figures → trial_{trial_number:04d}/ ({time.time()-t_fig:.1f}s)")