← atelier

landing/art/logo.py

Logo mark: a painted planet on an ink tile, silk-warped pigment with a halftone terminator.

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

logo.py
# Logo mark: a painted planet on an ink tile, silk-warped pigment with a halftone terminator.
import numpy as np
from atelier import *
from _common import *

S = 512
c = Canvas(S, S)
tile = rect(0, 0, S, S, r=118)
c.draw(tile, fill=gradient([(0, "#24211b"), (1, "#0e0d0b")]).within(tile))

cx, cy, R = 256, 256, 168
disc = circle(cx, cy, R)
f = domain_warp(fbm(1.4, 4, seed=SEED + 11), 0.4, 1.3, seed=SEED + 12)
pig = c.layer()
pig.fill(shade(f, color=f.ramp([VERMILION, "#f27059", GOLD, "#fde9d0"]), strength=0.5, light=(130, 45), ambient=0.45), mask=disc)

def lambert(x, y):                                    # sphere lit from the upper left (field coords 0..1)
    nx, ny = (x * S - cx) / R, (y * S - cy) / R
    nz = np.sqrt(np.clip(1 - nx * nx - ny * ny, 0, 1))
    return np.clip((-0.6 * nx - 0.5 * ny + 0.62 * nz) * 1.5, 0, 1) ** 1.1
sh = c.layer(blend="multiply")
sh.fill(Field(lambert), mask=disc)
sh.apply(halftone(14, 30, ink="#1b1520", paper="white"))
c.layer()
ring = ellipse(cx, cy, 228, 58).outline(13).rotate(-22, cx, cy)
front = rect(0, cy, S, S).rotate(-22, cx, cy)              # lower half of the ring passes in front
c.draw(ring - disc, fill=PAPER)
c.draw(ring & front, fill=PAPER)
c.erase(1 - tile)
c.apply(grain(0.01, seed=SEED))
c.save(out("logo.png"))
c.save(out("favicon-32.png"), scale=32 / S)
c.save(out("apple-touch-icon.png"), scale=180 / S)