Alpenpost field manual

How the poster press was made.

This guide documents the concept, visual system, generator, and reproduction recipe for the Alpenpost procedural travel-poster studio.

Layer specimen: sky, ridge, route marks, and type drift before the final proof.

Concept

Alpenpost is a fictional 1958 poster atelier for alpine resorts. The page is not a brochure around one hero image; it is a small print shop where the central product is generated while you watch. The home page opens with a freshly seeded SVG proof, moves into a wall of resort editions, explains the print logic, and ends at a commission desk where visitors choose mountain shape, time of day, activity plate, title, and edition line, then inspect the registration through a printer's loupe. The final comp downloads as a standalone SVG, so the souvenir is the actual artifact the page created.

Visual techniques

The signature system lives in main.js. posterSvg() composes every sheet from seeded parameters. hashString() and mulberry32() make repeatable randomness, while mountainPoints(), pathFromPoints(), and snowCaps() draw the ridge plates. sunRays() and weatherPlate() change the sky, rays, moon, stars, and clouds by time of day. pinePlate(), contourPlate(), routePips(), and printMarks() add the small evidence of a real print shop.

activityPlate() routes to skiPlate(), gondolaPlate(), hikePlate(), or bathPlate(), so leisure details remain separate ink layers. The commission desk uses radio plate controls, updateCommissionStatus(), refreshPlateLoupe(), setLoupePositionFromRatio(), and triggerPressPull(): .plate-loupe duplicates the current SVG under a circular inspection glass, while .commission-stage.is-pulling sweeps wet ink across each redraw. The paper feeling is mostly CSS in styles.css: fixed body overlays create halftone grain and press-screen scuff, while .poster-frame, .press-bed, and .plate-exploder add dot screens, clamps, rulers, and shifted sheets. initReveal() provides the load moment.

Palette and type

The core tokens are glacier blue #7fb4d9, sunshine yellow #f2c545, alpine red #d63c30, cream paper #f4ead2, warm poster stock #fbf1d8, pine #1f4f47, and near-black ink #182326. Bebas Neue handles the station-poster voice: huge, condensed, blunt, and unsentimental. Jost carries body copy, controls, captions, route ledgers, and quieter production notes. The layout avoids soft gradients and generic cards; it uses hard color fields, black rules, offset shadows, and asymmetry like a wall of printed sheets.

Reproduce this

Prompt an AI agent to build a no-build static site for a fictional mid-century poster studio. Require self-hosted Bebas Neue and Jost, a dominant cream/glacier/red/yellow palette, code-only visuals, halftone overlays, and a procedural SVG generator. Ask for a gallery where every poster reseeds uniquely, plus a commission desk whose plate controls redraw the SVG live and export the result. Insist on phone, tablet, and desktop screenshots, then demand a critique pass that fixes timid spacing, weak type hierarchy, generic form controls, guide-page flatness, and missed chances to make the generated artifact unforgettable.