Commit Graph
118 Commits
Author SHA1 Message Date
matthewtrahan 63cca5dbd3 calibration: print results -- cutouts: every cut wall perfect, the ledges hung because the slice bridged them parallel to the walls (the orient coupon's junk case); stays in the Calibrate menu. Bore: A (wall along the bore) beats X (across); engine unchanged 2026-10-08 08:17:43 -05:00
matthewtrahan 7976e6d2cc calibration: coupon.js's closed check matches every directed edge with its reverse (catches a hole or a flipped body, passes a cut wall's shared edges); README says most of a cut wall's shared edges are flush, a follow-up (review) 2026-10-07 11:14:18 -05:00
matthewtrahan a37ce36951 calibration: cutout coupon print files (two objects in register, the site's 3MF form), render and Calibrate estimate (61 min, 24 g); the all-coupons plate notes cutout and sampler print on their own (full at 238 x 235) 2026-10-07 11:14:18 -05:00
matthewtrahan 8de23702ca calibration: cutout coupon -- five tall ledges, the site's Auto walls under each at one Cutouts style (none, diamond, triangle, arch, lattice); support volume 100 / 78 / 78 / 66 / 67 %; coupon.js's closed check refuses only odd edge counts (a cut wall's solids share edges); docs, Calibrate row, German (print files after the separate-object coupon writer lands) 2026-10-07 11:14:18 -05:00
matthewtrahan 3308f972f8 calibration: sampler build.js leans on writeCoupon's separate form (its own overwrite is redundant now) 2026-10-07 10:42:15 -05:00
matthewtrahan 2d156d0f9b calibration: the all-coupons plate fits again (bore v2 is 106 mm: it rides with angle, pad alone); plate.py names a lone supports item once; bore build.js refuses an Auto piece outside every bore's box instead of dropping it (review) 2026-10-07 10:42:15 -05:00
matthewtrahan 97abff4637 calibration: bore v2 -- a second set of 3/5/8/12 mm bores (X) whose walls run ACROSS the bore, three Draw walls each (shaped to the bore, they slide out along it), beside the Auto walls along it (A); letters on top; nothing touches the part; docs, Calibrate row (39 min, 18 g) and German updated 2026-10-07 10:42:15 -05:00
matthewtrahan 2f1f11fd25 calibration: coupons export the supports as their own object, like the site's 3MF -- coupon.js writes the separate form; separate.py converts gap, grip, pad, span and lip's print/ files in place, meshes byte-identical (only names and the shared build transform change); plate.py names a second item as supports; Calibrate estimates re-sliced (grip, pad +1 min) 2026-10-07 10:42:15 -05:00
matthewtrahan aa8cc934fc calibration: the torture test is renamed the Sampler (folder, files, menu row, docs, German 'Musterstück'); its 3MF and STL keep their meshes, only the names inside change 2026-10-07 10:23:43 -05:00
matthewtrahan a4152e1ce4 calibration: torture docs say the table's bridge is 28 mm (between its legs); German 'spine' is the Mittelblock, not a Wand (review) 2026-10-07 10:23:43 -05:00
matthewtrahan d5f8135c42 site: the torture test joins the Calibrate menu as its last row (sets nothing: what your parts will get once the others are tuned), 1 h 36 min, 44 g; German strings 2026-10-07 10:23:43 -05:00
matthewtrahan 2e3c15c2c8 calibration: torture print result (pretty solid; a few drooping layers on the ball, the table's underside rougher near the spine); the locked one-object copy is dropped now the site exports only the separate form 2026-10-07 10:23:43 -05:00
matthewtrahan 2caed75fc6 calibration: torture test exports supports as their own object (torture-coupon.3mf; the one-object file stays as -locked), rebuilt on main's fill pass (44 walls, must-hold 100 %); first-draft print logged; table flagged as the wall-direction weak spot 2026-10-07 10:23:43 -05:00
matthewtrahan 335f62a5ab calibration: torture test -- one part with ramps, ball, thin ledge, table, mushroom, cave, sideways holes and an arch, built in Full coverage at the defaults (must-hold 95 %); coupon.py label() for its raised angle / hole sizes 2026-10-07 10:23:43 -05:00
matthewtrahan 4b353e48f4 site: Calibrate review fixes -- the Gap row says the field stops at 0.4; German pad row keeps the field names the German UI shows; estimate.py refuses a slice with no printer profile and stores each file's sha256, so the test catches an estimate left over from another version (review) 2026-10-07 09:25:16 -05:00
matthewtrahan 357375ca01 site: Calibrate menu -- the test prints (angle, gap, grip, pad, bore) as downloads, laid out like Plugins, each row with its print time and filament (PrusaSlicer's default Core One PLA profile, sliced by prototype/calibration/estimate.py), the setting it tunes and how to read it; files served from web/calibration/, pinned to the coupons' print/ files by tests/calibrate.test.js; German strings 2026-10-07 09:25:16 -05:00
matthewtrahan b2058e5bcb calibration: orient print result -- across beats parallel at every spacing, the three spacings about the same (direction matters, 8 -> 4 mm spacing doesn't) 2026-10-07 08:59:55 -05:00
matthewtrahan dbf687e5b0 calibration: split.py docstring cites GitHub #38 only; README says the separate-object export is still to build (review) 2026-10-06 22:37:40 -05:00
matthewtrahan 533664081a calibration: grip and grip-split print results (OFF best, LIGHT next, all walls stood; split a little better -> supports export as their own object) 2026-10-06 22:37:40 -05:00
matthewtrahan 3577e02e4d calibration: grip coupon split -- the same part and walls saved as two objects (Clough42's 'split to objects'), to compare tine marks with the merged print rung for rung 2026-10-06 22:37:40 -05:00
matthewtrahan a859524258 examples: compare.js passes the pad too, so it scores like probe.js; the pad's reach reads PROP.gap per call (a material profile sets it); README says the pad rule is centroid-only like the wall rule (review) 2026-10-06 22:11:42 -05:00
matthewtrahan 2cfbb0458c examples/held: a face at most 0.5 mm over the bed pad's top (or under its tack) is held -- the pad shims a cleat sole on studs as a wall would; probe.js reports low% (how much of the near-plate strip is held), probe_diff.js its total. Builds unchanged; same builds rescored: must% 64.4 -> 64.4 (Auto), 78.2 -> 78.2 (Full), Isaac up +8.8; near-plate strip held 86.6% -> 88.2% of 9175 mm2 2026-10-06 22:11:42 -05:00
matthewtrahan 270b0e2d0b calibration: orient ledges 16.6 x 17.2 so both sides space their walls exactly 8 / 5.3 / 4 (parallel was 7.5% tighter); README says what still differs (review) 2026-10-06 16:32:05 -05:00
matthewtrahan 7dc34934aa calibration: orientation coupon -- six 16 mm flat ledges at the 0.2 gap, walls across vs parallel to the slicer's bridge lines at 8 / 5.3 / 4 mm bare stretch (checked in PrusaSlicer); gap result logged (0.2 the only good one, already the default) 2026-10-06 16:32:05 -05:00
matthewtrahan d89c2dc6f7 scoreboard: vs-base.sh BASE_MODE (Full vs Full shows what a fill change does, not what the mode adds) 2026-10-06 15:29:20 -05:00
matthewtrahan 0f9e38f1df calibration: gap docstring grammar (review) 2026-10-06 14:14:52 -05:00
matthewtrahan 35e54adf9b calibration: angle labels drop the ° (its ring is under two beads); doc slips -- which coupons keep dots, gap's docstring, coupon.py's header (review) 2026-10-06 14:14:52 -05:00
matthewtrahan 0688100212 calibration: every coupon still waiting on a print shows its value instead of dots -- angle (10°-40°), gap (0.2/0.4/0.6), span (0-100%), pad (0-0.3), bore (3-12), short (length x height), lip (0.1-6); angle ramps 14 mm wide and short's roots 15 mm so the text fits; tine/slender/foot keep their as-printed dots; pad 3MF re-packed deflated 2026-10-06 14:14:52 -05:00
matthewtrahan 7e2e97aa93 scoreboard: probe.js --angle (the Overhang slider) 2026-10-06 09:41:04 -05:00
matthewtrahan 9978cfce54 calibration: coupon.py label() raises the rung's setting as text; the grip coupon's ledges read OFF / LIGHT / MID / FIRM instead of dots 2026-10-06 07:52:35 -05:00
matthewtrahan e7e3c4d404 calibration: grip coupon -- four 30 deg ledges, three 23 mm walls each, at Tines off / Tine grip light / middle / firm (0 / 5 / 7 / 11 tines a wall), the user-facing tine coupon; on the all-coupons plate, in CALIBRATION.md 2026-10-06 07:52:35 -05:00
matthewtrahan 553e070328 scoreboard: probe --dump keeps the fill walls apart and render_held.py draws them teal 2026-10-05 22:11:15 -05:00
matthewtrahan 3e5577a608 scoreboard: probe.js --mode and build seconds, probe_diff totals walls/grams/seconds, vs-base.sh HEAD_MODE=full scores the working tree in Full coverage against base Auto 2026-10-05 22:11:15 -05:00
matthewtrahan 4616c4f7c1 fins/coverage: the must-hold rule (classify, reachOf) moves into web/, so the coming Full coverage fill pass aims at the scoreboard's number; held.js scores with it, output byte-identical; examples README drops local paths 2026-10-05 21:18:22 -05:00
matthewtrahan a3aae895e7 prototype: the ruler puts the engine's cached inside-grid back after scoring (the next pose's build reuses the topo); --web followed by another flag says it needs a path (review) 2026-10-05 20:49:03 -05:00
matthewtrahan b3a216ea2e prototype: a tiny hole needs air at its plan centre under the apex (a flat collar round a post read as one: the probes started inside the stem; the pocket-tactics mini's leg tips); the ruler drops the other engine's cached inside-grid; --web without a path says so; probe_diff fails a case only on >2 points AND >=1 mm2 lost; KEEP is created; baseline now 64.4% of 283,431 mm2 (review) 2026-10-05 20:49:03 -05:00
matthewtrahan 3c78cb7292 prototype: examples README -- the must% policy column and its two exempt classes, the scoreboard commands, the DRO housing in reports/, and the 2026-10-05 baseline: 64.8% of 281,534 mm2 must-hold area held on main 7ef4cfa 2026-10-05 20:49:03 -05:00
matthewtrahan 9b6a4480ed prototype: coverage scoreboard -- vs-base.sh probes origin/main and the working tree on reports/ + real/ (one process at a time, ~2 min), probe_diff.js compares must% per case and area-weighted, exit 1 on a case losing more than 2 points 2026-10-05 20:49:03 -05:00
matthewtrahan 9f56cf827d prototype: probe scores must% -- every overhang face but tiny holes' ceilings (a horizontal bore or slot up to ~6 mm: cylinder or flat roof, walled equally both sides, floored within the diameter) and the strip under the squat floor, reported apart; --web builds with another checkout's engine, --json writes the rows; pictures colour the two exempt classes 2026-10-05 20:49:03 -05:00
matthewtrahan de597f2607 prototype: footcheck --web takes a relative path (review) 2026-10-05 07:46:28 -05:00
matthewtrahan d13846d886 prototype: footcheck.js -- part-wall feet hanging into the air below their own floor, per model x pose, with --web for a before/after against another checkout (local issue 032: 4576 -> 1878 vertices over 456 cases) 2026-10-05 07:46:28 -05:00
matthewtrahan d5ad6bcae7 calibration: short coupon calibrates minSpanShort + maxShortAspect (the last-resort short walls) -- 2/3/4 mm walls at 6 (today's cap, the control), 10, 15, 20:1; tongues end 0.2 mm past the wall (no lip to curl), dots on the ledge root (review) 2026-10-04 14:03:08 -05:00
matthewtrahan 7f84fbc31b calibration: short-wall coupon -- twelve plate walls 2/3/4/5 mm long x 20/40/60 mm tall, each alone under a ledge 7 mm off the spine, built by draw mode's drawnWall with minSpan lifted; sets how slender a wall shorter than minSpan may be (coverage track A) 2026-10-04 14:03:08 -05:00
matthewtrahan 889009574c prototype: compare.js returns heldFrac again (the shared held.js left it reading deleted locals); README says compare.js's held numbers changed too, and the proxy note sits with held% (review) 2026-10-03 21:08:00 -05:00
matthewtrahan 10a9f36f4d prototype: coverage probe counts EVERY overhang face (held.js, shared with compare.js) and reports how much sits under the 12 mm2 floor; --dir/--poses/--dump + render_held.py pictures; reports/ (git-ignored) holds the user-reported parts; baseline logged 2026-10-03 21:08:00 -05:00
matthewtrahan d89f72f0df engine: sway brace tines kiss the part's face (kissEnds), and the material's tine bite is gone -- one SWAY.tineReach 0.3 gates placement; Material tooltip no longer claims PETG shrinks a bite; same braces and tines on 16 cases x PLA/PETG, slices identical on 30 of 32 (lighthouse Y90 notch: +-0.13 mm2) 2026-10-03 15:14:03 -05:00
matthewtrahan e05199e409 engine: tine knobs cleanup -- pointed tip and tineWidth tunables removed (the tine coupon showed no difference; both print as one bead), PROP.tineBite renamed tineReach (it is the placement reach since tines kiss, #168); output byte-identical 2026-10-03 13:52:03 -05:00
matthewtrahan 9ac8433029 calibration: tine coupon v2 README -- what's truly blind (merged vs KISS) and what build.js checks (equal reach) (review) 2026-10-03 13:32:58 -05:00
matthewtrahan f8be890f23 calibration: tine coupon v2 drops the unused per-ledge nudge table (023 fixed) 2026-10-03 13:32:58 -05:00
matthewtrahan e72bea1d52 calibration: tine coupon v2 -- merged vs KISS (own object) x 3 vs 1 tines + no-tine control, 3 copies each, 15 ledges in a fixed shuffled order, scored blind (print/key.json); v1's width/pointed rows dropped, its results kept 2026-10-03 13:32:58 -05:00