Eighteen patterns for voice agents and assistants, from idle to thinking to speaking.
The orb is a sphere of dots: the most expressive object, made for voice agents and assistants. Its eighteen patterns cover a conversation's whole lifecycle, from idle to thinking to speaking.
silhouette draws a front-facing head and shoulders from evenly spread dots that live with the voice. One shape stays on screen; the voice states only change how it moves: it breathes at rest, draws in while you talk, flickers along the eye line while thinking, and sends waves out from the mouth while speaking.
Which head:silhouette in an FX Spec is "human" (the default) or "helmet", or your own outline: { "path": "M… Z", "eyes": [left x, right x, y], "mouth": [x, y] } in a 200 × 200 box. Start and end the path below the shoulders; the bottom stays open and fades.
Looks:hologram (a bright rim and a thin band sliding now and then), scanlines, wire (links between neighbours), turnYaw (the head turns, the shoulders stay), rim, dotSize, saturation and hue.
Dots: about 1,500 at 64 px, 380 at 32 px, the outline alone at 20 px. Under low power it draws 800.
Cost: medium. Glow on every dot makes it heavy, so the voice states leave the dot glow off.
Every prop, per pattern. Values are your app's data; everything else is style. Defaults can differ per size (20 · 32 · 64).
The orb component is SinuaOrb. Pick a look with pattern; each pattern reads the props below. Sizes are engine sizes (20, 32, 64): defaults can differ per size.
Opacity of the faint orbit paths behind the particles.
ink
Appearance
number
0–1 fraction
1
How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
orbitParticles
Appearance
integer
0–16 (UI 1–8)
3
Bright particles travelling each orbit.
Advanced props (7)
Prop
Category
Type
Range
Default
Description
ghostN
Appearance
integer
0–400
20: 10 · 32: 17 · 64: 40
Dots per faint orbit path.
ghostR
Appearance
number
0–4
20: 2.16 · 32: 1.5164 · 64: 0.9
Radius of the faint orbit-path dots.
orbitN
Appearance
integer
1–64
20: 3 · 32: 5 · 64: 12
Number of orbit paths the particles travel on.
partR
Appearance
number
0–6
20: 2.88 · 32: 2.0219 · 64: 1.2
Radius of the travelling particles.
partRDepth
Appearance
number
0–6
20: 3.84 · 32: 2.6958 · 64: 1.6
Extra particle radius when nearest the viewer (depth cue).
rMin
Appearance
number
0–4 px
0.3
Dots are never drawn smaller than this, in engine units, so far-side dots stay visible at small sizes.
rsPow
Appearance
number
0–2
0.6
How dot radii scale with the frame size: radius x (size / 64)^rsPow; lower keeps small sizes chunkier.
How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
scanMul
Motion
number
0–16 (UI 0.5–8) x
20: 4.335 · 32: 4.2301 · 64: 4.08
Speed of the scanning band across the globe.
Advanced props (9)
Prop
Category
Type
Range
Default
Description
inkFar
Appearance
number
0–1 fraction
0.62
Ink value of the far side (0 = darkest ink, 1 = paper).
inkSpan
Appearance
number
0–1 fraction
0.54
How much darker the near side is than the far side.
latRings
Appearance
integer
2–64
20: 6 · 32: 7 · 64: 11
Rings of dots from pole to pole.
lonDensity
Appearance
number
4–200
20: 14 · 32: 19 · 64: 29
Dots around the equator; other rings scale with their circumference.
rBase
Appearance
number
0–6
20: 1.05 · 32: 0.8861 · 64: 0.69
Base dot radius.
rDepth
Appearance
number
0–6
20: 2.975 · 32: 2.5107 · 64: 1.955
Extra dot radius on the side facing the viewer.
rMin
Appearance
number
0–4 px
0.3
Dots are never drawn smaller than this, in engine units, so far-side dots stay visible at small sizes.
rsPow
Appearance
number
0–2
0.6
How dot radii scale with the frame size: radius x (size / 64)^rsPow; lower keeps small sizes chunkier.
How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
Advanced props (10)
Prop
Category
Type
Range
Default
Description
inkFar
Appearance
number
0–1 fraction
0.62
Ink value of the far side (0 = darkest ink, 1 = paper).
inkSpan
Appearance
number
0–1 fraction
0.54
How much darker the near side is than the far side.
latRings
Appearance
integer
2–64
20: 4 · 32: 6 · 64: 9
Rings of dots from pole to pole.
lonDensity
Appearance
number
4–200
20: 12 · 32: 16 · 64: 24
Dots around the equator; other rings scale with their circumference.
rBase
Appearance
number
0–6
20: 1.14 · 32: 0.8971 · 64: 0.63
Base dot radius.
rDepth
Appearance
number
0–6
20: 3.23 · 32: 2.5417 · 64: 1.785
Extra dot radius on the side facing the viewer.
rMin
Appearance
number
0–4 px
0.3
Dots are never drawn smaller than this, in engine units, so far-side dots stay visible at small sizes.
rsPow
Appearance
number
0–2
0.6
How dot radii scale with the frame size: radius x (size / 64)^rsPow; lower keeps small sizes chunkier.
How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
Advanced props (6)
Prop
Category
Type
Range
Default
Description
lonDensity
Appearance
number
4–200
20: 13 · 32: 16 · 64: 23
Dots around the widest ring.
rBase
Appearance
number
0–6
20: 0.96 · 32: 0.7939 · 64: 0.6
Base dot radius.
rDepth
Appearance
number
0–6
20: 2.72 · 32: 2.2494 · 64: 1.7
Extra dot radius on the side facing the viewer.
rMin
Appearance
number
0–4 px
0.3
Dots are never drawn smaller than this, in engine units, so far-side dots stay visible at small sizes.
rings
Appearance
integer
2–64
20: 5 · 32: 6 · 64: 9
Rings of dots across the wave surface.
rsPow
Appearance
number
0–2
0.6
How dot radii scale with the frame size: radius x (size / 64)^rsPow; lower keeps small sizes chunkier.
How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
lineW
Appearance
number
0–4 (UI 0.3–2.5)
0.8
Stroke width of the links.
spread
Appearance
number
0.1–2 (UI 0.8–2) x
1
Size of the network relative to the frame.
thr
Appearance
number
0–2 (UI 0.3–1.2)
0.72
How close two nodes must be to link; higher links more pairs.
signals
Energy
integer
0–32 (UI 0–12)
20: 1 · 32: 2 · 64: 7
Bright pulses travelling along the links.
Advanced props (5)
Prop
Category
Type
Range
Default
Description
nodeN
Appearance
integer
2–200
20: 8 · 32: 15 · 64: 41
Nodes in the network.
nodeR
Appearance
number
0–6
20: 2.128 · 32: 1.7599 · 64: 1.33
Base node radius.
nodeRDepth
Appearance
number
0–6
20: 2.736 · 32: 2.2628 · 64: 1.71
Extra node radius when nearest the viewer.
rMin
Appearance
number
0–4 px
0.3
Dots are never drawn smaller than this, in engine units, so far-side dots stay visible at small sizes.
rsPow
Appearance
number
0–2
0.6
How dot radii scale with the frame size: radius x (size / 64)^rsPow; lower keeps small sizes chunkier.
How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
turns
Appearance
number
0–12 (UI 1–6)
3
How many times the strands twist around each other.
Advanced props (6)
Prop
Category
Type
Range
Default
Description
ghostN
Appearance
integer
0–400
20: 17 · 32: 31 · 64: 75
Dots along the faint guide strands.
rBase
Appearance
number
0–6
20: 1.632 · 32: 1.4413 · 64: 1.2
Base dot radius.
rDepth
Appearance
number
0–6
20: 2.448 · 32: 2.162 · 64: 1.8
Extra dot radius on the side facing the viewer.
rMin
Appearance
number
0–4 px
0.3
Dots are never drawn smaller than this, in engine units, so far-side dots stay visible at small sizes.
rsPow
Appearance
number
0–2
0.6
How dot radii scale with the frame size: radius x (size / 64)^rsPow; lower keeps small sizes chunkier.
How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
spin
Motion
number
0–4 (UI 0–2) x
0
Rotation speed of the ribbon.
wobMul
Motion
number
0–4 (UI 0–2.5) x
1
How much the ribbon wobbles as it turns.
Advanced props (8)
Prop
Category
Type
Range
Default
Description
faceOn
Appearance
boolean
0
Show the ribbon face-on instead of tilted.
ghostN
Appearance
integer
0–400
20: 8 · 32: 15 · 64: 38
Dots in the faint guide ring.
lanes
Appearance
number
1–16
20: 2 · 32: 2 · 64: 3
Parallel lanes of dots in the ribbon.
rBase
Appearance
number
0–6
20: 1.1803 · 32: 1.0743 · 64: 0.935
Base dot radius.
rDepth
Appearance
number
0–6
20: 1.8241 · 32: 1.6602 · 64: 1.445
Extra dot radius on the side facing the viewer.
rMin
Appearance
number
0–4 px
0.3
Dots are never drawn smaller than this, in engine units, so far-side dots stay visible at small sizes.
rsPow
Appearance
number
0–2
0.6
How dot radii scale with the frame size: radius x (size / 64)^rsPow; lower keeps small sizes chunkier.
How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
spin
Motion
number
0–4 (UI 0–2) x
0
Rotation speed of the ribbon.
wobMul
Motion
number
0–4 (UI 0–2.5) x
20: 0.565 · 32: 0.4751 · 64: 0.368
How much the ribbon wobbles as it turns.
Advanced props (8)
Prop
Category
Type
Range
Default
Description
faceOn
Appearance
boolean
1
Show the ribbon face-on instead of tilted.
ghostN
Appearance
integer
0–400
0
Dots in the faint guide ring.
lanes
Appearance
number
1–16
20: 2 · 32: 2 · 64: 3
Parallel lanes of dots in the ribbon.
rBase
Appearance
number
0–6
20: 1.7842 · 32: 1.441 · 64: 1.0516
Base dot radius.
rDepth
Appearance
number
0–6
20: 2.7574 · 32: 2.227 · 64: 1.6252
Extra dot radius on the side facing the viewer.
rMin
Appearance
number
0–4 px
0.3
Dots are never drawn smaller than this, in engine units, so far-side dots stay visible at small sizes.
rsPow
Appearance
number
0–2
0.6
How dot radii scale with the frame size: radius x (size / 64)^rsPow; lower keeps small sizes chunkier.
How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
spread
Appearance
number
0.1–2 (UI 0.8–2) x
1.45
Size of the shape relative to the frame.
Advanced props (4)
Prop
Category
Type
Range
Default
Description
iconD
Appearance
number
0.25–4 x
20: 0.53 · 32: 0.5937 · 64: 0.702
Dot density of the morphing icon outlines.
rDot
Appearance
number
0.002–0.1 fraction
20: 0.0212 · 32: 0.0145 · 64: 0.0083
Dot radius as a fraction of the frame.
rMin
Appearance
number
0–4 px
0.25
Dots are never drawn smaller than this, in engine units, so far-side dots stay visible at small sizes.
rsPow
Appearance
number
0–2
How dot radii scale with the frame size: radius x (size / 64)^rsPow; lower keeps small sizes chunkier.
Tone difference between front and back dots (0 = one tone).
hueOffset
Appearance
number
0–360 deg
0
Starting hue of the aurora colours.
hueSpread
Appearance
number
0–720 (UI 0–360) deg
140
Range of hues across the sphere.
ink
Appearance
number
0–1 fraction
1
How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
saturation
Appearance
number
0–1 fraction
0.55
Colour saturation of the aurora.
surfaceScale
Appearance
number
0.05–16 (UI 0.4–4)
1.4
Scale of the flowing colour field on the sphere.
hueSpeed
Motion
number
-360–360 (UI 0–60) deg/s
12
Degrees per second the colours cycle.
surfaceSpeed
Motion
number
0–4 (UI 0–1)
0.25
Speed of the colour field's flow.
Advanced props (4)
Prop
Category
Type
Range
Default
Description
nodeCount
Appearance
integer
8–1000
20: 73 · 32: 130 · 64: 260
Dots on the sphere.
nodeSize
Appearance
number
0–6
20: 1.76 · 32: 1.43 · 64: 1.1
Dot radius.
rMin
Appearance
number
0–4 px
0.3
Dots are never drawn smaller than this, in engine units, so far-side dots stay visible at small sizes.
rsPow
Appearance
number
0–2
0.6
How dot radii scale with the frame size: radius x (size / 64)^rsPow; lower keeps small sizes chunkier.
How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
lineW
Appearance
number
0–4 (UI 0.3–2.5)
0.8
Stroke width of the links.
spread
Appearance
number
0.1–2 (UI 0.8–2) x
1
Size of the flowing network relative to the frame.
thr
Appearance
number
0–2 (UI 0.3–1.2)
0.72
How close two nodes must be to link; higher links more pairs.
signals
Energy
integer
0–32 (UI 0–12)
20: 1 · 32: 2 · 64: 7
Bright pulses travelling along the links.
Advanced props (5)
Prop
Category
Type
Range
Default
Description
nodeN
Appearance
integer
2–200
20: 8 · 32: 15 · 64: 41
Nodes in the flowing network.
nodeR
Appearance
number
0–6
20: 2.128 · 32: 1.7599 · 64: 1.33
Base node radius.
nodeRDepth
Appearance
number
0–6
20: 2.736 · 32: 2.2628 · 64: 1.71
Extra node radius when nearest the viewer.
rMin
Appearance
number
0–4 px
0.3
Dots are never drawn smaller than this, in engine units, so far-side dots stay visible at small sizes.
rsPow
Appearance
number
0–2
0.6
How dot radii scale with the frame size: radius x (size / 64)^rsPow; lower keeps small sizes chunkier.
Ink hue in degrees; applies once saturation is above 0.
ink
Appearance
number
0–1 fraction
1
How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
saturation
Appearance
number
0–1 fraction
0.6
How far the ink moves from grey toward the hue (0 = the grey ink).
jumpSpeed
Motion
number
0–32 (UI 0.5–12)
4
How fast the synthetic bars jump when no audio is supplied.
Advanced props (4)
Prop
Category
Type
Range
Default
Description
barDotCount
Appearance
integer
1–24
20: 3 · 32: 4 · 64: 6
Dots stacked in each bar.
dotSize
Appearance
number
0–6
20: 0.7 · 32: 0.85 · 64: 1
Dot radius.
rMin
Appearance
number
0–4 px
0.3
Dots are never drawn smaller than this, in engine units, so far-side dots stay visible at small sizes.
rsPow
Appearance
number
0–2
0.6
How dot radii scale with the frame size: radius x (size / 64)^rsPow; lower keeps small sizes chunkier.
How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
period
Motion
number
0.05–30 (UI 0.4–4) s
1.6
Seconds between sonar pings.
echoCount
Energy
integer
0–8 (UI 1–4)
2
Trailing echo rings per ping.
Advanced props (5)
Prop
Category
Type
Range
Default
Description
coreSize
Appearance
number
0–6
20: 0.9 · 32: 1.1 · 64: 1.3
Radius of the centre dot.
rMin
Appearance
number
0–4 px
0.3
Dots are never drawn smaller than this, in engine units, so far-side dots stay visible at small sizes.
ringCount
Appearance
integer
4–400
20: 20 · 32: 32 · 64: 48
Dots per expanding ring.
rsPow
Appearance
number
0–2
0.6
How dot radii scale with the frame size: radius x (size / 64)^rsPow; lower keeps small sizes chunkier.
echoSpacing
Motion
number
0–1 fraction
0.18
Gap between echo rings, as a fraction of the cycle.
How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
starCount
Appearance
integer
1–1000 (UI 20–300)
20: 45 · 32: 70 · 64: 120
Stars in the warp field.
warpSpeed
Motion
number
0–8 (UI 0.2–4) x
1
Speed of the stars.
decay
Energy
number
0–0.5 (UI 0–0.3)
0.06
Length of each star's trail.
Advanced props (3)
Prop
Category
Type
Range
Default
Description
rMin
Appearance
number
0–4 px
0.3
Dots are never drawn smaller than this, in engine units, so far-side dots stay visible at small sizes.
rsPow
Appearance
number
0–2
0.6
How dot radii scale with the frame size: radius x (size / 64)^rsPow; lower keeps small sizes chunkier.
How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
holdDuration
Motion
number
0.1–30 (UI 0.5–6) s
2.5
Seconds each pattern holds before the next.
Advanced props (4)
Prop
Category
Type
Range
Default
Description
nodeCount
Appearance
integer
8–1000
20: 73 · 32: 130 · 64: 260
Dots settling into the pattern.
nodeSize
Appearance
number
0–6
20: 1.44 · 32: 1.17 · 64: 0.9
Dot radius.
rMin
Appearance
number
0–4 px
0.3
Dots are never drawn smaller than this, in engine units, so far-side dots stay visible at small sizes.
rsPow
Appearance
number
0–2
0.6
How dot radii scale with the frame size: radius x (size / 64)^rsPow; lower keeps small sizes chunkier.
How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
progress
Inputs
number
0–1 fraction
0.5
How far the eclipse has advanced, 0 to 1.
Advanced props (4)
Prop
Category
Type
Range
Default
Description
nodeCount
Appearance
integer
8–1000
20: 73 · 32: 130 · 64: 260
Dots on the disc.
nodeSize
Appearance
number
0–6
20: 1.44 · 32: 1.17 · 64: 0.9
Dot radius.
rMin
Appearance
number
0–4 px
0.3
Dots are never drawn smaller than this, in engine units, so far-side dots stay visible at small sizes.
rsPow
Appearance
number
0–2
0.6
How dot radii scale with the frame size: radius x (size / 64)^rsPow; lower keeps small sizes chunkier.
How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
saturation
Appearance
number
0–1 fraction
0
Strength of the muted warning tint (0 = grey).
period
Energy
number
0.05–30 (UI 1–8) s
3.2
Seconds per breath.
pulseAmplitude
Energy
number
0–0.5 (UI 0–0.1) fraction
0.03
Size of the slow breathing pulse.
Advanced props (5)
Prop
Category
Type
Range
Default
Description
nodeCount
Appearance
integer
8–1000
20: 62 · 32: 110 · 64: 220
Dots on the resting sphere.
nodeSize
Appearance
number
0–6
20: 1.76 · 32: 1.43 · 64: 1.1
Dot radius.
rMin
Appearance
number
0–4 px
0.3
Dots are never drawn smaller than this, in engine units, so far-side dots stay visible at small sizes.
rsPow
Appearance
number
0–2
0.6
How dot radii scale with the frame size: radius x (size / 64)^rsPow; lower keeps small sizes chunkier.
A brighter rim and, now and then, a thin band sliding sideways.
hue
Appearance
number
0–360 deg
200
Hue of the tint.
ink
Appearance
number
0–1 fraction
1
How present the whole visual is: 1 draws it as the pattern defines it, lower fades everything including its halos. A voice assistant rests below 1 when idle and comes to full ink when it listens.
rim
Appearance
number
0–1 fraction
0.7
Strength of the outline and its glow.
saturation
Appearance
number
0–1 fraction
0
Colour strength of the dots and outline (0 = grey ink).
scanlines
Appearance
number
0–1 fraction
0
Bands moving down over the dots.
wire
Appearance
number
0–1 fraction
0
Thin links between neighbouring dots.
breath
Motion
number
0–1 fraction
1
How much the silhouette breathes (idle).
period
Motion
number
0.05–30 (UI 1–10) s
4
Seconds per breath.
waveSpeed
Motion
number
0–4 (UI 0.1–2) Hz
0.8
Waves per second for the listening, thinking and speaking motion.
glint
Energy
number
0–1 fraction
1
Dots that catch the light now and then (idle).
inward
Energy
number
0–1 fraction
0
Waves travelling in from the outline, stronger with the mic level (listening).
neuron
Energy
number
0–1 fraction
0
Dots flickering along the eye line (thinking).
speech
Energy
number
0–1 fraction
0
Waves spreading from the mouth with the voice's level (speaking).
Advanced props (4)
Prop
Category
Type
Range
Default
Description
rMin
Appearance
number
0–4 px
0.3
Dots are never drawn smaller than this, in engine units, so far-side dots stay visible at small sizes.
rsPow
Appearance
number
0–2
How dot radii scale with the frame size: radius x (size / 64)^rsPow; lower keeps small sizes chunkier.
scanSpeed
Motion
number
0–4 (UI 0–1.5) Hz
0.3
Scanline bands per second.
turnYaw
Motion
number
-1–1
0
Where the head faces, sideways (-1..1; negative = the viewer's left). The shoulders stay.