Skip to content

feat(logo): add square Android app icon from the shard-J - #22

Merged
bernardladenthin merged 1 commit into
mainfrom
claude/20260717_02
Jul 17, 2026
Merged

feat(logo): add square Android app icon from the shard-J#22
bernardladenthin merged 1 commit into
mainfrom
claude/20260717_02

Conversation

@bernardladenthin

Copy link
Copy Markdown
Owner

Summary

  • Add generate_app_icon.py — a square Android app icon generator built from the java-llama.cpp shard-J. It reuses the icon geometry (icon_shards / _rounded_path / _icon_local_bbox) from generate_java_llama_logo.py, drops the wordmark, and centres the J on a square canvas. No font embedded — pure <path>. Orange #F65E00 on #111111.
  • --android-set DIR writes a complete, drop-in res/ tree: masters (ic_launcher.svg / _foreground.svg / _background.svg), Play-Store 512 PNG, legacy mipmap PNGs (48–192), adaptive foreground PNGs (108–432), the mipmap-anydpi-v26/ic_launcher.xml adaptive descriptor, and the values/ic_launcher_background.xml colour resource.
  • The adaptive foreground is scaled so the J's farthest ink stays inside the 66dp-of-108dp safe-zone circle (verified 129px ≤ 132px @xxxhdpi), so nothing is clipped by circular / squircle / rounded-square launcher masks.
  • Extend REUSE.toml to cover the nested app-icon/ SVG/PNG/XML tree and .gitignore; add .gitignore for Python bytecode caches; document the set in app-icon/README.md and link it from the logo README.

Why

The owner needs a square J icon usable as an Android launcher icon. Generating it from the existing logo geometry keeps the icon in sync with the mark and avoids hand-editing SVGs.

Test plan

  • --android-set produces the full tree; all PNGs are square RGBA at the expected densities (48–192 legacy, 108–432 foreground, 512 store)
  • Adaptive foreground stays inside the strict safe zone under circle + squircle masks (visual preview + radius check)
  • reuse lint passes (53/53, MIT OR Apache-2.0)
  • Reviewer drops res/ into an Android module and checks the launcher render

🤖 Generated with Claude Code

https://claude.ai/code/session_01PevG84XGs6qyD1U35LUmpg

Add generate_app_icon.py, which reuses the shard-J geometry from
generate_java_llama_logo.py (icon_shards / _rounded_path / _icon_local_bbox),
drops the wordmark, and centres the J on a square canvas. No font is
embedded; output is pure <path>. The J is orange (#F65E00) on #111111.

--android-set writes a complete drop-in res/ tree:
  - ic_launcher.svg / _foreground.svg / _background.svg masters
  - ic_launcher-512.png (Play Store)
  - res/mipmap-*/ic_launcher.png            legacy 48..192
  - res/mipmap-*/ic_launcher_foreground.png adaptive 108..432
  - res/mipmap-anydpi-v26/ic_launcher.xml   adaptive descriptor
  - res/values/ic_launcher_background.xml   background colour #111111

The adaptive foreground is scaled so the J's farthest ink stays inside the
66dp-of-108dp safe-zone circle (verified 129px <= 132px at xxxhdpi), so it
is never clipped by circular / squircle / rounded-square launcher masks.

Also: extend REUSE.toml to cover the nested app-icon/ SVG/PNG/XML tree and
.gitignore; add a .gitignore for Python bytecode caches; document the set in
app-icon/README.md and link it from the logo README. reuse lint passes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PevG84XGs6qyD1U35LUmpg
@bernardladenthin
bernardladenthin merged commit 301dfd9 into main Jul 17, 2026
2 checks passed
@bernardladenthin
bernardladenthin deleted the claude/20260717_02 branch July 17, 2026 18:31
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.

1 participant