Skip to content

ImageMap FULL PR5: harden LFS/CI, C3 best-effort docs, known gaps - #14

Draft
aceRage wants to merge 2 commits into
cursor/feat-imagemap-full-pr4-ui-f9c3from
cursor/feat-imagemap-full-pr5-harden-02d1
Draft

ImageMap FULL PR5: harden LFS/CI, C3 best-effort docs, known gaps#14
aceRage wants to merge 2 commits into
cursor/feat-imagemap-full-pr4-ui-f9c3from
cursor/feat-imagemap-full-pr5-harden-02d1

Conversation

@aceRage

@aceRage aceRage commented Sep 4, 2026

Copy link
Copy Markdown
Owner

Description

ImageMap FULL PR5 (harden + LFS/CI reliability + known-gaps docs). No new feature surfaces.

Feature-patch extract from OrcaSlicer-ImageMap @92548381056 (v1.0.44 lineage). Does not merge ImageMap main.

Stack / base tip

Locked product decisions (unchanged)

Decision Status
Contoning / Remap / ImportedTexture IN (PR1–PR4)
lut_wide.png.c via Git LFS IN — cmake/CI now fail clearly on a pointer
Wipe-tower TM filament count IN (PR4)
GLTF / tinygltf OUT (stub)
Prime-tower images OUT
C3 (paint-depth + texture same object) best-effort only — crash-only; not a supported product claim
Calibration Electron app OUT
PaintDepth.* / paint_depth_* / test_paint_depth*.cpp untouched

What this PR does

  1. C3 best-effort — Documented as unsupported in docs/imagemap-full-known-gaps.md and docs/imagemap-full-pr5.md. Crash-only test [texturemapping][pr5][c3] in tests/libslic3r/test_texture_mapping.cpp. Does not assert combined visual correctness.
  2. LFS / CI.gitattributes already tracks deps_src/pigment-painter/lut_wide.png.c (38094965 bytes). pigment_painter cmake FATAL_ERRORs if the file is missing or still a Git LFS pointer (verified: configure stops with the explicit message). build_orca.yml re-checks after lfs: true checkout. build_linux.sh refuses to compile on a pointer. Build docs: README.md, CLAUDE.md, AGENTS.md, deps_src/pigment-painter/README.md.
  3. Perf sanity — UI MMUPaintedTexturePreview heaviest halftone paths stay off by default. Defaults documented + [texturemapping][pr5] assertion. Offset weight field stays on the slice path.
  4. Known gapsdocs/imagemap-full-known-gaps.md: ships vs gaps, residual TODOs, Claude-manager merge rules, REAPER smoke.
  5. Cheap residual — Documented unused LayerTools TM vectors. spike/verify_chameleon.sh / verify_paintdepth.sh: cd … || exit only (Shellcheck SC2164) so repo-wide Shellcheck stays green. No paint-depth formula change.

CI follow-up (this revision)

The first commit linked docs/imagemap-full-pr5.md from doc/developer-reference/How-to-build.md. The wiki validator indexes only doc/, so that link was “missing”, and touching any doc/**/*.md reports the entire pre-existing wiki-link backlog (Home.md, Tab.cpp paint-depth fragments, How-to-wiki, image alt text, etc.). Those are not PR5 regressions.

