How Our Code Designs Are Made

A peek behind the console: how code becomes wearable art.

Every shirt you see here begins not in a sketchbook, but in a Python script. We take snippets of code, transform them into transparent images, and finally dress them on shirts. Minimalism, syntax, and a hint of existential humor.

Configuration

@dataclass(frozen=True)
class Config:
    """Holds all static configuration for the script."""
    # Files and directories
    ROOT_DIR: Path = Path(__file__).parent
    OUTPUT_DIR: Path = ROOT_DIR / "output" / "shirts"
    SNIPPETS_FILE: Path = ROOT_DIR / "snippets.json"
    FONT_FILE: Path = ROOT_DIR / "IBMPlexMono-Regular.ttf"

    # Image generation parameters
    SCALE: int = 4
    CODE_FONT_SIZE: int = 50 * SCALE
    LINE_PAD: int = 20 * SCALE
    IMAGE_PAD: int = 20 * SCALE

    # Text colors
    TEXT_BLACK: tuple[int,int,int,int] = (0,0,0,255)
    TEXT_WHITE: tuple[int,int,int,int] = (255,255,255,255)

    # Pygments lexer mapping
    LEXER_MAP: dict[str,str] = field(default_factory=lambda: {
        "python": "python",
        "javascript": "javascript",
        "html": "html",
        "css": "css",
        "java": "java",
        "c": "c",
        "regex": "regex",
        "bash": "bash",
        "sql": "sql",
        "git": "text",
        "human-debugging": "text"
    })
  

This is the “manifesto” of our script: fonts, padding, colors, directories. Every detail defines how the machine interprets your code.

Helper Functions

def clean_filename(text: str, max_len: int = 40) -> str:
    """Creates a filesystem-safe filename from a string."""
    text = text.replace('\n', ' ')
    text = re.sub(r"[^\w\s-]", "", text)
    text = re.sub(r"\s+", "_", text)
    return text[:max_len]
  

Even code has a reputation to protect. This function ensures filenames are neat, short, and filesystem-safe — no weird characters, spaces, or emoji.

Rendering Code Images

def render_code_image(code: str, category: str, text_color: tuple[int,int,int,int], cfg: Config) -> Image.Image:
    """Generates a transparent PNG image from a code snippet."""
    lexer = get_lexer_by_name(cfg.LEXER_MAP.get(category, "text"))
    code_font = ImageFont.truetype(str(cfg.FONT_FILE), cfg.CODE_FONT_SIZE)
    lines = code.split("\n")

    max_width = max(int(code_font.getlength(line)) for line in lines)
    image_width = max_width + 2 * cfg.IMAGE_PAD
    image_height = len(lines) * (cfg.CODE_FONT_SIZE + cfg.LINE_PAD) + cfg.IMAGE_PAD

    img = Image.new("RGBA", (image_width, image_height), (0,0,0,0))
    draw = ImageDraw.Draw(img)

    y = cfg.IMAGE_PAD
    for line in lines:
        x = cfg.IMAGE_PAD
        for _, value in lex(line, lexer):
            draw.text((x, y), value, font=code_font, fill=text_color)
            x += code_font.getlength(value)
        y += cfg.CODE_FONT_SIZE + cfg.LINE_PAD

    return img
  

Each snippet is drawn token by token, line by line. Black or white text? Depends on the shirt’s color. We like giving code choices.

Main Execution

def main():
    cfg = Config()
    cfg.OUTPUT_DIR.mkdir(parents=True, exist_ok=True)

    with open(cfg.SNIPPETS_FILE, 'r', encoding='utf-8') as f:
        snippets = json.load(f)

    total_images = 0
    print("Starting image generation...")
    for snippet in snippets:
        category = snippet['category']
        code = snippet['code']
        base_slug = clean_filename(code)

        category_folder = cfg.OUTPUT_DIR / category
        category_folder.mkdir(exist_ok=True)

        img_black = render_code_image(code, category, cfg.TEXT_BLACK, cfg)
        img_black.save(category_folder / f"{base_slug}_black.png", dpi=(150,150))

        img_white = render_code_image(code, category, cfg.TEXT_WHITE, cfg)
        img_white.save(category_folder / f"{base_slug}_white.png", dpi=(150,150))

        total_images += 2
        print(f"  - Generated images for: {base_slug}")

    print(f"Process complete. Generated {total_images} images.")
    print(f"Output directory: {cfg.OUTPUT_DIR}")

if __name__ == "__main__":
    main()
  

And finally, the script runs. The console whispers “Starting image generation…” and “Process complete!” — hundreds of images ready to wear. Each PNG is a frozen moment of code, waiting for its shirt.

TL;DR

Feed code to a patient script, it draws it beautifully, you wear it. Minimal, geeky, and slightly existential. Also: the machine never complains. Unlike humans.