Skip to content

feat(logo): improve printing-mallet.svg β€” depth, materials, illumination#96

Merged
TortoiseWolfe merged 1 commit into
mainfrom
feat/logo-improvements
May 15, 2026
Merged

feat(logo): improve printing-mallet.svg β€” depth, materials, illumination#96
TortoiseWolfe merged 1 commit into
mainfrom
feat/logo-improvements

Conversation

@TortoiseWolfe
Copy link
Copy Markdown
Owner

Summary

Refines public/printing-mallet.svg β€” the standalone printing-mallet asset used by the brand identity, blog illustrations, and (forthcoming) the #48 Three.js game wireframes.

Eight specific improvements:

  1. Ground shadow beneath the composition (the mallet now has weight, doesn't float).
  2. Handle taper direction corrected β€” wider at the head, narrower at the grip (proper mallet anatomy; previous taper was 1px backwards).
  3. Flared mortise joint with a small iron strap + 2 rivets and a wedge driven from above, so the handle reads as embedded.
  4. Iron-band rivets and rust patina β€” 4 forged-look studs per band + warm rust tint overlay.
  5. Naturalistic wood grain β€” curvature variation, slightly irregular spacing, plus a small oak knot.
  6. Directional sheen with a bright specular core β€” replaces the prior flat-overlay sheen that read as a slight darkening.
  7. Thinner stroke on the far cylinder edge for depth.
  8. Hammer marks redistributed along the actual striking face (bottom edge of the head), 6 varied dings instead of 4 clustered.

Plus leather wrap rings at the grip and relocated surface scratches.

Why

The previous version was generated by an older Claude Code session. Rendered side-by-side, the old asset had several "AI-drew-this" tells: backwards handle taper, flat sheen overlay reading as smudge, hammer marks placed where strikes wouldn't land, no rivets despite explicit ironwork, no shadow. This PR fixes those specifically.

This PR also enables a downstream improvement: the #48 Three.js game wireframes (PR #95, currently in draft) embed the canonical mallet asset. Once this merges, those wireframes can <image href=\"/printing-mallet.svg\"> the improved version instead of using my hand-drawn approximation.

What is NOT changed (deliberate, for scope)

  • public/scripthammer-logo.svg β€” silver cog ring; doesn't contain a mallet (just the engraved "ScriptHammer.com" wordmark).
  • public/favicon.svg and public/apple-touch-icon.svg β€” they embed their own miniaturized copy of the mallet geometry inline. At their render sizes (favicon ≀32px effective; apple-touch 180–512px with mallet ~150px of that), the rivet/knot/leather details are sub-pixel anyway. Separate follow-up if we want them updated.
  • 400Γ—400 viewBox is preserved so any consumer expecting that canvas size keeps working.

Visual diff

Before vs after screenshots captured locally via headless chromium. Not committed to the repo (per .gitignore on .screenshots/) β€” see the commit message for the specific item-by-item improvements.

Test plan

  • Pre-push hooks pass (lint, type-check, unit tests, production build) β€” done as part of git push.
  • CI passes on this commit.
  • Visual smoke at /ScriptHammer/printing-mallet.svg once dev server is up.
  • (After merge) [Feature] 047 Three.js GameΒ #48 wireframes regenerated to reference <image href=\"/printing-mallet.svg\">.

πŸ€– Generated with Claude Code

The prior asset rendered as a coopered keg-on-a-stick with iron bands β€”
the silhouette of a Thor-style sledge, not a printer's tool. Historical
references (per A. A. Stewart's "Typesetting" and Letterpress Commons)
describe a compositor's mallet as:

  - Roughly *square* head (5 in top Γ— 4 in bottom Γ— 3 in thick),
    NOT a cylinder. No iron bands. No brass ferrules.
  - Thin handle of beech or ash (~1 in diameter, 7-8 in long), entering
    the head through a beveled hole locked with a wedge.
  - Used in conjunction with a wooden planer block to tap movable type
    flat on the imposing stone ("type-high"), or to drive quoins.

This redraw replaces the entire geometry from scratch.

WHAT YOU SEE NOW
  - Squat boxy head in 3/4 perspective: top face (end-grain rings),
    front face (vertical side-grain streaks, slight bottom taper per
    the 5-top-to-4-bottom anatomy), right-side face (foreshortened,
    in shadow).
  - Locking wedge visible on the top face (light beech, contrasts
    against the darker head).
  - Wear band + chipped corners along the bottom-front edge β€” where
    repeated strikes against the planer block leave their mark.
  - One small knot on the front face; subtle surface dents from use.
  - Thin tapered handle with palm-swell at the grip; round-shaft
    shading (left highlight, center specular, right shadow); subtle
    grip darkening from hand oils.
  - Ground shadow beneath the (un-rotated) composition; soft 2-stop
    elliptical drop.

ANATOMY THIS REJECTS (versus prior asset and prior v1 attempt)
  - No cylindrical head with rounded top/bottom ellipses.
  - No iron reinforcement bands. No rivets. No rust patina.
  - No 4-strap mortise. No leather wrap rings on the grip.
  - Handle is thin, not stubby. Grip is at the bottom, not the middle.

UNCHANGED
  - 400x400 viewBox preserved for existing consumers (favicons,
    blog illustrations, etc.).
  - 42Β° rotation pose preserved for continuity with the prior asset.
  - public/scripthammer-logo.svg, public/favicon.svg,
    public/apple-touch-icon.svg unchanged (their embedded mallets
    are sub-pixel-detail at favicon render sizes; separate follow-up
    if desired).

REFERENCES
  - Stewart, A. A. β€” "Typesetting" (Project Gutenberg #46113)
  - Stewart, A. A. β€” "Type Cases And Composing-Room Furniture" (PG #31704)
  - https://letterpresscommons.com/compositors-tools/
  - https://www.c82.net/typography/term/mallet

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@TortoiseWolfe TortoiseWolfe force-pushed the feat/logo-improvements branch from 3ce5a24 to c95faee Compare May 15, 2026 18:44
@TortoiseWolfe TortoiseWolfe merged commit 36cf2a6 into main May 15, 2026
2 checks passed
@TortoiseWolfe TortoiseWolfe deleted the feat/logo-improvements branch May 15, 2026 19:23
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