Invisible voices. You asked Claude. Glyph drew it — from a compose spec. A lattice tower with a glowing antenna tip and seven concentric pulsing wave-rings.
"Draw me radio waves emanating from a broadcast tower. Lattice steel structure, a thin antenna at the top with a bright tip, concentric oval waves expanding outward. Night sky with stars."
— what to say to your AI agent. Claude writes the Glyph compose spec; the compose compiler emits one byte-locked SVG.
RFC #9's defs (gradients + patterns), shapes (silhouette-path, polygon, polyline, ellipse), and accents (glow, starfield, icon) compose the whole picture.
Seven ellipses at the antenna tip, increasing radius from 60 to 420, decreasing opacity from 0.6 to 0.14. Each one carries a pulse loop animation at slightly different periods (3.0 – 4.4 s) so the waves breathe at different tempos.
16 X-pattern cross-braces — each X is two polylines. The polylines connect the left and right sides of the tower at sequential heights, producing the classic triangulated steel lattice of broadcast towers.
100 stars seeded at 31. The antenna tip carries a glow (radius 50, gradient g-tip) — that's the visible signature of the oscillator driving the broadcast. Stars and waves coexist because the whole point is signal-through-noise.
Claude writes the compose JSON; Glyph's compose compiler turns it into byte-identical SVG.
{
"compose": {
"viewBox": { "width": 800, "height": 800 },
"theme": { "background": "#020617" },
"defs": {
"gradients": [
{ "id": "g-tip", "kind": "radial",
"cx": "50%", "cy": "50%", "r": "50%",
"stops": [
{ "offset": "0%", "color": "#fde68a", "opacity": 1 },
{ "offset": "100%","color": "#fde68a", "opacity": 0 }
]
}
// ... g-bg
]
},
"children": [
// 1. background radial gradient
// 2. starfield · 100 stars · seed 31
// 3. ground horizon rect
// 4. 7 wave ellipses w/ pulse animation
// 5. glow halo at antenna tip (radius 50)
// 6. tower silhouette outline
// 7. 32 lattice cross-brace polylines
// 8. antenna mast silhouette + tip bulb
// 9. broadcast label + caption text
]
}
}
Generator script: scripts/gen-showcase-extensions.mjs · fixture: packages/core/__fixtures__/compose/eng-radio.json. View on GitHub.
Byte-stable across Ubuntu / macOS / Windows × Node 20 / 22. The compose compiler resolves the gradient + pattern defs first, then walks children in z-order.