Add existing to tracked

This commit is contained in:
Jay
2026-08-11 09:53:42 -04:00
parent afe07f3055
commit ffd6e3d73c
8531 changed files with 4396230 additions and 0 deletions
+121
View File
@@ -0,0 +1,121 @@
# Side Cards — art direction
The approved visual reference is the J/Q/K of Hearts family in `concepts/`.
Court figures are final raster illustrations generated locally with Draw Things;
they are not hand-traced. `tools/build_deck.py` embeds each illustration inside
a standalone SVG and adds dependable card geometry.
## Look
- Original Anglo-American court-card illustration
- Crisp flat fills with strong black keylines
- Traditional two-way composition
- Ornate garments without photorealistic lighting or 3D rendering
- Restrained red, black, gold, muted-blue and warm-skin palette
- No generated rank letters, typography, logos or watermarks
Approximate palette sampled from the approved family:
| Role | Colour |
|---|---|
| Stock | `#fcfcfa` |
| Keyline | `#0e0d0d` |
| Red | `#a21b1e` |
| Gold | `#b99a34` |
| Muted blue | `#354c58` |
| Skin | `#f0d2b6` |
These values guide generation; the raster art is not mechanically recoloured.
## Court family
| Rank | Figure | Prop |
|---|---|---|
| Jack | young knave, shoulder-length hair | upright halberd |
| Queen | crowned queen | stylized flower |
| King | mature bearded king, crowned | upright sword |
Diamonds emphasize angular red-and-gold ornament. Clubs and Spades emphasize
black and muted blue with red-and-gold accents. All twelve should feel related,
but they do not need identical faces or frames.
## Deterministic card elements
`tools/build_deck.py`, not the image model, owns:
- corner rank indices
- suit marks and number-card pip layouts
- one continuous inner court frame
- final 5:7 card geometry
- the outer card edge
The outer card and artwork clip use a 24-unit circular radius on the 500 x 700
viewBox, equivalent to approximately 3.05 mm on a 63.5 x 88.9 mm poker card.
The two-unit inset outline uses radius 22 so its curve remains concentric. The
gallery expresses the same circular curve as `4.8% / 3.4286%`; a single CSS
percentage would create an elliptical radius on a 5:7 element.
Rank indices use Roboto Slab SemiBold, converted to SVG outlines during the
build without synthetic horizontal distortion. This provides large, clear slab
forms without depending on an installed font. Roboto Slab is distributed under
Apache License 2.0; the local license copy is
`assets/fonts/RobotoSlab-Apache-2.0.txt`.
Rank outlines share a font baseline at y=85 and are sized from cap height,
rather than top-aligned or fitted around descenders. This lets Q retain its
natural tail and weight without a synthetic outline. Single ranks have a
63-unit width allowance so the naturally wide A/K reach full cap height; the
two-character `10` has 76 units so it also remains comparable.
Mini suits remain centred at y=127 and are optically scaled by silhouette
(S 0.78, H 0.71, D 0.92, C 0.78), rather than being forced to one geometric
scale. Their rendered footprints—not equal ink density—are checked as a group
during the deck audit so dense marks are not made visually undersized.
The Heart is a purpose-drawn, classic silhouette with a pronounced cleft,
distinct lobes, a near-square proportion, and a long sharp point. Number-card
field pips are likewise optically balanced by suit (S 1.50, H 1.28, D 1.75,
C 1.43).
Ace and court marks have their own role-specific optical scales so each Ace
carries comparable ink and the fuller Heart does not crowd a court figure.
The Club follows the familiar traditional card form rather than an equilateral
trefoil: equal lower lobes sit wider and lower than the top lobe, a smaller
central boss joins the three, and a short flared stem finishes the mark. Its
required symmetry is bilateral, not three-fold rotational symmetry.
Generated suit pips are replaced with the correct SVG suit mark. Generated
frame segments are locally inpainted out while the figure is extracted, then
one continuous SVG frame is drawn behind the figure. The approved upper figure
is rotated exactly 180 degrees for the lower end, with a symmetric blended join
through the centre.
The assembly step also normalizes the generated figure envelope around the
card centre using uniform scaling only: K♣/K♦ use 0.95 and K♥/K♠ use 0.97.
Jacks and Queens remain at native scale. The resulting painted areas stay
within roughly five percent without distorting faces or garments. Club and
Spade field emblems receive a five-pixel optical shift away from the figure;
their mirrored lower marks are derived from the same coordinates.
## Generation settings
- Model: `qwen_image_2512_bf16_i8x.ckpt`
- Working size: 640×896
- Sampler: DPMPP2MTrailing
- Steps: 30
- Guidance: 4.0
- img2img strength: 0.68
The corresponding Heart card is the composition/style reference for every
non-Heart court. Run `tools/render_court.py --remaining` to create missing
renders without overwriting existing ones.
## Output sizes
No smallest production size has been chosen. The SVG cards scale freely; court
illustrations remain 640×896 raster artwork inside them. If a future use needs
large-format print, upscale or regenerate the courts for that real requirement.
Do not build alternate thumbnail art until the game actually needs it.
`masters/queen-hearts.svg` is an archived hand-vector experiment and is not
part of the current deck pipeline.