Fix: How-to-build.md is restored to the PR4 tip (net-zero vs #13). LFS notes stay in docs/ + README. Shellcheck SC2164 in the two spike verify scripts is fixed because changing build_linux.sh runs repo-wide Shellcheck.

Files touched (net vs PR4)

  • docs/imagemap-full-pr5.md (new)
  • docs/imagemap-full-known-gaps.md (new)
  • docs/imagemap-full-pr1.mdpr4.md (cross-links)
  • deps_src/pigment-painter/CMakeLists.txt / README.md
  • .github/workflows/build_orca.yml
  • build_linux.sh
  • README.md, CLAUDE.md, AGENTS.md
  • src/libslic3r/GCode/ToolOrdering.hpp (stub comments)
  • src/libslic3r/TextureMapping.hpp (conservative-default comments)
  • tests/libslic3r/test_texture_mapping.cpp
  • spike/verify_chameleon.sh, spike/verify_paintdepth.sh (cd || exit only)

Not touched (net): How-to-build.md, PaintDepth.*, test_paint_depth*.cpp, Plater/PartPlate/AMS/SendJob/Stream/Remote, GLTF, prime-tower images.

LFS / cmake checks

git lfs install && git lfs pull
wc -c deps_src/pigment-painter/lut_wide.png.c   # expect 38094965

Cloud still has the LFS pointer. Isolated cmake of deps_src/pigment-painter FATAL_ERRORs as intended.

C3 stance

Unsupported / best-effort. No marketing claim. Crash-only automated case + manual REAPER checklist.

Known-gaps path

docs/imagemap-full-known-gaps.md and docs/imagemap-full-pr5.md.

Ships: side texture + Contoning + Remap + ImportedTexture + full UI + LFS LUT + wipe-tower TM count.

Gaps: no .gltf/.glb; no prime-tower images; C3 best-effort; no calibration Electron app; TD sheets optional static docs only.

Claude manager: stack PR1–PR5; smoke gates before merge; Code Team does not merge.

Forbidden-region greps (this PR vs PR4 tip)

git diff --name-only e3e839962758b61bbb3542696b11c931bf79ef91...HEAD
# no Plater.cpp / PartPlate*.cpp / GLGizmoMmuSegmentation.cpp / SendJob / Stream / Remote

git diff --name-only -- '**/PaintDepth.*' '**/test_paint_depth*'
# empty

Tests

  • test_paint_depth*.cpp untouched.
  • Added [texturemapping][pr5] + [texturemapping][pr5][c3].
  • Cloud cannot build the full slicer or libslic3r_tests.

Owed REAPER smoke (required before merge)

git checkout cursor/feat-imagemap-full-pr5-harden-02d1
git lfs pull
# rebuild
./tests/libslic3r/libslic3r_tests "[texturemapping]"
./tests/libslic3r/libslic3r_tests "[paintdepth]"

Screenshots/Recordings/Graphs

Docs / cmake / tests only — no UI change.

Tests

Cloud: cmake LUT pointer FATAL_ERROR verified. Full [texturemapping] / [paintdepth] owed on REAPER after git lfs pull + rebuild.

Open in Web Open in Cursor 

No new feature surfaces. Document C3 as unsupported/best-effort, refuse a missing LFS LUT at cmake/CI, and list residual gaps for the stacked PR1–PR5 pack.

Co-authored-by: aceRage <aceRage@users.noreply.github.com>
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown

Documentation validation failed

🔗 Link Validation Errors

📄 doc/developer-reference\Built-in-placeholders-variables.md:

  • Line 93: home#process-settings - Fragment does not exist
  • Line 93: home#material-settings - Fragment does not exist

📄 doc/developer-reference\How-to-build.md:

  • Line 12: imagemap-full-pr5.md - File does not exist

📄 doc/developer-reference\How-to-wiki.md:

  • Line 44: home#material-settings - Fragment does not exist
  • Line 45: home#process-settings - Fragment does not exist
  • Line 46: home#prepare - Fragment does not exist
  • Line 47: home#calibrations - Fragment does not exist
  • Line 50: home#process-settings - Fragment does not exist
  • Line 50: home#support-settings - Fragment does not exist
  • Line 50: home#others-settings - Fragment does not exist

📄 doc/Home.md:

  • Line 14: Precise-wall.md - File does not exist
  • Line 17: extrusion-rate-smoothing.md - File does not exist
  • Line 33: adaptive-pressure-advance.md - File does not exist

📄 doc/Tab.cpp:

  • Line 2411: fill-patterns - File does not exist
  • Line 2412: fill-patterns - File does not exist
  • Line 2415: fill-patterns - File does not exist
  • Line 2606: multimaterial_settings_prime_tower#brim-chamfer - Fragment does not exist
  • Line 2607: multimaterial_settings_prime_tower#brim-chamfer-max-width - Fragment does not exist
  • Line 2619: multimaterial_settings_prime_tower#wall-gap - Fragment does not exist
  • Line 2634: multimaterial_settings_ooze_prevention#delta-temperature - Fragment does not exist
  • Line 2646: multimaterial_settings_advanced#paint-depth-mode - Fragment does not exist
  • Line 2647: multimaterial_settings_advanced#paint-depth-walls - Fragment does not exist
  • Line 2648: multimaterial_settings_advanced#paint-depth-distance - Fragment does not exist
  • Line 2652: multimaterial_settings_advanced#paint-sparse-infill - Fragment does not exist
  • Line 2656: multimaterial_settings_advanced#paint-depth-solid-interfaces - Fragment does not exist

🖼️ Image Validation Errors

📄 doc/developer-reference\How-to-create-profiles.md:

  • Line 142: [Markdown] Alt text "Help menu" ≠ filename "go-to-configuration-folder"
  • Line 144: [Markdown] Alt text "Delete system folder" ≠ filename "profile-delete-system-folder"

The wiki validator indexes only doc/ and a How-to-build touch reports the pre-existing wiki-link backlog. Keep LFS notes in docs/README. Add `cd … || exit` in spike verify scripts so repo-wide Shellcheck (triggered by build_linux.sh) passes.

Co-authored-by: aceRage <aceRage@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants