Particle Type

Agentic typeface: the words an agent supplies assemble out of thousands of coloured particles that fly in from random positions and settle into the letterforms; the pointer scatters them and they reform. Text is rasterised on an offscreen canvas and sampled into particle targets, so any string works, at any panel size, in a system font. Honours prefers-reduced-motion (renders the settled word), pauses offscreen, DPR-aware. The words are also emitted as visually-hidden text so they stay readable and selectable. Sibling of light_type (words as flowing light) and living_type (letters that breathe). Every option is an enum or a clamped int; text is JSON-encoded into the script with "<" escaped, so it can never break out.

Surfaces
webgoogle-meet-stagegoogle-apps-script-webmcp-appsandroid
Degraded on
SurfaceNote
pdfRenders as a dark panel; the words remain as visually-hidden text, the canvas is empty without JavaScript
google-chatInline script not supported; renders as a solid panel
Live preview
A2UI
Fields
FieldTypeRequired
textstring (required). The words to set, up to 3 lines separated by "\n", each trimmed to 40 characters. Short and bold reads best. Default "A2UI".required
font"sans" | "serif" | "mono" | "display" (optional, default "sans"). System font stacks; no webfont is loaded.optional
weight"regular" | "bold" | "black" (optional, default "black")optional
colorsarray of 1-4 "#rrggbb" strings. Default ["#38bdf8","#818cf8","#f472b6"], applied left to right across the words. Invalid entries are dropped.optional
background"#rrggbb". Default "#070a12".optional
heightinteger. Panel height in px, clamped 160-900.optional
interactivebool. Pointer affects the letters. Default true.optional
density"low" | "normal" | "high" (optional, default "normal"). Particle count cap 1200 / 2400 / 4200.optional
dot"fine" | "normal" | "bold" (optional, default "normal"). Particle radius.optional
Example payload
{
  "type": "particle_type"
}
ARD catalog entry
{
  "identifier": "urn:air:a2uicatalog.ai:atom:particle_type",
  "displayName": "Particle Type",
  "type": "application/vnd.a2ui.atom+json",
  "url": "https://a2uicatalog.ai/atoms/particle_type",
  "capabilities": [
    "web",
    "google-meet-stage",
    "google-apps-script-web",
    "mcp-apps",
    "android"
  ],
  "description": "Agentic typeface: the words an agent supplies assemble out of thousands of coloured particles that fly in from random positions and settle into the letterforms; the pointer scatters them and they reform. Text is rasterised on an offscreen canvas and sampled into particle targets, so any string works, at any panel size, in a system font. Honours prefers-reduced-motion (renders the settled word), pauses offscreen, DPR-aware. The words are also emitted as visually-hidden text so they stay readable and selectable. Sibling of light_type (words as flowing light) and living_type (letters that breathe). Every option is an enum or a clamped int; text is JSON-encoded into the script with \"<\" escaped, so it can never break out.",
  "representativeQueries": [
    "show a agent-supplied words assemble from particles; pointer scatters them",
    "agentic typeface: the words an agent supplies assemble out of thousands of coloured particles that f",
    "render a particle type"
  ]
}
← Full ARD catalog
Deploy your own Google Apps Script renderer

The renderer is an open-source Google Apps Script web app. Deploy your own instance in 4 commands — you own the URL, no dependency on the demo endpoint.

git clone https://github.com/a2uicatalog/a2ui
cd a2ui/apps-script-surface/gas-wired-renderer
clasp push && clasp deploy
Full deploy guide →