branding: four skeuomorphic wallpapers; the old art goes

tools/wallpapers.py writes them from the Shift geometry, so they follow
the mark: Graphite (the default), Strata, Porcelain (light) and Dial.
Each is a 3840x2160 SVG with a JPEG render beside it. JPEG is the right
format for gradients under grain, and the branding README now says why
this is the one exception to its no-JPEG rule.

Removed: wallpaper1 (drawn flat, and built on the retired Guru mark),
the site's unused copy of it, and the two superseded wordmark PNGs. The
root README showed one of those, and now shows Graphite.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01S1giNvrHTrPMPw7V6x1kQ4
This commit is contained in:
Nexoniarz 2026-10-23 15:51:29 +02:00
commit 1fd73740f8
16 changed files with 680 additions and 5452 deletions

View file

@ -99,6 +99,12 @@ No JPEG anywhere — a mark is flat colour with hard edges, which is the exact
case JPEG is worst at, and the ringing it leaves around an edge is permanent.
No screenshots of marks. No re-exports of re-exports: go back to the SVG.
**Wallpapers are the one exception**, and the reason is the same rule read the
other way round. They are soft gradients under a film of grain: no hard edge
for JPEG to ring around, and nothing a PNG can compress -- the grain made each
one nine megabytes as PNG and about a hundred kilobytes as JPEG, with no
difference anyone can see. The SVG is still the source; the JPEG is a render.
**SVG is the source of truth for every mark.** A raster is something generated
from it, never edited.
@ -128,9 +134,33 @@ shift.svg the logo, in colour
shift-mask.svg the same geometry in greys -- see below
shift-mask.png rasterised from it, committed on purpose
uberblock.svg SchFS
superseded-*.png the old wordmark, kept for reference only
wallpapers/ 3840x2160, SVG and a JPEG render of each
```
### Wallpapers
Generated by `tools/wallpapers.py` from the Shift geometry in `shift.svg`, so a
change to the mark is one command away from every wallpaper rather than four
hand edits. Rendered to JPEG with a browser, because a browser is the renderer
that gets the SVG lighting filters right:
```sh
python3 tools/wallpapers.py
chromium --headless=new --window-size=3840,2160 --screenshot=graphite.jpg page.html
```
where `page.html` is an `<img>` of the SVG at 3840x2160.
| | |
|---|---|
| `graphite` | Shift on warm graphite, throwing a violet pool of light on the surface. The default. |
| `strata` | The slabs repeated into a cascade receding into indigo, near ones sharp, far ones soft. |
| `porcelain` | The light one: Shift as glazed porcelain on paper, the top slab in the accent. |
| `dial` | The uberblock ring as hardware -- a turned metal face, slots as keys, the newest one and the root lit. |
The wallpaper they replace used Guru, which is retired (see the top of this
file), and was drawn flat.
The pipeline is three stages:
```