Skip to content

[discussion] Splash design demo (refs #18)#52

Open
dbqpdb wants to merge 3 commits into
masterfrom
splash/design-demo
Open

[discussion] Splash design demo (refs #18)#52
dbqpdb wants to merge 3 commits into
masterfrom
splash/design-demo

Conversation

@dbqpdb

@dbqpdb dbqpdb commented May 14, 2026

Copy link
Copy Markdown
Owner

Summary

Adds demo_splash.py, a standalone script that prints one example of each candidate stochastic splash option, plus a layered combination at three tunings. Companion to the splash-design discussion in the sibling issue.

This PR is meant to support the design discussion, not necessarily to merge as-is. Whether it merges depends on whether we want to keep the demo script as a long-lived comparison tool or remove it once the design choice is made.

How to view

python demo_splash.py             # one example of every option + layered tunings
python demo_splash.py --seed 42   # reproducible run
python demo_splash.py --layered   # only the layered tunings

Option 4 (pyfiglet) needs pip install pyfiglet — otherwise its section prints a note and the others still run.

Notes

  • Letter mask is hand-laid in RLM_MASK. Easy to tweak — kerning, weight, etc.
  • Option 3's banner pool only has 4 entries right now; trivially extendable.
  • Output uses unicode block-drawing chars and chess glyphs. The existing board renderer already requires a unicode-capable terminal, so this should be safe.

🤖 Generated with Claude Code

Standalone script that prints one example of each candidate option
for the splash design discussion, followed by a layered combination
shown at three tunings (subtle / medium / heavy).

Options demonstrated:
  1. mask + random fill character
  2. per-cell jitter
  3. pre-designed font pool
  4. pyfiglet random font (optional dependency)
  5. glitch overlay

Supports --seed for reproducible output and --layered to skip the per-
option section and only show the three tunings.

This is companion material for a design-discussion issue. The script
itself isn't intended to ship as part of the actual splash.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
dbqpdb and others added 2 commits May 14, 2026 18:49
Per discussion on #53:
- layered() now picks a random pre-designed banner (Option 3) as its
  base and perturbs cells while preserving the original glyph for the
  majority of unjittered cells. Each call produces both a different
  silhouette AND different texture.
- Bumped the three tunings roughly 2x:
    subtle:  0.05/0.00/0.01 -> 0.10/0.00/0.02
    medium:  0.15/0.03/0.03 -> 0.30/0.06/0.06
    heavy:   0.30/0.10/0.08 -> 0.60/0.20/0.16
- "heavy" at 0.60/0.20 is intentionally loud; letters may fragment on
  some banner styles. Open to dialing back per discussion.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
)

Two changes bundled because they support the same review goal:
- Each option and each layered tuning now prints 5 randomized samples
  so reviewers can see the full range of variation, not just one
  arbitrary instance. N_SAMPLES is a single constant if we want to
  tune that.
- Heavy tuning dialed from 0.60/0.20/0.16 to 0.40/0.10/0.10. The
  prior values were destroying letter silhouette on the larger
  banners; this keeps the silhouette legible while still feeling
  loud. drop_density is the lever that hurts legibility most, so it
  drops more than jitter.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.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.

1 participant