Signage
Every event signage format: roller up, totem, backing, stage backdrop, entrance arch, hanging banner, feather flag, podium front, registration counter, table throw, popup wall, wayfinding, venue map, room sign, floor vinyl and table tent. One guide for all of them; what differs per format comes from makeables new <format>.
Start from the brief
makeables new <format> --name "<title>" --out kit/<key>.json prints the format's brief: its real size, the canvas in px (1 px per mm), and whatever constrains it, such as bands the stand hides, faces separated by seams, a cut outline with its printable zones, or a tile grid. Read it once and design against it. It is the only per-format reference you need. When you edit an existing piece, makeables layer list --file kit/<key>.json --compact prints the same brief with the layers: never run new again just to read it.
Read from a distance
A sign is read from metres away, often while walking. One message per sign: the event name, a destination, a direction. Large type for the main line (on an arch header, cap height 150 px or more to read from 10 m), everything else clearly smaller. No paragraphs.
Shapes, zones, faces and hidden bands
- Shaped prints (entrance arch, feather flag, hanging banner, wayfinding arrows, circular signs) are cut to an outline; what lies outside is trimmed. Text, logos and focal art go only inside the zones the brief lists. Place them with
--zone <name>onlayer add,layer setor a batch op instead of computing coordinates.makeables validatewarns when a layer leaves its zone, and the render dims what the cut removes. - Multi-face prints (totem, counter, popup wall) are several faces side by side on one canvas. Design each face as its own poster; nothing but a full-width background may cross a seam.
- Stands hide bands (a roller up's rail and cassette): keep everything but the background out of them.
Art direction
Aim for the specificity of the best event pieces in the catalog, such as Vibecode Fest, She Ships, IA Hackathon and Hack the Andes: one visual idea that changes composition, type, image and color together. A sign is a big canvas seen for two seconds from far away, so it needs one bold idea, not many small ones.
Choose one direction from the brand and the event before any command, say it in one sentence, and commit to it. Some directions, as prompts for invention rather than recipes:
- A single huge glyph or number cropped by the edges (the "26" of 2026, a letter of the wordmark) in the accent color, with the event name small and exact beside it.
- A woven band: one strip of the brand's textile pattern along one edge or the curve, a plain field of brand color for the type, and nothing else.
- A landscape cut into flat planes (mountains, a coastline, a skyline) in two or three brand inks, with the type set into the sky.
- A poster grid: a bold rule system, the name set very large and tight, the date as a separate block, lots of plain color.
- One illustrated object that carries the event's idea (a chakana, a cup, a circuit made of textile lines), large and off centre, with quiet type.
Never: a full-bleed busy pattern under the type, every element centred and stacked, decorative lines nobody asked for, or generic gradients and glow.
Making the art
Pick the technique for what the art is:
- A pattern or texture (a textile, a weave, a grid of motifs):
node make-image.mjs --prompt "<motif, flat crisp shapes, two or three brand colors>" --out kit/<key>-pattern.png --opaque --fit kit/<key>.json --tile <px>. It generates one square tile and repeats it mirrored, so the pattern is sharp and symmetric at any size.<px>is the width of one mirrored block on the canvas: larger means bigger motifs. Describe a single motif per tile (one diamond, one chakana), and for a band use a block as wide as the band, so the motifs read from far away instead of as static. Use the op it prints, then confine the pattern to its band by placing type on a plain shape of a brand color over the rest, or by using a zone. - A scene or background that is one picture (a landscape, a sky, a gradient of shapes):
--fit kit/<key>.jsonwithout--tileand without--zone, so it is composed into the print's shape up to the cut. Keep scenes simple and flat: a narrow print stretches the generated image, so fine detail blurs. - One object or illustration: generate it transparent (
node make-image.mjs --prompt "<subject>, flat illustration, bold simple shapes, no text, no background" --out kit/<key>-art.png) and place it in a zone. - Vector (Arrow by QuiverAI, so a request for "Quiver" means this):
node make-vector.mjs --from kit/<key>-art.png --out kit/<key>-art.svg --prompt "<what it shows>"when a flat illustration with few shapes must stay sharp at print size, or when the user asks for it. Do not vectorize patterns, textures, scenes or photographic art: it takes minutes and loses the image. - Zones are the safe boxes for type and logos.
--zonewith--fitfills only that rectangle, which suits art meant for one area (an arch pillar), never a background.
Taste
A good sign looks decided. Make these choices before any command:
- Pick one hero: the pattern or the type, never both at full strength. When the type is the hero, the pattern stays in one band (the curve of a flag, the foot of a roller up, the edge of a backdrop) and the type sits on a plain field of a brand color. When the pattern is the hero, the type shrinks to a signature.
- Never fix a loud background with a translucent box behind the text. That box means the background is wrong: regenerate the art calmer, or confine it to its band.
- Set type along the format. On a feather flag or hanging banner, set the main line vertically along the height, one line, as large as the zone allows, reading bottom to top:
{"add":"text","zone":"sail","params":{"text":"PERU TECH WEEK","rotation":-90,"size":400}}. Withzonethe CLI sizes the box for you. Without it, remember that at ±90° the box is the text's footprint on the canvas:wis the line's height andhits length, so the box is narrow and tall. Stacking short words horizontally on a narrow flag reads as a list. - Use one family and two weights at most. Give the main line weight, keep the secondary line regular and clearly smaller, and use loose tracking only on short labels.
- Use two brand colors plus the paper or ink. Spend the accent once, on the thing people should see first.
- Draw lines, rules and frames only when design.md names them as a brand motif.
- Check the render at thumbnail size, as from across a hall: one thing should read first, and nothing should fight it.
Backing (step and repeat)
Never place its logos one by one. makeables tiles set --file kit/<key>.json --columns N --rows M, then makeables tiles fill --file kit/<key>.json --logo brand/refs/<logo> --logo <second logo> --relative-to cwd. Fill clears every layer but full-width backgrounds and lays one centred logo per tile, alternating so no logo repeats next to itself. Rerun it to change logos or scale.
Check
Render, look at <name>.view.jpg once, and run makeables validate: no zone, seam or hidden-band warnings. Fix what fails in one more batch.