Add mixed filament bias controls and bump version to 0.9.51

This commit is contained in:
Rad
2026-04-13 21:00:30 +02:00
parent f5ce77c15a
commit 4a5746a6e6
27 changed files with 530 additions and 159 deletions

View File

@@ -0,0 +1,41 @@
## ⚠️ EXPERIMENTAL BUILD - NOT TESTED ⚠️
Based on Snapmaker Orca v2.2.4
This is an alpha release of Full Spectrum with mixed-color filament support.
**THIS HAS NOT BEEN TESTED ON ACTUAL HARDWARE!**
### What's New
- **Mixed Filaments UI**: Renamed the feature from Dithering to Mixed Filaments and improved row labeling.
- **Auto + Custom Mixed Filaments**: Auto-generated mixed rows from physical filaments plus manual custom rows via `+`.
- **Gradient Selector**: Added visual gradient picking for custom mixed rows to control A/B blend ratio.
- **Cadence Controls**: Added Layer cycle cadence, Height-weighted cadence toggle, and Advanced dithering mode.
- **Mixed Height Bounds**: Added lower/upper mixed filament height bounds and cycle controls in Process -> Others.
- **Z Step Controls**: Added dithering Z step size and painted-zone behavior options.
### Changelog
- Added mixed filament dependency cleanup when a physical filament is removed.
- Added Process -> Others controls for mixed filament cadence and height behavior.
- Fixed multiple startup/UI crashes related to mixed filament rows and Others-tab interactions.
- Fixed gradient selector state handling and crash on color change.
- Improved sidebar behavior with compact mixed-row spacing and scroll handling for many mixed rows.
- Improved mixed preview colors with weighted RYB pigment-style blending and normalization.
- Added invalidation propagation so mixed-setting changes correctly require re-slicing.
- Updated mixed-setting tooltips with experimental disclaimers and a wiki-availability note.
### Installation
1. Download `Snapmaker_Orca.exe` (or the full package)
2. Extract to a folder
3. Run the executable
### ⚠️ Warning
- Use at your own risk
- May produce incorrect G-code
- Seeking testers with U1 printers
### Known Issues
- Untested on real hardware
- Mixed filament behavior may require per-material calibration
- Advanced dithering is highly experimental and may not match normal dithering color output
- Height-weighted cadence operates at the layer plane level, not independent per-color subregions in the same XY plane

View File

@@ -0,0 +1,75 @@
## v0.7-alpha Pre-release
EXPERIMENTAL BUILD - NOT TESTED
Based on Snapmaker Orca v2.2.4
v0.7 full spectrum alpha focuses on Local Z reliability, better mixed-filament control, and a cleaner custom Gradient/Pattern workflow.
This has had limited testing on the Snapmaker U1 via the community.
### What's New in v0.7
#### Local Z Dithering Reliability (v0.7)
- Improved handling for overlapping mixed-painted zones on the same XY plane.
- Fixed cases where layer-height modulation could flatten or become equal when a second zone starts.
- Fixed stale first-zone behavior where editing one gradient did not correctly update resulting layer heights.
- Reduced repeated same-color layer runs in complex multi-zone transitions.
- Mixed passes and base passes are separated more cleanly in perimeter clipping paths.
#### Manual Pattern Mixed Filaments (v0.6, refined in v0.7)
- Pattern add button in Mixed Filaments UI (alongside Gradient add).
- Custom repeating layer patterns (for example `11112222` for a 4:4 ratio).
- Pattern parser accepts `1/2` or `A/B` with separators (`/`, `-`, `_`, `|`, etc.).
- Manual pattern takes precedence; blend percentage is auto-derived from the pattern.
- Backward-compatible parsing for older custom mixed-row formats.
#### Local Z Dithering Mode (v0.4, refined in v0.7)
- Local Z dithering mode in Process -> Others (`dithering_local_z_mode`).
- Mixed-painted zones are split into local sub-passes with pass-specific flow height.
- Runtime guard remains active when wipe tower or wiping overrides are enabled.
#### Selective Expansion/Contraction (v0.7)
- Added selective expansion/contraction controls for mixed-color behavior tuning in challenging transition regions.
- Intended to help with edge consistency where mixed passes interact with neighboring toolpaths.
#### Mixed Filaments UI Refresh (v0.7)
- More modern and compact layout for custom Gradient and Pattern mixed filaments.
- Reduced spacing and tighter row cards for better readability with many mixed rows.
- Cleaner preview area with summary inline for faster scanning.
#### Config/Save/Load Reliability (v0.5 + v0.7 hardening)
- Config comparison checks type and value.
- Improved dirty-state detection, diffing, and unsaved-changes behavior.
- Mixed filament project settings load more consistently.
- Stronger logging for mixed-row parsing and config application.
#### Same-layer Pointillisme (new in v0.7, experimental)
- What it is: a same-layer color interleaving mode that tries to distribute multiple filaments inside a single layer instead of alternating by layer.
- Goal: test whether very small in-layer color "dots" can produce smoother visual blends than normal layer cycling.
- Status: extremely experimental and may produce unusable results.
- Reality check: this is likely a dead end for production use on current hardware and may be removed or replaced in a future release.
### Installation
1. Download `Snapmaker_Orca.zip`.
2. Extract to a folder.
3. Run the executable.
### Warning
- Use at your own risk.
- May produce incorrect G-code.
- Local Z behavior is still experimental.
- Seeking testers with U1 printers.
### Features Not Yet Tested
1. Local Z height dithering
2. Patterns
3. Selective expansion/contraction
4. Advanced dithering
5. Height-weight cadence
### Known Issues
- Untested on real hardware.
- Local Z mode still needs validation with real prints.
- Advanced dithering output may require calibration.
- Pointillisme is research-grade only right now and is likely not viable for stable, repeatable prints.
- Startup crash may still occur in some setups and needs further debugging.

