Skip to content

Add “Layer Color Mixing” (Striped Optical Blend) mode to automate per-layer tool/filament alternation #113

@DayA9-Max

Description

@DayA9-Max

Is there an existing issue for this feature request?

  • I have searched the existing issues

Is your feature request related to a problem?

Many multi-material users want colors they don’t physically have (e.g., pink from red+white) or want intentionally “blended” aesthetics (like the green-looking purge block effect from layered black+yellow). With FDM, this is a known visual phenomenon (color assimilation / “Bezold spreading”-type effect) when you alternate thin stripes/layers.

Right now, achieving this in Snapmaker Orca requires:

  • manually adding many layer-based “Change Filament/Tool” operations (impractical for hundreds of layers), or
  • exporting G-code and running external post-processing scripts (hard to preview, fragile, and not beginner-friendly).

This is exactly the kind of workflow that benefits from first-class slicer support.

Which printers will be beneficial to this feature?

Klipper

Describe the solution you'd like

Add a built-in slicer feature that automates layer-based tool alternation specifically for optical color mixing.

Proposed feature name(s)

  • Optical Color Mixing
  • Layer Color Mixing
  • Color Assimilation Mode
  • Bezold Blend Stripes (fun, but might be too academic—“Optical Color Mixing” is clearest)

User workflow (simple)
In the filament/tool settings (near “Change Filament at Layer”):

Optical Color Mixing

  • Tool A / Tool B: dropdown (e.g., White + Red)
  • Layer range: start layer / end layer (or start Z / end Z)
  • Pattern ratio: A:B (e.g., 1:1, 2:1, 3:1, custom)
  • Scope:
    • External walls only (recommended default)
    • Whole part (eliminates waste if purged into infill)
    • Top surfaces only / bottom surfaces only (optional)
  • Toolchange handling (U1-specific default):
    • Use standard U1 toolchange macro + prime (same as existing multi-tool prints)
    • Optional: standby temperature for inactive toolheads

Expected behavior

  • Slicer emits deterministic per-layer tool changes according to the selected pattern.
  • Uses U1’s normal toolchange/prime routine so prints remain reliable.
  • Preview should clearly show tool usage (colors per layer), making it safe to iterate.

Describe alternatives you've considered

  1. Manually adding dozens/hundreds of “Change Tool at Layer” entries.
  2. External post-processing scripts to inject tool changes and prime logic (works, but fragile and hard to validate).
  3. Painting or model-splitting and gluing (time-consuming, defeats the point of automation).

None of these provide the “it just works” experience that Snapmaker Orca could deliver, especially given U1 hardware capabilities.

Additional context

This is a high-visibility differentiator for U1.

Optical layer mixing is a “wow” feature that is:

  • easy to explain in marketing/docs (“print new colors you don’t own”),
  • easy to demo (small swatches showing pink/purple/orange effects),
  • uniquely enabled by the U1’s fast tool changes and dedicated heads.

Example use cases

  • Generate “pink” from red+white, “light orange” from red+yellow, etc.
  • Decorative textures on boxes, signs, figurines, organizers, gift items.
  • Branding, labels, and subtle gradients without needing special filament.
  • Controlled aesthetic striping as a design element.

Implementation-friendly acceptance criteria

  • User selects Tool A/B, layer range, ratio.
  • Slicer generates tool changes at layer boundaries accordingly.
  • If the printer profile supports it (U1), toolchanges include prime/standby logic consistent with existing multi-tool prints.
  • Preview reflects the mixed-mode tool plan.

Also helpful for any multi-tool / multi-extruder printers, but the U1 stands out because:

  • tool changes are fast and repeatable,
  • each filament has a dedicated toolhead (no cross-contamination),
  • tool changes can include predictable prime/standby macros.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions