Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
195 commits
Select commit Hold shift + click to select a range
91d2355
Add support for importing filament profiles from HueForge spool CSV e…
Bjohnson131 Jun 12, 2026
1538067
Enhance CSV/TSV parsing in profile manager to handle quoted fields an…
Bjohnson131 Jun 14, 2026
2f4a4e6
Enhance CSV parsing to normalize hex colors and skip invalid rows
Bjohnson131 Jun 14, 2026
35f2e85
Prepare 3.2.0 development cycle
vycdev Jun 18, 2026
2191c2e
Add auto-paint regression baseline
vycdev Jun 20, 2026
43eb66e
Add auto-paint benchmark harness
vycdev Jun 20, 2026
1544270
Fix auto-paint region priority
vycdev Jun 21, 2026
966c13a
Make auto-paint optimization deterministic
vycdev Jun 21, 2026
bc1d155
Unify auto-paint optimizer scoring
vycdev Jun 21, 2026
6d41030
Add variable-length auto-paint search
vycdev Jun 21, 2026
d685832
Improve auto-paint progress and 3MF exports
vycdev Jun 21, 2026
8b838c5
update to note tsv in docs, add escaped newline parsing.
Bjohnson131 Jun 21, 2026
e4ae4b3
Merge branch 'develop' into csv-import
Bjohnson131 Jun 21, 2026
46a6662
Harden auto-paint physics and 3MF export
vycdev Jun 21, 2026
109a417
Keep auto-paint plan local
vycdev Jun 21, 2026
8ee7e75
Merge pull request #37 from Bjohnson131/csv-import
vycdev Jun 21, 2026
9d766cd
Allow explicit exhaustive auto-paint search
vycdev Jun 22, 2026
30ecd49
Add Reddit community links
vycdev Jun 22, 2026
6823226
Improve calibration image sampler
vycdev Jun 24, 2026
15c64b0
Revert gitignore
vycdev Jun 24, 2026
8df9f88
Fix auto-paint printable height planning
vycdev Jun 24, 2026
0ec0b49
Use calibrated TDs for auto-paint transitions
vycdev Jun 24, 2026
2efd547
Chain auto-paint transition colors
vycdev Jun 24, 2026
f1273b5
Use linear-light auto-paint blending
vycdev Jun 24, 2026
7d6174e
Fit filament calibration in linear-light model
vycdev Jun 24, 2026
89716a1
Score auto-paint with CIEDE2000 and p95 tail term
vycdev Jun 24, 2026
dc99787
Replace auto-paint optimizer menu with effort tiers
vycdev Jun 24, 2026
fff98e7
@
vycdev Jun 24, 2026
67ea448
Add auto-paint detail controls and optimizer tiers
vycdev Jun 24, 2026
fc6ce13
Merge branch 'autopaint-improvements' of https://github.com/vycdev/Kr…
vycdev Jun 24, 2026
e58a0d6
Use Stucki kernel for height dithering
vycdev Jun 24, 2026
f3449dc
Score auto-paint with the preview's printable-color mapping
vycdev Jun 25, 2026
5b1b268
Add Preserve color separation auto-paint mode
vycdev Jun 25, 2026
9b60948
Add 8-color frontlit-calibrated profile fixture
vycdev Jun 25, 2026
bd7d734
Trim Auto-paint settings helper UI
vycdev Jun 25, 2026
a3b7326
Clean up v3.2 changelog entries
vycdev Jun 25, 2026
ca4dc7c
Make auto-paint height modes exclusive
vycdev Jun 25, 2026
8499a00
Precompute auto-paint region weights and calibrate foundation
vycdev Jun 28, 2026
8242167
Drop the unused stored calibration transmission field
vycdev Jun 29, 2026
cf1dbbd
Add reference to AGENTS.md in CLAUDE.md
vycdev Jun 29, 2026
354f736
Replace photo calibration with frontlit opacity-read calibration
vycdev Jul 2, 2026
bd4fa71
Remove the Load TD Test header button
vycdev Jul 2, 2026
ad6567b
Fix frontlit calibration review issues
vycdev Jul 2, 2026
8d0a2a7
Add multi-base color calibration
vycdev Jul 2, 2026
607b550
Migrate TD to hiding distance with single-meaning storage
vycdev Jul 3, 2026
5aa9c78
Remove the per-row calibrate button
vycdev Jul 4, 2026
85c8d73
Polish the auto-paint filament list UI
vycdev Jul 4, 2026
c8bb0ae
Keep filament row action buttons always visible
vycdev Jul 4, 2026
dd897e6
Polish the auto-paint results UI
vycdev Jul 4, 2026
0290459
Drop decorative icons from the auto-paint results section
vycdev Jul 4, 2026
8c0d04e
Share the session JND fit between calibration preview and save
vycdev Jul 4, 2026
e9e89fb
Document that re-calibrating a filament replaces its stored value
vycdev Jul 4, 2026
e710908
Block calibration save while the session JND fit is pending
vycdev Jul 4, 2026
fad7c60
Deactivate a filament's calibration when its color is edited
vycdev Jul 4, 2026
f83f48e
Merge branch 'develop' into autopaint-improvements
vycdev Jul 5, 2026
2b2286a
Add TileSettings and GridSettings interfaces for multi-image tile con…
Bjohnson131 Jul 6, 2026
369d530
Fix filament calibration confidence updates
vycdev Jul 6, 2026
1782d2c
test: add calibrated frontlit profile fixture
vycdev Jul 6, 2026
0b76801
update gitingore
vycdev Jul 6, 2026
e37b7d1
Fix auto-paint calibration cache state
vycdev Jul 6, 2026
a33ebab
Fix next-best-color channel HD blending
vycdev Jul 7, 2026
8e94c29
Merge pull request #56 from Bjohnson131/FEAT-#35
vycdev Jul 7, 2026
bac5661
Fix code-review findings across optimizer, calibration, and profiles
vycdev Jul 7, 2026
2a11673
Fix deterministic optimizer tie breaks
vycdev Jul 7, 2026
d69694c
Merge pull request #41 from vycdev/autopaint-improvements
vycdev Jul 8, 2026
185305b
Update dependencies to resolve Dependabot security alerts
vycdev Jul 9, 2026
67a39e6
Add collapsible control groups
vycdev Jul 9, 2026
2671f0f
feat: 3D inspection view modes - The 3D preview toolbar now offers Sh…
vycdev Jul 10, 2026
cf3a26d
feat: auto-paint preview color toggle - The 3D preview toolbar now of…
vycdev Jul 10, 2026
8b1a566
feat: 2D touch-up tools - The 2D preview toolbar now includes five ha…
vycdev Jul 11, 2026
1dd7447
feat: add calibration theory documentation and related diagrams for i…
Bjohnson131 Jul 12, 2026
7bdcc16
Update DocsPage.tsx
Bjohnson131 Jul 12, 2026
650098a
Merge pull request #57 from Bjohnson131/calibration-docs
vycdev Jul 12, 2026
1de89d7
fix: smooth meshing 3MF integrity - Smoothed cap faces are now valida…
vycdev Jul 12, 2026
1323495
Merge branch 'develop' of https://github.com/vycdev/Kromacut into dev…
vycdev Jul 12, 2026
4819fcb
feat: add job-specific palette proof export
vycdev Jul 17, 2026
ec8465d
feat: persist palette proof results
vycdev Jul 17, 2026
ed59988
feat: configure palette proof size
vycdev Jul 18, 2026
76ec7a7
fix: align calibration dialog close button
vycdev Jul 18, 2026
3e3d8e3
feat: delete incomplete palette proofs
vycdev Jul 18, 2026
1fbcaaa
feat: iterate and reinforce palette proofs
vycdev Jul 18, 2026
23bdf77
fix: align palette proof orientation
vycdev Jul 18, 2026
341a4bd
feat: add touching palette proof experiment
vycdev Jul 18, 2026
18b4902
fix: standardize touching palette proofs
vycdev Jul 18, 2026
d5b55cf
fix: allow saved palette proof downloads
vycdev Jul 18, 2026
7595f27
feat: close the palette proof appearance loop
vycdev Jul 18, 2026
d2952be
feat: split palette proof iteration modes
vycdev Jul 18, 2026
1d06ada
fix: advance automatic palette proofs
vycdev Jul 19, 2026
5110d15
fix: tighten palette proof fit gates
vycdev Jul 19, 2026
6a70d1f
feat: group palette proof rounds
vycdev Jul 19, 2026
5bbd9f8
feat: allow partial calibration entry
Bjohnson131 Jul 21, 2026
b576f47
feat: add landing page and app route
vycdev2 Jul 21, 2026
d0db1d5
fix: polish landing routes and accessibility
vycdev2 Jul 22, 2026
e0ad9a1
fix: harden landing accessibility and static docs
vycdev2 Jul 22, 2026
d699e4b
fix: refine landing and settings navigation
vycdev Jul 22, 2026
4ccb608
fix: refine responsive landing layout
vycdev Jul 22, 2026
d078846
fix: polish landing themes and docs navigation
vycdev Jul 22, 2026
f7c6162
Merge pull request #63 from vycdev2/feat/issue-62-landing-app
vycdev Jul 22, 2026
7b42c96
feat: enhance filament calibration input handling for merge steps
Bjohnson131 Jul 23, 2026
5cbfca5
Merge branch 'develop' into partial-calibration
Bjohnson131 Jul 23, 2026
6723372
Add MultiImageMode and supporting hooks for multi-image feature
Bjohnson131 Jul 16, 2026
f56d9ae
Implement 3D controls and enhance image processing features in App co…
Bjohnson131 Jul 16, 2026
b25e6d7
feat: implement experimental multi-plate mode toggle and related func…
Bjohnson131 Jul 18, 2026
3fc9f7c
add CHANGELOG.md entry.
Bjohnson131 Jul 23, 2026
3a3fe9d
Merge pull request #59 from Bjohnson131/FEAT-#35
vycdev Jul 23, 2026
f730278
Merge pull request #60 from Bjohnson131/partial-calibration
vycdev Jul 23, 2026
efc9f25
fix(profiles): strip UTF-8 BOM before parsing HueForge CSV/TSV imports
myUdav4iik Jul 23, 2026
b88920e
docs: note BOM-prefixed HueForge imports
vycdev Jul 25, 2026
1b2b6f2
Merge pull request #66 from myUdav4iik/fix/hueforge-csv-bom
vycdev Jul 25, 2026
18d4c2c
Merge develop and resolve integration conflicts
vycdev Jul 25, 2026
341dc4a
fix: harden palette proof feedback
vycdev Jul 25, 2026
76909d7
feat: allow prioritizing palette proof targets
vycdev Jul 26, 2026
de5be8b
feat: select palette proof targets from image
vycdev Jul 26, 2026
7d0c543
fix: lock downloaded palette proof settings
vycdev Jul 26, 2026
a734f51
feat: choose fitted palette proof targets
vycdev Jul 26, 2026
cba1d4c
fix: refine palette proof continuations locally
vycdev Jul 26, 2026
000b971
fix: continue remaining palette proof targets
vycdev Jul 26, 2026
6788bd4
feat: record palette proof match quality
vycdev Jul 26, 2026
eaf924f
refine palette proof result controls
vycdev Jul 26, 2026
36c6a59
widen palette proof results layout
vycdev Jul 26, 2026
7c9508a
broaden palette proof continuation search
vycdev Jul 27, 2026
96ef33f
Honor dead-on palette proof anchors
vycdev Aug 2, 2026
d088df2
Add carrier-free flat paint mode
vycdev Aug 2, 2026
730d376
Add advanced palette management (issue #26)
RMantis Aug 5, 2026
1c8a6d8
Keep local sandbox script out of the branch
RMantis Aug 5, 2026
d8113b8
Add optional per-color names to custom palettes
RMantis Aug 5, 2026
efc1b99
Complete Bambu PLA Basic palette from official hex chart
RMantis Aug 5, 2026
f164666
Add supplier data disclaimers in docs and template-load notice
RMantis Aug 5, 2026
e8afd12
Harden reserved-id and import edge cases from review
RMantis Aug 5, 2026
3841776
Sync color count when the selected palette changes shape
RMantis Aug 5, 2026
9bdb0be
Show a persistent notice while a filament template is active
RMantis Aug 5, 2026
4e846e3
Show trademark non-affiliation caption in supplier dropdowns
RMantis Aug 5, 2026
83e48af
Prefill Save New Profile with a "(copy)" name from the active profile
RMantis Aug 5, 2026
c5310d1
Address second-pass review: id migration, docs sources, a11y, coverage
RMantis Aug 5, 2026
19c9220
Align supplier disclaimer wording with the maintainer's request
RMantis Aug 5, 2026
042e3fc
Fixes Star History
Mubelotix Aug 6, 2026
f1dbe07
Drop same-release changelog fixes; e2e spec now verified green
RMantis Aug 6, 2026
ae0bee4
Merge pull request #70 from Mubelotix/patch-1
vycdev Aug 7, 2026
0690b6d
Constrain supplier dropdown widths
vycdev Aug 7, 2026
e449d41
Fix palette test storage isolation
vycdev Aug 7, 2026
6cf5e0f
Preserve filament brands in profile identity
vycdev Aug 7, 2026
caf2e8b
Merge pull request #71 from RMantis/feat/issue-26-palette-management
vycdev Aug 7, 2026
d223702
Merge remote-tracking branch 'origin/develop' into codex/palette-proo…
vycdev Aug 7, 2026
0ba53a3
feat: add stack matrix calibration
vycdev Aug 8, 2026
932ae59
feat: refine stack matrix photo alignment
vycdev Aug 8, 2026
5f15ad3
feat: polish stack matrix photo workflow
vycdev Aug 8, 2026
234f5b3
Merge pull request #67 from vycdev/codex/palette-proof-feedback
vycdev Aug 8, 2026
bf39fde
fix: address post-merge calibration review
vycdev Aug 8, 2026
d0e22e2
fix: constrain palette proof history menu
vycdev Aug 8, 2026
7550e99
fix: address calibration review findings
vycdev Aug 10, 2026
17123ed
fix: harden calibration defaults
vycdev Aug 10, 2026
0bb5531
fix: reject incompatible proof reinforcement
vycdev Aug 10, 2026
7fa554d
feat: improve auto-paint color separation
vycdev Aug 14, 2026
7e59d13
Merge branch 'codex/improve-color-separation' into develop
vycdev Aug 14, 2026
9bf5cad
feat: use stack matrix as empirical color LUT
vycdev Aug 14, 2026
1f2d935
feat: combine compatible stack matrix evidence
vycdev Aug 14, 2026
fd80672
fix: enforce total repeat limit
vycdev Aug 14, 2026
9db204b
feat: apply palette proof evidence locally
vycdev Aug 16, 2026
0dccf53
feat: refit filament optics from stack matrices
vycdev Aug 16, 2026
4cbdf4e
feat: score auto-paint prediction uncertainty
vycdev Aug 16, 2026
c127bf0
wip: checkpoint printable feature simulation
vycdev Aug 22, 2026
586e1e5
wip: improve performance hot paths
vycdev Aug 24, 2026
a54a1ec
perf: accelerate calibrated exact search
vycdev Aug 25, 2026
27007ae
feat: add community print showcase
vycdev2 Aug 26, 2026
0cc279f
Merge branch 'develop' into codex/performance-without-regressions
vycdev Aug 26, 2026
f2e0956
Improve calibrated optimizer performance and profiling
vycdev Aug 27, 2026
08c8a8c
Fix 3D lifecycle and benchmark validation
vycdev Aug 28, 2026
8ffe749
Merge pull request #73 from vycdev/codex/performance-without-regressions
vycdev Aug 28, 2026
646ac2f
refactor: remove dead code and duplicate test setup
vycdev Aug 29, 2026
a0f32b2
Merge branch 'codex/behavior-preserving-cleanup' into develop
vycdev Aug 29, 2026
c443366
Fix calibrated color prediction and diagnostics
vycdev Aug 29, 2026
248892f
docs: align unreleased changelog with release history
vycdev Aug 29, 2026
5fe1bec
fix: harden 3d settings persistence
vycdev Aug 29, 2026
e92c42e
fix: harden profile and calibration workflows
vycdev Aug 30, 2026
aed3912
feat: refine auto-paint separation and showcase
vycdev Aug 30, 2026
36f8889
test: refresh calibrated optimizer replay
vycdev Aug 31, 2026
faa656e
[verified] exp: add bounded hybrid DE2000 reranking
vycdev2 Sep 1, 2026
d25cfb6
[verified] feat: group effective-optics validation
vycdev2 Sep 1, 2026
ff915f2
test: control calibrated optimizer comparisons
vycdev Sep 2, 2026
1b3c63c
Merge pull request #75 from vycdev2/exp/grouped-calibration-validation
vycdev Sep 2, 2026
d6dba32
fix: broaden hybrid printable reranking
vycdev Sep 2, 2026
af592f0
Merge branch 'develop' into codex/pr74-review
vycdev Sep 2, 2026
176917c
test: refresh hybrid reranking baselines
vycdev Sep 2, 2026
cbe0449
Merge pull request #74 from vycdev2/exp/hybrid-de2000-reranking
vycdev Sep 2, 2026
1e18d3d
Add diagnostics and constrain calibration predictions
vycdev Sep 3, 2026
063b66f
Add color-accurate preview mode
vycdev Sep 4, 2026
f4de749
Fix color prediction consistency and printable stack constraints
vycdev Sep 5, 2026
e8e8121
Improve Matrix prediction and calibration export workflows
vycdev Sep 5, 2026
dd7cdfe
Restore original Star History README links
vycdev Sep 5, 2026
437f36a
Add grouped Titan showcase and desktop profile Save As
vycdev Sep 6, 2026
354ddbc
Add Batmanga and Naruto community showcases
vycdev Sep 7, 2026
6d3fb0b
Fix calibration reopen timing and streamline 3.2 release notes
vycdev Sep 9, 2026
abbc6ff
docs: fold unreleased refinements into feature notes
vycdev Sep 9, 2026
4d8a204
chore: bump upcoming release to 4.0.0
vycdev Sep 9, 2026
f41bd51
chore: finalize Kromacut 4.0.0 release metadata
vycdev Sep 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
tests/assets/performance/**/*.3mf filter=lfs diff=lfs merge=lfs -text
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ jobs:
**macOS:**
1. Download the .dmg file for your Mac:
- Apple Silicon (M1/M2/M3): *_aarch64.dmg
- Intel: *_x86_64.dmg
- Intel: *_x64.dmg
2. Open the DMG and drag Kromacut to Applications
3. Remove quarantine (required for unsigned apps):
sudo xattr -d com.apple.quarantine /Applications/Kromacut.app
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,7 @@ test-results/
src-tauri/target/
src-tauri/gen/
src-tauri/WixTools/

# Agent workspace files
.agents/
.profiles/
10 changes: 7 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,13 @@ geometry, slicer behavior, and print instructions at the same time.

## Domain Notes

- **Transmission Distance (TD):** Used by auto-paint to model light through thin filament layers
with Beer-Lambert-style optical simulation. TD is not just a display value; changing how it is
stored or rounded can change generated layer stacks.
- **Hiding Distance (HD):** Used by auto-paint to model light through thin filament layers with
Beer-Lambert-style optical simulation. `filament.td` stores the frontlit hiding distance in mm
(introduced in profile schema v2; v3 adds appearance evidence); the field keeps its historical
`td` name for data compatibility. Conventional
backlit/lithophane Transmission Distance values are an *input format* only — converted ×0.1
(`FRONTLIT_TD_SCALE`) at entry or during the one-time v1→v2 migration, never stored. HD is not
just a display value; changing how it is stored or rounded can change generated layer stacks.
- **Auto-paint layers:** Auto-paint chooses physical filament stacks for target image colors. The
worker path exists so optimizer choices such as exhaustive, simulated annealing, and genetic
search do not freeze the UI.
Expand Down
51 changes: 51 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,57 @@

All notable changes to Kromacut are documented in this file.

## v4.0.0 - 2026-09-10

### Upgrade notes

- **Back up important filament profiles before upgrading.** Legacy photo-based opacity-calibration records are no longer used and are removed on load; affected filaments should be recalibrated with the new wedge workflow. This does not refer to the new Stack Matrix photo measurements.
- **Regenerate Auto-paint results before printing.** The updated optical model and layer planning can change predicted colors, stack heights, and swap plans. Check the new instructions against your slicer settings.
- **TD is now frontlit Hiding Distance (HD).** Older uncalibrated values are converted once on load or import. Conventional backlit/lithophane TD remains an accepted input and is converted to HD; do not manually rescale already-migrated profiles.
- **Preview colors remain predictions, not guaranteed print matches.** Calibration evidence and confidence help identify better-supported estimates, but results still depend on the filament, printing conditions, and lighting.

### Added

- **Stack Matrix calibration** - Print many fixed-depth filament recipes on one board, then photograph and align the result to measure their colors. Choose 2–8 filaments, recipe depth, capacity, and backing; Kromacut prints every combination that fits or selects a color-diverse subset using the HD model. The photo tools include orientation markers, rotation, precision alignment, a projected grid, and corrected previews, with explicit review for uncertain alignment and optional reference-marker correction.
Compatible matrices supply measured colors and bounded estimates for nearby recipes. Broader optical fitting must improve held-out measurements; unsupported combinations retain conservative estimates. Derived fitting leaves saved HD values, raw measurements, and physical export colors unchanged. Same-ID legacy imports cannot erase newer appearance evidence.
Saved boards remain attached to their owning profile and retain their recipes, regular and first-layer heights, and measurements. New boards follow the current 3D print settings. Plans survive restarts and can be re-downloaded; completed boards can be rephotographed or deleted. Desktop exports use Save As, and cancelled or failed saves do not register a new plan. Calibration 3MFs sanitize invalid characters in filament names.
- **Palette Proofs** - Export a job-specific 3MF of reachable candidate stacks for selected image colors. Record the closest patch, ties, or **None**, with **Best available**, **Close**, or **Dead on** match quality. Draft results persist across restarts. **Continue targets** tests nearby untried challengers; **New targets** explores other colors, without padding exhausted rows with unrelated candidates. Proofs retain their original settings and can be reopened, re-downloaded while compatible, or deleted. Judgments provide bounded appearance corrections without changing HD calibration or physical filament assignments; broader fits require held-out improvement.
- **Preserve color separation** - Enhanced matching can assign distinct image colors to distinct printable colors within a hard predicted ΔE limit. Strict mode rejects incomplete results; otherwise unmatched colors merge into valid surviving matches. Results distinguish **Exact optimum**, **Best found**, and **Partial palette**, report preserved colors and repeats, and block printing when no valid mapping exists. The search removes unnecessary filament repetitions. This option and Height dithering are mutually exclusive.
- **Prediction confidence** - Printable colors report whether they come from exact recipe measurements, interpolation, fitting, or simulation. Matching considers evidence strength alongside predicted color error without weakening the separation limit or overriding Dead-on anchors.
- **Printable feature-size preview** - Inspect detail at the selected effective extrusion width. The At-risk/Printable preview shows narrow regions and likely neighboring-color takeover. Optional **Omit at-risk colors from matching** applies that substitution throughout matching, preview, and export; isolated regions without a defensible replacement retain their original color. The same line-width setting controls height-dither block size. This is a printability estimate, not a substitute for checking the slicer.
- **2D touch-up tools** - Added palette-safe Brush, Eraser, Fill, Text, and color picking. Text can be moved, resized, and wrapped; edits support undo while image adjustments remain non-destructive.
- **3D inspection and color modes** - Added Color accurate, Shaded, Transparent, and Wireframe views, plus a Simulated/Physical filament-color toggle. Color accurate displays the selected swatches without lighting or tone-mapping changes; it does not guarantee a physical color match. These remembered display options never change exported geometry or materials.
- **Carrier-free Flat Paint** - The experimental Flat Paint workflow now supports face-up prints without a clear carrier layer. Normal color-stack order is retained over backing, with visible blends aligned at the flat top surface and no artwork mirroring. Preview, exports, and instructions follow the selected orientation.
- **Landing page and web routing** - Added a responsive landing page at `/` and moved the browser tool to `/app`, preserving same-origin saved data and `/docs/...` links. Includes returning-user launch preferences, themes, desktop downloads, search metadata, and direct-route support. Settings provides a direct link to documentation.
- **Community showcase** - Six responsive project cards combine sixteen preview, slicer, and finished-print images: King of Hearts, Hobbits and Dragons, HOPE, Titan, Batmanga, and Naruto. Captions distinguish predictions from physical results and include creator credits, available source links, and full-size views.
- **Collapsible controls** - Settings groups in 2D and 3D can collapse while retaining important status and quick actions. Their state is remembered.
- **Filament templates and palette tools** - Added unofficial Bambu Lab PLA Basic supplier palettes and read-only filament templates with estimated HD values. Templates can be saved as editable profiles. Built-in, supplier, and custom palettes can be cloned; custom colors support names and persistent enable/disable flags. Older palette files remain compatible, and migration to the expanded built-in catalog retains custom palette and profile selections.
- **HueForge spool import** - Import CSV or TSV spool libraries with flexible columns, quoted fields, multiline values, and a UTF-8 BOM. Names, brands, colors, and spool UUIDs are retained, with duplicate UUIDs made independently editable.
- **Calibration documentation and community links** - Added an illustrated guide to HD, wedge calibration, Palette Proofs, and Stack Matrices, plus Reddit links in Settings and the README.
- **Experimental multi-plate switch** - Added a remembered preview toggle and animation. It is explicitly unfinished and does **not** split images or change generated prints.
- **Developer diagnostics and validation** - Optional desktop recording captures Auto-paint settings, evidence, progress, and final stacks without the source image or changes to optimizer selection. It is off by default. Offline tools create frozen diagnostic print bundles, replay predictions against preserved recipes, and evaluate withheld recipes, filament pairs, and boards. Reports distinguish model estimates from photographed evidence and disclose shared-photo limitations; these tools do not modify saved calibration.
- **Regression and performance coverage** - Added deterministic stack fixtures, printable-layer and export checks, prediction-consistency and held-out-validation tests, reproducible optimizer benchmarks, and browser coverage for calibration, persistence, exports, and the landing page. Color-quality tests assess predicted colors at printable layer heights, not independently measured print accuracy.

### Changed

- **Frontlit wedge calibration and HD** - Replaced the legacy photo-based opacity workflow with camera-free printed wedges and adjacent opaque reference rails. Quick reads measure scalar HD; additional bases refine a constrained channel estimate. Partial sessions save only completed filaments, and editing a calibrated swatch temporarily disables its calibration without deleting it. STL and multi-material 3MF exports retain the settings used to print the wedge. HD storage semantics were introduced in profile schema v2 and are retained in v3, which also preserves validated appearance evidence.
- **Auto-paint optical model** - Blending now uses linear-light sRGB and substrate-aware HD estimates. Wedge refinements remain local to tested bases; compatible Stack Matrix evidence can support richer fits within measured thickness ranges. Interpolation and measured-prefix corrections fade outside their support, with conservative estimates used beyond it.
- **Auto-paint matching and search** - Scoring, preview, and export now share the final layer-snapped, height-limited stack. Only results matching the current layer settings are used for slicing. Matching evaluates predicted CIEDE2000 color error at printable heights, considers poorly matched colors and prediction confidence, and reuses the selected layers in the preview. New Fast, Balanced, Thorough, Deep, and Exact effort tiers replace older algorithm choices, with repeat limits, transition detail, stable seeds, deterministic beam-search tie-breaking, and search progress. Saved algorithm selections migrate to the nearest tier.
- **Performance** - Reduced startup, 3D-tab, calibration, and optimizer overhead through worker offload, deferred preparation, bounded caches, and lower-allocation processing. Completed work is reused when inputs are unchanged, while deterministic stack and export results are preserved.
- **Results display** - Transition Zones includes a proportional stack bar and compact height rows. Calibration confidence and optimizer status are easier to scan.
- **Height dithering** - Replaced Floyd-Steinberg with an error-conserving Stucki kernel while retaining block sizing and edge protection.
- **Dependency security updates** - Updated Tauri to 2.11.1 to address a Windows IPC origin-confusion issue, alongside Rust dependency and development-tooling updates. The production npm audit is clear; remaining npm findings are confined to development tooling.

### Fixed

- **Desktop file exports** - Filament-profile `.kfil` exports use Save As, handle cancellation without reporting success, and surface write errors. Large 3MF exports stream XML in bounded chunks to avoid desktop WebView read and string-size failures.
- **Profile and palette persistence** - Failed storage writes no longer report success or replace working state. Imports validate hiding distances and duplicate filament IDs; legacy stored ID collisions are repaired without dropping filament rows, while ambiguous appearance evidence is discarded.
- **Remembered print settings** - Saved Auto-paint settings load before persistence can replace them with defaults. Unsaved filament edits remain authoritative, Max Height and wedge layer height are remembered, and Reset Print Settings also resets Smooth Meshing.
- **Max Height and foundation opacity** - Height caps round down to printable boundaries; compression and trimming preserve the foundation's opacity minimum, and impossible foundations are rejected.
- **Auto-paint edge cases** - Center and Edge priority use actual image regions. Blank seeds, cache inputs, zero-HD limits, and the 500-layer ceiling behave consistently.
- **Crop controls** - Crop overlays no longer block Save, Cancel, or the image-size controls.
- **Smooth 3MF integrity** - Validate and, where needed, retriangulate smoothed faces at export precision to prevent pinhole open or non-manifold edges in large exports. STL exports were unaffected.

## v3.1.0 - 2026-06-18

### Added
Expand Down
1 change: 1 addition & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@AGENTS.md
Loading