View File

@@ -0,0 +1,61 @@
## v0.8 Pre-release
EXPERIMENTAL BUILD - LIMITED TESTING
Based on Snapmaker Orca v2.2.4
v0.8 full spectrum pre-release focuses on filament mixer color accuracy and Linux AppImage packaging.
This has had limited testing on the Snapmaker U1 via the community.
### What's New in v0.8
#### Filament Mixer Color Blending (v0.8)
- Replaced the legacy RYB blend path with FilamentMixer.
- Updated mixed-filament preview/display color computation to use FilamentMixer interpolation.
- Improved mixed-filament color consistency for generated combinations.
- Retained legacy RYB conversion helpers in code as reference.
#### Linux AppImage Packaging (new in v0.8)
- Added Linux release artifact: `Snapmaker_Orca_Linux_V2.2.4.AppImage`.
- AppImage is now the primary Linux release artifact for end users.
- Current Linux build target is `x86_64`.
- Current runtime baseline is glibc `2.38+`.
- `Snapmaker_Orca.tar` remains available as an advanced/manual fallback.
### Installation
#### Windows
1. Download `Snapmaker_Orca.zip`.
2. Extract to a folder.
3. Run the executable.
#### macOS
1. Download the macOS build (`arm64` for Apple Silicon or `x86_64` for Intel).
2. If the release asset is a `.zip`, unzip it first.
3. Open the `.dmg`.
4. Drag `Snapmaker_Orca.app` into `Applications`.
5. Launch the app from `Applications`.
#### Linux (AppImage)
1. Download `Snapmaker_Orca_Linux_V2.2.4.AppImage`.
2. Run `chmod +x Snapmaker_Orca_Linux_V2.2.4.AppImage`.
3. Run `./Snapmaker_Orca_Linux_V2.2.4.AppImage`.
### Warning
- Use at your own risk.
- May produce incorrect G-code in edge cases.
- Mixed-filament behavior is still experimental in some scenarios.
- This release has had limited real-printer validation.
### Features Not Yet Fully Tested
1. Linux AppImage behavior across all desktop environments/distributions.
2. Mixed-filament visual color matching across different filament brands/materials.
### Known Issues
- Older Linux distributions may fail to run this AppImage due to glibc mismatch.
- Some systems may require `libfuse2` for AppImage execution.
- On-screen color blend preview may not exactly match physical print results.
### Credits
- FilamentMixer color blending integration is powered by the FilamentMixer library by [justinh-rahb](https://github.com/justinh-rahb).
- Library repository: [https://github.com/justinh-rahb/filament-mixer](https://github.com/justinh-rahb/filament-mixer).

View File

@@ -0,0 +1,41 @@
# Snapmaker Orca Full Spectrum v0.9.4
Mixed-filament workflow expansion, Local-Z ordering fixes, and release hardening.
Based on Snapmaker Orca v2.2.4.
## Highlights
### Multi-Perimeter Mixed Filament Support
- Added support for multi-perimeter patterns so mixed-filament layouts can preserve more complex perimeter assignments.
- Extended the mixed-filament planning path to carry those patterns through slicing and G-code generation.
### Object Color Mapping And Filament Assignment
- Improved object-color matching with a more predictable `Keep color` path when new colors are appended.
- Simplified appended-color handling so imported object colors map to the intended filament entries more reliably.
- Increased the color picker capacity beyond 16 colors for larger multi-color projects.
### Mixed Filament Workflow Improvements
- Improved mixed-filament UI performance in the object-color workflow.
- Added mixed-filament reordering support so custom entries can be reorganized without recreating them.
- Updated project/config handling so reordered entries stay consistent across the slicing pipeline.
### Local-Z And Tool Ordering
- Added Local-Z wipe tower reserve planning and pass ordering updates to keep tool sequencing aligned with Local-Z execution.
- Introduced `LocalZOrderOptimizer` coverage and integration points to improve pass ordering determinism.
### Stability And Build Reliability
- Added GUI startup profiling hooks to help diagnose initialization cost.
- Hardened Bonjour socket cleanup by dropping unusable sockets more aggressively.
- Added `/FS` to MSVC parallel compile options to reduce Windows build contention.
## Tests
- Added `test_local_z_order_optimizer.cpp`.
- Expanded mixed-filament regression coverage in `test_mixed_filament.cpp`.
- Added triangle selector coverage in `test_triangle_selector.cpp`.
## Important Notes
- Experimental release with limited printer validation.
- macOS builds from this fork are unsigned and not notarized.
- Use at your own risk.

View File

@@ -0,0 +1,79 @@
## v0.9 Pre-release
EXPERIMENTAL BUILD - LIMITED TESTING
Based on Snapmaker Orca v2.2.4
v0.9 full spectrum pre-release focuses on mixed-filament workflow UX and stability.
### What's New in v0.9
#### Mixed Filaments UI/UX Overhaul (v0.9)
- Replaced the blocking mixed-filament popup with an inline expand/retract editor.
- Added row hover feedback and click-anywhere row activation for custom mixed filaments.
- Added dynamic mixed-filament panel resizing with an expansion cap sized for up to two expanded rows.
- Simplified editor flow to `Simple` mode only (mode selector removed from the inline editor).
- Moved gradient selector inline with filament selectors for faster editing.
- Reworked filament selectors into compact color swatch pickers with `F1/F2/...` labels.
- Simplified pattern editing:
- removed insert dropdown/button flow,
- kept direct filament buttons for appending pattern tokens.
- Moved preview labels into the preview bar itself (`Preview` + ratio overlay), with outlined text for readability.
#### Mixed Filaments Behavior and Reliability (v0.9)
- Automatic mixed filaments are now read-only in the inline settings editor.
- Automatic mixed filaments can now be deleted from the UI.
- Added persistent deleted-state storage for mixed filament rows so deleted auto rows stay deleted after refresh/restart.
- Excluded deleted rows from enabled/displayed virtual filament mapping.
- Improved change propagation so mixed-filament edits correctly mark config/project dirty states.
- Addressed mixed-filament editor collapse/refresh stability issues.
#### Local Z Dithering and Prime Tower Handling (v0.9)
- Enhanced Local-Z phase-b tool change handling when wipe/prime tower is enabled.
- Added an unplanned Local-Z tool-change path in wipe tower integration to emit proper tool-change/wipe G-code outside the preplanned per-layer sequence.
- Enabled Local-Z phase-b execution with wipe tower active (still blocked when wiping overrides are active).
- Restored pre-pass extruder state after Local-Z phase-b so subsequent wipe/prime tower planning remains synchronized.
- Improved Local-Z + wipe tower diagnostics/fallback logging for troubleshooting.
#### Dark Mode and Visual Consistency (v0.9)
- Added dark-mode-aware styling to mixed-filament rows and inline editor controls.
- Fixed dark-mode text contrast for mixed-filament row labels and controls.
- Updated gradient/preview border handling for better dark-mode contrast.
### Installation
#### Windows
1. Download `Snapmaker_Orca.zip`.
2. Extract to a folder.
3. Run the executable.
#### macOS
1. Download the macOS build (`arm64` for Apple Silicon or `x86_64` for Intel).
2. If the release asset is a `.zip`, unzip it first.
3. Open the `.dmg`.
4. Drag `Snapmaker_Orca.app` into `Applications`.
5. Launch the app from `Applications`.
#### Linux (AppImage)
1. Download `Snapmaker_Orca_Linux_V2.2.4.AppImage`.
2. Run `chmod +x Snapmaker_Orca_Linux_V2.2.4.AppImage`.
3. Run `./Snapmaker_Orca_Linux_V2.2.4.AppImage`.
### Warning
- Use at your own risk.
- May produce incorrect G-code in edge cases.
- Mixed-filament behavior is still experimental in some scenarios.
- This release has had limited real-printer validation.
### Features Not Yet Fully Tested
1. Mixed-filament editor behavior on all platform/theme combinations (Windows/macOS/Linux).
2. Dark-mode visual consistency across all desktop environments.
3. Mixed-filament preview/readability with all localization strings and scaling factors.
### Known Issues
- On-screen color blend preview may not exactly match physical print results.
- Some UI spacing/alignment may vary by OS and system font rendering.
- Older Linux distributions may fail to run this AppImage due to glibc mismatch.
### Credits
- FilamentMixer color blending integration is powered by the FilamentMixer library by [justinh-rahb](https://github.com/justinh-rahb).
- Library repository: [https://github.com/justinh-rahb/filament-mixer](https://github.com/justinh-rahb/filament-mixer).

View File

@@ -0,0 +1,48 @@
# Snapmaker Orca Full Spectrum v0.9.3 (Pre-release)
Mixed-filament reliability, Local-Z dithering fixes, and fork-safe CI/CD.
Based on Snapmaker Orca v2.2.4.
## Highlights
### Local-Z Dithering Fixes
- Fixed prime tower degradation during Local-Z dithering by directly switching extruders instead of replaying full tool change templates.
- Improved starting component logic for alternating layers so height adjustments are computed from the correct pass sequence.
- Updated tooltip to clearly explain variable layer height blending with concrete examples (e.g. a 66/33 blend at 0.12 mm prints as 0.08 mm + 0.04 mm layers).
### Stable Mixed Filament Identity
- Introduced `stable_id` for mixed filament entries, giving each entry a persistent identity that survives additions, deletions, and reordering.
- Custom GCode tool changes now reference filament IDs instead of extruder IDs, preventing misrouted tool changes when mixed filaments are modified.
- Stable ID allocation and normalization ensures consistent behavior across project save/load cycles.
### Mixed Filament 3MF and GUI Improvements
- Added functions to compute physical filament count and maximum supported filament ID from project configuration.
- GUI now displays total filament counts including mixed filaments in object list and object table.
- Streamlined color assignment and naming for both physical and mixed filaments during initialization.
- Canvas colors now refresh immediately when mixed filaments are modified.
### ObjColorPanel Filament Mapping
- Fixed filament ID assignment during color updates by introducing a mapping mechanism for appended filament IDs.
- Improved filament ID resolution in approximate-match and default-strategy code paths.
### Network Discovery Stability
- Hardened UdpSocket (mDNS/Bonjour) with a socket quarantine mechanism that centralizes error handling for setup, send, and receive operations.
- Added a `cancel` method and `m_socket_usable` flag to prevent operations on broken sockets, fixing crashes on systems where mDNS discovery fails.
## Bug Fixes
- Fixed `MixedFilamentConfigPanel` summary handling to avoid empty-string edge cases in preview data.
- Fixed `instance_shift` type to `Vec3d` for correct object pasting behavior in the Selection class.
- Replaced `wxEmptyString` with `wxString()` across Plater to prevent subtle initialization issues.
## Tests
- Added unit tests for custom GCode tool change handling with mixed filament configurations.
- Added unit tests for stable ID remapping in mixed filament scenarios.
## Important Notes
- Experimental build with limited testing.
- macOS builds from this fork are unsigned and not notarized. macOS Gatekeeper may warn or block the app; use right-click > Open or allow it in System Settings > Privacy & Security.
- Use at your own risk.
## Credits
- FilamentMixer color blending integration is powered by FilamentMixer by [justinh-rahb](https://github.com/justinh-rahb).
- Library: [https://github.com/justinh-rahb/filament-mixer](https://github.com/justinh-rahb/filament-mixer)

View File

@@ -0,0 +1,46 @@
# Snapmaker Orca FullSpectrum v0.95
Mixed-color workflow improvements, Snapmaker 2.3.1 sync, and release polish.
Based on Snapmaker Orca v2.3.1.
## Quick Overview
- Rebased the fork onto the newer Snapmaker Orca 2.3.x line and updated the base to 2.3.1.
- Improved mixed-color generation so it can find better color matches and manage gradients more cleanly.
- Added more control over how infill uses filaments, including first-layer and last-layer behavior.
- Reduced fragmentation in painted mixed-color areas by collapsing same-color regions where possible.
- Refreshed release branding with the Snapmaker Orca FullSpectrum name, updated About dialog information, and the new FS app icon.
## More Detailed Overview
### Base Sync And Stability
- Synced FullSpectrum with the Snapmaker 2.3.0 update path and bumped the base version to Snapmaker Orca 2.3.1.
- Pulled in a wide set of upstream Linux, macOS, packaging, Flutter-resource, and web/download-flow fixes from the Snapmaker 2.3.x branch.
- Included the OpenVDB clang patch fix from PR #66.
- Kept the fork release flow focused on the fork itself, including the fork release link in the README and Windows portable packaging for releases.
### Mixed-Color And Dithering Improvements
- Added a brute-force color mixer path that can search for closer 2-, 3-, or 4-filament combinations from the selected physical filaments.
- Added `min_component_percent` validation so suggested mixes stay within more useful and realistic component ranges.
- Added controls for auto-generated mixed filament gradients, including preference handling and guardrails for very large generated sets.
- Added an explicit infill filament override setting so infill can use a different filament without relying on implicit behavior.
- Added per-layer control to keep base filament on the first and last layers before switching infill to the override filament.
- Added support for collapsing same-color mixed filament regions across painted areas so equivalent output colors can slice as larger continuous regions instead of separate islands.
- Added additional Local-Z and mixed-filament slicing fixes plus broader regression coverage in tests.
### Workflow And Usability Improvements
- Fixed the `.gcode.3mf` filename issue.
- Fixed wipe tower brim behavior inherited from the 2.2.3 line.
- Added and expanded tests around mixed filament handling, slicing behavior, and output generation.
- Updated visible app branding to Snapmaker Orca FullSpectrum.
- Updated the About page to show both the Snapmaker Orca base version and the FullSpectrum fork version.
- Replaced the app icon set with the new FS branding assets.
## Notes
- This release has been tested on actual hardware.
- macOS builds from this fork remain unsigned and not notarized.
- Release downloads for this fork are available here: https://github.com/ratdoux/OrcaSlicer-FullSpectrum/releases

View File

@@ -0,0 +1,49 @@
# Snapmaker Orca Full Spectrum v0.92 (Pre-release)
Mixed-filament stability and workflow release.
Based on Snapmaker Orca v2.2.4.
## Highlights
### Gradient Behavior Is Now Gradual
- Removed the `Mixed filament layer cycle` setting.
- Reworked non-height-weighted gradient math to use gradual integer cadence by ratio (minority side anchors to 1 layer, majority side scales progressively).
- This prevents abrupt jumps in layer cadence and makes transitions more predictable.
### Mixed Filament Indexing And Mapping Fixes
- Fixed mixed-filament row labeling so IDs stay compact after deletions in the Mixed Filaments panel.
- Fixed regeneration order so auto-generated/precomputed mixes are appended at the end of existing mixed rows instead of being inserted at the front.
- Fixed paint/index remapping when adding physical or virtual filaments so existing painted mixed regions keep their intended virtual filament mapping.
- Fixed edge case where the first mixed filament could be temporarily replaced by a newly added physical filament.
### Automatic Mixed Filaments Are Editable
- Automatic mixed rows can now be expanded and edited through the gradient controls.
- Edited auto-origin rows are treated as user-managed entries.
- Deleting an edited auto-origin row now keeps that auto pair tombstoned (it will not be regenerated immediately and overwrite user intent).
### Gradient Preview Color Fidelity
- Updated gradient preview blending to use the FilamentMixer library path for color reproduction.
- Preview swatches now better match expected mixed output.
### Selective Expansion/Contraction Fix
- Updated selective mixed-zone contraction so positive values trim only the outside-facing (visible) boundary band.
- Internal/shared boundaries are no longer symmetrically contracted.
- Outward expansion behavior remains unchanged.
## Also Included (v0.91 Carry-Forward Fixes)
- Windows startup/log path handling for non-ASCII usernames (UTF-8-safe path resolution).
- Mixed-filament swatch desync/gray-regression fixes in preview rendering.
## Internal/Config Changes
- Removed `mixed_filament_cycle_layers` from config/UI wiring.
- Extended mixed filament serialized metadata with auto-origin tracking to preserve delete/regenerate intent across reloads.
- Added diagnostic logging around mixed-filament remap and selective-indentation application paths.
## Important Notes
- Experimental build with limited testing.
- Some projects may show different gradient cadence behavior due to the removal of explicit layer-cycle control.
- Use at your own risk.
## Credits
- FilamentMixer color blending integration is powered by FilamentMixer by [justinh-rahb](https://github.com/justinh-rahb).
- Library: [https://github.com/justinh-rahb/filament-mixer](https://github.com/justinh-rahb/filament-mixer)