The Figments glyph set is small on purpose. One canvas (14×14), two families
(brand marks and UI icons), plus seven kind marks
— that's the whole vocabulary. Every glyph draws on the same grid, uses
currentColor, and either fills or strokes — never both. Sharp corners,
square line-caps, no hand-crafted curves that fight the geometry.
ProposalCandidates — the chat corner mark
idletyping01 · I-beam cursorDirectly says “type here.” Active: classic blink at 1.1s.Could be read as a typography glyph if seen alone.idletyping02 · EllipsisUniversal chat/typing signal. Active: staggered bounce, 1.2s loop.Very common in other AI products — less distinctive.idlespeaking03 · Speech brackets“Conversation container.” Active: a word dot pulses between them.Reads as play/rewind controls to some eyes.idlelistening04 · Wordmark (VU meter)Brand tie to Figments. Active: bars shift heights like a sound meter.Still brand-forward; doesn't say “chat” to a first-time user.idlealive05 · Single dotMaximum restraint. Active: square breathes 2→4px, 2.8s loop.May read as too quiet or disabled in idle.idletyping06 · Speech rect (sharp)Direct chat affordance. Active: three dots type inside the bubble.Classic speech-bubble baggage — helpdesk adjacent.idlealive07 · Heartbeat dot
The italic red dot from Figments. — direct lift of Animation 02.
Idle dims to half; active runs the two-beat rhythm.
One color only — no way to signal different kinds of activity.idleflowing08 · Signal flow
Direct verbatim lift of Animation 39 — three
signal-colored particles riding an S-curve via offset-path. Idle shows the ghost
track; active fades particles in/out at endpoints.
Active state is wider than tall — needs a wider corner in real use, not a 32×32 square.idleworking09 · Frozen → working
Two distinct states. Mono dot at rest; three signal-colored dots bob in sequence when thinking —
miniature Drift constellation.
Color only when it means something.
Mark visually changes — motion has to feel precisely right.idleunread10 · Mono + status dot
Monochrome 99% of the time; a gold dot pops in when there's a waiting reply (red for error).
Inbox-badge logic, done quietly.
Doesn't signal “thinking” — only “something happened since you left.”idlemaking11 · Kind cycle
Lift of Animation 03 — the mark becomes a figment,
then a workflow, board, integration, back again. Says “I make any of these” on sight.
Shape morph is busier than any other candidate — can't be running constantly.idleorbiting12 · Orbit train
Lift of Animation 33 — two signal-colored dots orbit
the core at different radii and speeds. Three-body motion, unmistakably thinking.
Needs room; circular motion inside a 32×32 square feels tight.idlethinking13 · Constellation settle
Lift of Animation 21 — nodes appear, edges draw,
triangle holds, dissolves. Feels like the assistant forming an answer.
Mid-complexity geometry — risks looking like a diagram loader.idlethinking14 · Breathing quad
The seed-of-all motif: Animation 01. Four cells in
signal colors pulse 3.2s apart. Reads as system alive without literal chat.
Not chat-specific — could be any status indicator.idlestreaming15 · Beat + echo
Heartbeat with a memory — the pulse travels and leaves a trail of fading echoes.
Rhythm is visible across time, not just one moment. Unique motion vocabulary;
not a typing-dots animation.
Wants horizontal space — trails compress badly at <20px width.idlestreaming16 · Dot + anchor
Two dots: static period (the Figments. quote) on the left, live heartbeat
on the right. Brand tie is literal; presence is doubled without adding chrome.
Two dots risk reading as typo if they're not clearly intentional pair.idlestreaming17 · Italic period
The glyph is the italic period from the Figments. wordmark — a
slanted comma-shape, not a geometric circle. Typographic character baked in; asymmetric,
distinctive even when static.
At tiny sizes the slant compresses to a pixel smudge; harder to render crisply than a circle.idlestreaming18 · Thread weave
Two sine waves intersecting — the assistant's voice and yours, woven. Rich conceptual fit.
At 16px wide the two waves merge into a blur — texture before shape.idlestreaming19 · Taut thread
A line between two endpoints. Idle: gentle sag. Streaming: snaps taut and vibrates.
Physical metaphor — you read the state the way you read a clothesline.
Idle sag must be subtle or it reads as "disabled."idlestreaming20 · Endless loop
A figure-eight traced by a dashed stroke — continuous processing, looped thinking.
Figure-eight reads "recursion / loading spinner" more than "conversation."idlestreaming21 · Thought stitch
A dashed line sews itself left-to-right, unspools, repeats. Writing visualized.
Perfect for the streaming state but static (idle) is a partial stitch — ambiguous.idlestreaming22 · Tangled node
A line enters, winds into a knot, exits cleanly. Making sense of a messy problem —
the assistant's actual job.
Organic/cursive geometry fights the sharp 0px language. Ceremonial, not chrome.idlestreaming23 · Data trace
An orthogonal thread routes along invisible grid lines. Logic finding structured solution —
matches Figments' sharp 0px geometry perfectly.
Less "conversation" and more "circuit" — cold/technical read.idlestreaming24 · Zigzag pulse
A packet (bright segment) travels along a triangular wave. Digital heartbeat — EKG-like.
EKG association is strong — medical / dashboard territory.idlestreaming25 · Cubic wrap ★
Thread chases itself around the perimeter of an isometric cube. The cube is the
context the assistant is wrapping (page, figment, workflow); the thread is
the conversation threading through it. Dimensional, structural, distinctive — no other
AI tool uses this geometry.
32×32 floor needed for the isometric perspective to read; won't compress to 16×16 without losing depth.idlestreaming26 · Square fold
A continuous thread folds inward at 90° angles, forming a spiral.
Condensing structured data — very Figments geometry.
Reads like a classic tech-company logo ("enterprise chip"). Less conversation, more architecture.idlestreaming27 · Digital meet
Two orthogonal threads step toward each other, connecting at center — you and the
assistant aligning. Direct conceptual map for conversation.
Two-line composition reads as "connector" diagram more than identity mark.cubeidle28 · Ghost traceFaint threads quietly patrol the top and bottom diamond faces. System is aware — not heartbeating, not floating, just watching.Subtle to the point of near-invisible at bar size.cubeidle29 · Core breatheThe internal intersection expands and contracts — heartbeat translated into the cube's geometry.Conceptually the closest to the heartbeat-dot family — loses some of the cube-specific novelty.cubeidle30 · Cubic driftThe whole cube hovers above a breathing shadow. Signals "ready to receive."Float + shadow is the most generic of the three idles — reads as loading-skeleton.cubetyping31 · Vertex blinkTop three vertices light up in sequence — the classic "…" typing indicator, translated into 3D space.Safe — it's the commodity typing pattern, just dimensional.cubetyping32 · Edge constructThree colored segments trace the cube's outline in sequence — capturing the user's prompt by "drafting" the shape.Three-color treatment risks Google-y at a glance; needs restraint.cubetyping33 · Step thread ★A thread zig-zags up the faces like a staircase — stacking words, building a query. Most distinctive of the typing set.Needs the cube shape to carry it; can't be read without the structural context.cubepending34 · Orbit chaseHigh-speed perimeter loop — the spinner, but rigid and cube-native.Still a loop at heart; closest to the generic spinner pattern.cubepending35 · Data uplink ★Dashed packets climb the three vertical axes converging at the top — "sending your prompt to the system." Strong semantic.Requires three simultaneous animations; busier than orbit chase.cubepending36 · Inner gyroThe three internal Y-axis lines flash in sequence — a rotor inside the cube. Mechanical, architectural.Feels more industrial than conversational.cubestreaming37 · Data unspoolMulti-colored threads wind rapidly through the structure — high cognitive load, text generating.Closest to AI-slop "magic" territory; rainbow motion is the danger zone.cubestreaming38 · Facet fill ★The three visible faces paint in sequence — output materializing on the structure. Cleanest streaming read.Full-color fills are the loudest state; must revert cleanly at the end.cubestreaming39 · Hex burstConcentric hexagonal outlines ripple outward — broadcasting, output pulsing out.Ripple/broadcast pattern is familiar; less cube-specific than facet fill.
Thirty-nine candidates, each shown in cube (reference) and state
(animated) at 64×64 (deploys at 32×32). 01–06 are
geometric first-reads. 07–10 bring color in as status. 11–14
are §17 lifts. 15–17 are the heartbeat refinement. 18–27 are
the thread family. 28–39 are the Cubic kit — twelve
behaviors that all play on the same isometric cube, grouped by state:
idle (28–30), typing (31–33), pending (34–36),
streaming (37–39). The cube is the assistant's identity; each
animation is a verb on that structure. Chosen kit (locked):28 · Ghost trace →
33 · Step thread →
35 · Data uplink →
38 · Facet fill. See the size-survival
rail below.
LockedThe chosen kit · at every surface size
24px32px48px88px
Idle28 · Ghost trace
Typing33 · Step thread
Pending35 · Data uplink
Streaming38 · Facet fill
The four chosen variants rendered at 22 / 32 / 48 / 88 px. 88px
is where the mark lives on the first-run onboarding or large attention moments.
48px is the attention-size treatment (empty-state prompts, Arrival).
32px is the composer glyph cell inside the chat column — this is where
the cube lives while a session is open. 22px is the active-session row
in the sidebar (see §08 Shell) — the cube's
at-rest home. The question this frame answers: at what size does the
isometric cube stop reading? If 22px survives for all four states,
no degenerate variant is needed — the full mark carries the whole surface
range. If it breaks, the sidebar row has to grow or we design a flat-square
fallback for tiny contexts.
Family ABrand marks — the voice of Figments
Figments wordmarkThe signature — four vertical strokes at varied heights. The voice of Figments speaking.Assistant corner · Create name input · wordmarksZapStudio's mark — fast thinking, generative spark. Solid fill only, never outlined.Studio empty state · Studio thread headers · generative affordances
Two marks do the brand work. The wordmark bars stand for Figments-as-voice
(the system speaking as you, or to you). Zap stands for Studio
specifically — the room where intent becomes output. They never share a surface;
if Zap is on the page, the wordmark stays quiet.
Every object in Figments has exactly one mark. Shape is identity,
color is identity. Never mix them — a figment is always a square,
a workflow is always a triangle, no matter the surface. See
Identity · Objects for the full semantic model.
Family CUI icons — the quiet helpers
caret-downSelects, jump menuschevron-leftBack, history returnclosePanels, dialogs, dismissalscheckSelect state, confirmationarrow-sendSubmit, next, send messageplusCreate, add to collectionsearchCommand palette, filterattachComposer attachmentsregenerateReroll name, retry runfullscreenMaximize canvas, expand figmentcanvasOpen/close Studio canvastoggleSidebar, app chrome togglelistHistory, transcript rowshistorySidebar history toggle
All UI icons live in the same 14×14 box with stroke weight
1.4 (or 1.6 when extra presence is needed, as with
check). Square line-caps for geometry that matches the 0px corners;
currentColor always, so a glyph adopts its context without a palette
lookup.
DetailConventions — draw one, draw them all
01
One canvas: viewBox="0 0 14 14". Sized at render time via CSS
width/height — commonly 10–14px.
02
Always currentColor. Never hard-code hex. A glyph inherits
from its text ancestor so themes and kind colors pass through.
03
Fill or stroke — never both. Brand marks fill (the Zap). UI icons
stroke (1.4 default, 1.6 for emphasis).
04
stroke-linecap="square" by default. Matches the 0px corner
geometry; rounded caps soften the voice.
05
One shape per object kind. A figment is a square forever; a workflow is
always a triangle. Identity outlives visual drift.
06
Before inventing a new glyph, reach for one here. A missing icon is a
prompt to grow this set deliberately, not to paste from elsewhere.