← atelier

landing/art/strokes.py

Hand-painted underlines and swashes for headings (transparent PNG strips).

Render it yourself: atelier render strokes.py --preview (it imports _common.py for the palette and output folder).

strokes.py
# Hand-painted underlines and swashes for headings (transparent PNG strips).
import numpy as np
from atelier import *
from _common import *

W, H = 1200, 200
c = Canvas(W, H * 4)
specs = [("ink", VERMILION, 26, dict(speed=0.6)),
         ("watercolor", GOLD, 70, dict()),
         ("chalk", TEAL, 34, dict()),
         ("oil", PAPER, 40, dict(impasto=0.9))]
for i, (brush, col, size, kw) in enumerate(specs):
    y = i * H + H / 2
    pts = [(60, y + 30), (330, y - 4), (640, y + 8), (900, y - 14), (1140, y - 30)]
    L = c.layer()
    L.stroke(spline(pts), brush, size=size, color=col, taper=(0.15, 0.7), seed=SEED + i,
             pressure=lambda t: 0.6 + 0.4 * np.sin(t * np.pi), **kw)
    if brush == "oil":
        L.relief = 0.8
save_cells_rows = [f"stroke-{b}.png" for b, *_ in specs]
if not CONFIG.get("nosave"):
    from atelier.core import write
    img = c.flatten()
    k = c.s
    for i, name in enumerate(save_cells_rows):
        write(img[round(i * H * k):round((i + 1) * H * k)], out(name))