Skip to content

fix(mac): regenerate app icons for consistent sizing across all surfaces - #873

Merged
zhangzhend0ng merged 1 commit into
Snapmaker:mainfrom
zhangzhend0ng:fix/icon-consistency
Sep 17, 2026
Merged

zhangzhend0ng merged 1 commit into
Snapmaker:mainfrom
zhangzhend0ng:fix/icon-consistency

Conversation

@zhangzhend0ng

Copy link
Copy Markdown
Collaborator

Description

Follow-up to the Orca icon update in #858/#867. After auditing every icon surface shipped by those PRs, three assets still carried inconsistent geometry:

1. Icon.icns / resources/images/Snapmaker_Orca.icns (app bundle icon)

The icns regenerated in #858 had three defects, verified by parsing every chunk:

Chunk Size Tile ratio
icp4/icp5 16/32px 1.00 (full-bleed)
icp6 64px 0.91
ic07–ic10 128–1024px 0.89
  • Internal inconsistency: the 16/32px frames were full-bleed while 64px+ carried a 0.89 tile ratio, so the icon visibly changed size between contexts that pick different representations (Dock magnification, Cmd-Tab, Finder list vs icon view).
  • Dropped @2x variants: the previous icns contained ic12/ic13 retina variants; the Feature/update orca icon #858 file dropped all of ic11ic14.
  • Off-center master: the 1024px source frame had asymmetric margins (81px top vs 33px bottom).

Fixed by extracting the 1024px master, normalizing it to the Apple icon grid (824/1024 tile, centered — matching the 0.805 ratio the pre-#858 icns already used), and regenerating via iconutil from a uniformly-composed iconset. All sizes now share the same 0.805 layout and ic11ic14 are restored.

2. Snapmaker_Orca-mac_256px.ico (macOS Dock taskbar icon, MainFrame.cpp)

#858's "regenerate full-bleed to fix smaller taskbar icon" commit only regenerated the Windows Snapmaker_Orca.ico (all 6 sizes full-bleed ✓) — the -mac_256px.ico used by wxTBI_DOCK on macOS was missed and kept its baked-in padding, so the custom Dock icon rendered smaller than the bundle icon. Re-exported from the same normalized 256px frame so both surfaces match.

3. splash_app_icon.svg (splash screen logo, GUI_App.cpp)

The splash still used an early, noticeably thinner version of the new glyph (last touched 2026-06-18, before the icon redesign). No vector source of the final glyph exists in the repo, so the glyph was retraced from the 1024px icon master (directed-edge contour tracing + Ramer–Douglas–Peucker simplification, 1560 → 514 points). Tile structure unchanged (#171717, rx=20, 140 viewBox); only the glyph path was replaced. Pure rect + M/L/Z path, fully compatible with nanosvg.

Screenshots/Recordings/Graphs

Verification of the regenerated icns (every chunk parsed and measured):

new Icon.icns:
  icp4/icp5/ic04/ic05 (16/32px):  ratio 0.805  (was 1.00)
  icp6/ic11/ic12     (64px):      ratio 0.812  (was 0.91)
  ic07/ic08/ic09/ic10/ic13/ic14:  ratio 0.805  (was 0.89)
  ic11–ic14 @2x variants:         restored     (were missing)

iconutil -c iconset round-trip parses cleanly; both icns copies are byte-identical (md5).

Tests

  • ./build_release_macos.sh -sx builds cleanly (arm64, Ninja Multi-Config, exit 0)
  • Verified all three replaced assets land in the built .app bundle with correct md5, and CFBundleIconFileIcon.icns resolves
  • NSImage renders the new icns at 16/32/64/128px pixel-identical to the source iconset (avg diff 0.0) — confirms all chunk types (incl. iconutil's raw-ARGB ic04/ic05) decode correctly
  • Splash glyph fidelity: soft-mask IoU vs the 1024px master glyph = 0.715 (the replaced file scored 0.508 with the same methodology), strong pixel disagreement 1.77%
  • Packaged Snapmaker_Orca_macos_arm64_c76c3d5.dmg (170MB), mounted and verified bundle contents + adhoc signature
  • Document-type icons (CFBundleTypeIconFile = images/Snapmaker_Orca.icns for .3mf) resolve to the clean icon via NSWorkspace.icon(forFile:)

Note for reviewers/testers: if a Mac that had many dev builds or DMG-launched copies of the app shows a noisy .3mf document icon, that is stale/dangling LaunchServices registration on that machine (not this asset) — re-registering the installed app and clearing ~/Library/Caches/com.apple.iconservices* fixes it.

Follow-up to the icon update in Snapmaker#858/Snapmaker#867. Three assets still carried
inconsistent geometry after that change:

- Icon.icns / Snapmaker_Orca.icns: the 16/32px frames were full-bleed
  while 64px+ frames carried a 0.89 tile ratio, and the @2x retina
  variants (ic11-ic14) present in the previous file were dropped, so
  the icon visibly changed size between Dock, Cmd-Tab and Finder
  contexts. The 1024px source frame was also off-center (81px top vs
  33px bottom margin). Regenerated via iconutil from the 1024px master
  normalized to the Apple icon grid (824/1024 tile, centered), giving
  a uniform 0.805 ratio across all sizes with @2x variants restored.
- Snapmaker_Orca-mac_256px.ico (macOS Dock taskbar icon, MainFrame):
  re-exported from the same normalized 256px frame so the custom Dock
  icon matches the bundle icon sizing.
- splash_app_icon.svg: the splash glyph was an early thinner version
  of the new mark; retraced the glyph from the 1024px icon master
  (same black tile, tile color #171717 unchanged).
@zhangzhend0ng
zhangzhend0ng merged commit b1831e5 into Snapmaker:main Sep 17, 2026
1 check passed
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