brush-paint-opt: widen lookahead_steps range to 5-10 + apply minor v3 tweaks
Lookahead bound: 2-6 → 5-10. Live debug-viewer test showed lookahead_steps=7 fixes W's apex (the walker can see across the ~1.5×-brush gap to the second diagonal at the bottom). At lookahead=3 (current default), horizon = lookahead × step_size × brush ≈ 1.2 × brush — short of the unpainted leg past sharp corners on M/W/A. Range 5-10 lets the optimizer pick a value that clears these without going so wide it captures unrelated bg. Also rolling in the trivial winners from the prior 12x8x2 run: brush_radius_offset_px: 0.50 → 0.53 output_rdp_eps: 1.0 → 1.98 Frontend mirror updated to match.
This commit is contained in:
@@ -38,7 +38,7 @@ export async function loadTestLetter(passIdx, ch, fontMm, dpi, thicknessPx) {
|
|||||||
// Default PaintParams must match Rust's `impl Default for PaintParams`.
|
// Default PaintParams must match Rust's `impl Default for PaintParams`.
|
||||||
export const DEFAULT_PAINT_PARAMS = {
|
export const DEFAULT_PAINT_PARAMS = {
|
||||||
brush_radius_factor: 0.88,
|
brush_radius_factor: 0.88,
|
||||||
brush_radius_offset_px: 0.50,
|
brush_radius_offset_px: 0.53,
|
||||||
brush_radius_percentile: 0.93,
|
brush_radius_percentile: 0.93,
|
||||||
step_size_factor: 0.40,
|
step_size_factor: 0.40,
|
||||||
n_directions: 48,
|
n_directions: 48,
|
||||||
@@ -56,7 +56,7 @@ export const DEFAULT_PAINT_PARAMS = {
|
|||||||
pen_lift_reach: 3.0,
|
pen_lift_reach: 3.0,
|
||||||
max_steps_per_stroke: 4000,
|
max_steps_per_stroke: 4000,
|
||||||
max_strokes: 12,
|
max_strokes: 12,
|
||||||
output_rdp_eps: 1.0,
|
output_rdp_eps: 1.98,
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getPaintDebug(passIdx, hullIdx, params = DEFAULT_PAINT_PARAMS) {
|
export async function getPaintDebug(passIdx, hullIdx, params = DEFAULT_PAINT_PARAMS) {
|
||||||
|
|||||||
@@ -153,7 +153,7 @@ impl Default for PaintParams {
|
|||||||
// letters miscounted) are NOT respected — known limitation
|
// letters miscounted) are NOT respected — known limitation
|
||||||
// of the soft inner-score the meta search uses.
|
// of the soft inner-score the meta search uses.
|
||||||
brush_radius_factor: 0.88,
|
brush_radius_factor: 0.88,
|
||||||
brush_radius_offset_px: 0.50,
|
brush_radius_offset_px: 0.53,
|
||||||
brush_radius_percentile: 0.93,
|
brush_radius_percentile: 0.93,
|
||||||
step_size_factor: 0.40,
|
step_size_factor: 0.40,
|
||||||
n_directions: 48,
|
n_directions: 48,
|
||||||
@@ -171,7 +171,7 @@ impl Default for PaintParams {
|
|||||||
pen_lift_reach: 3.0,
|
pen_lift_reach: 3.0,
|
||||||
max_steps_per_stroke: 4000,
|
max_steps_per_stroke: 4000,
|
||||||
max_strokes: 12,
|
max_strokes: 12,
|
||||||
output_rdp_eps: 1.0,
|
output_rdp_eps: 1.98,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ pub fn default_axes() -> Vec<Axis> {
|
|||||||
set: |p, v| p.overpaint_penalty = v, get: |p| p.overpaint_penalty },
|
set: |p, v| p.overpaint_penalty = v, get: |p| p.overpaint_penalty },
|
||||||
Axis { name: "step_size_factor", lo: 0.20, hi: 0.90, is_int: false,
|
Axis { name: "step_size_factor", lo: 0.20, hi: 0.90, is_int: false,
|
||||||
set: |p, v| p.step_size_factor = v, get: |p| p.step_size_factor },
|
set: |p, v| p.step_size_factor = v, get: |p| p.step_size_factor },
|
||||||
Axis { name: "lookahead_steps", lo: 2.0, hi: 6.0, is_int: true,
|
Axis { name: "lookahead_steps", lo: 5.0, hi: 10.0, is_int: true,
|
||||||
set: |p, v| p.lookahead_steps = v as usize, get: |p| p.lookahead_steps as f32 },
|
set: |p, v| p.lookahead_steps = v as usize, get: |p| p.lookahead_steps as f32 },
|
||||||
Axis { name: "n_directions", lo: 8.0, hi: 64.0, is_int: true,
|
Axis { name: "n_directions", lo: 8.0, hi: 64.0, is_int: true,
|
||||||
set: |p, v| p.n_directions = v as usize, get: |p| p.n_directions as f32 },
|
set: |p, v| p.n_directions = v as usize, get: |p| p.n_directions as f32 },
|
||||||
|
|||||||
Reference in New Issue
Block a user