SwarmSystem · Visual Brand

The look is the proof. This page runs the brand it defines.

Dark, editorial, operator-grade. Fraunces for headlines and numbers, Inter for everything else, one red that means business. Watch the thin line on the right edge and the state on every section: the page scans itself, then assembles a full report, and ends on the Siri check from the live scan page.

Dark, editorial, operator-grade. This page works like the product: it checks itself, fixes itself, and prints the receipt. Every check on it ties back to one thing: the jobs your visibility should be booking.

Watch the right edge and the state words. Workers move section to section and mark each check done. Faults get found and fixed before you ever see them. That is the system working.

No promises on this page. Receipts. The footer check runs live every time this page loads. The BEFORE and NOW toggle in the corner shows exactly what changed. You can verify all of it yourself.

The dots you will see moving are workers. Every trip is a job.

This page is the control room. Every light you see is live work, and the receipt at the bottom proves it.

Vol 6 2026 Red #dc2626 Headlines Fraunces Body Inter Grid 1080px
Vol6 Tokens22 Fields5 Jobs live0
WAITING

The whole palette, one decision already made.

Every color in every deliverable derives from these. No loose hex in component CSS. The --gold token holds the brand red (legacy name, kept to avoid churn). Four state aliases, two spring curves, and nothing new to pick, ever.

--gold
#dc2626
Primary red. CTAs, accents, chart series, emphasis.
--gold-soft
rgba(220,38,38,.12)
Callout + CTA backgrounds, chart areas.
--gold-line
rgba(220,38,38,.32)
Accent borders, rule lines.
--wine
#ef4444
Loss / negative / risk.
--sage
#22c55e
Win / positive.
--amber
#f59e0b
Caution / build-gated.
--bg
#0a0a0a
Page background.
--bg2
#121212
Modules, calculators, metrics.
--panel
#141414
Cards, tiles, panels.
--line
#262626
Borders, dividers, chart grid.
--line2
#383838
Hover borders, axis lines.
--ink
#f5f5f5
Primary text.
--mut
#a3a3a3
Body / secondary text.
--dim
#6b6b6b
Captions, axis labels, helpers.

State aliases and springs

--state-run
alias of --amber
WORKING. A check in progress.
--state-done
alias of --sage
DONE. Checked and resolved.
--state-wait
alias of --dim
WAITING. Queued, not started.
--state-live
alias of --gold
LIVE. Happening right now.
--spring
cubic-bezier(.34,1.26,.64,1)
Soft overshoot. Entrances, state flips. 240 to 420ms.
--settle
cubic-bezier(.22,.9,.26,1)
Weighty landing. Panels, chart draws. 380 to 1100ms.

Aliases, not new colors. The palette stays closed. One documented exception: the Siri product material (the orb, the Siri Score gauge) carries its own quarantined colors from the live scan page. It appears in the report section below and never anywhere else.

WAITING

Fraunces sets the tone. Inter does the work.

Fraunces (serif) for headlines and big display numbers. Inter (sans) for body and every small label. Fraunces is high-contrast and unreadable at 11px, so labels and eyebrows are always Inter, all-caps, tracked.

H1 · Fraunces 500 · clamp(34 to 68px)

Your rooms are full of people who already know you.

H2 · Fraunces 500 · clamp(30 to 52px)

When someone goes looking, who shows up first.

H3 · Fraunces 500 · clamp(21 to 27px)

The technical side Google and AI trust

Eyebrow · Inter 600 · 11px / .26em
Section label
Lead · Inter 400 · clamp(18 to 22px)

A plain look at one thing: when a homeowner asks Google or AI for a plumber, your name comes up first.

Body · Inter 400 · 17px

Every number here is sourced, and we show you how to check it yourself. No jargon, no vanity metrics, just what it costs and what fixes it.

Display number · Fraunces 500 · opsz 144 · counts up on arrival
$22,000/mo
Average revenue left on the table
WAITING

Motion is state. Nothing moves without a reason.

Vol 1 faded everything up the same way. Vol 2 gives motion a job: every animation reports the state of a check, draws a trend, or lands a number. Two spring curves, four states, one rail. That is the whole vocabulary.

If motion carries no state and no number, it does not ship.

The one rule of Vol 2 motion

The four states

Plain words a client reads at a glance. Internally they mirror the live scan orb on the website (opening, active, resolving, resolved). Client-facing pages use only these four.

WAITING WORKING DONE LIVE

The agent line, live

One reusable row that talks like the system is working, because it is. Press the button to run the state cycle.

WAITING Platforms checked: 7 Name you today: 3 Jobs at stake: $8,200/mo

Vocabulary, complete

MoveCurveDurationThe job it does
Spring entrance--spring240 to 420msContent lands with weight as it enters view
State flip--spring300msA dot changes state with one small pulse
Count-upexpo ease-out900msA number arrives like a result, not a decoration
Chart draw--settle1100msA trend arrives as a line being drawn
Row and cell resolve--spring40 to 60ms staggerTables and map cells check in one by one
Orb breathease-in-out6s loopThe live product LISTENING state. Siri material only

That is the entire list. The scan rail on the right edge is the seventh move: reading progress as a live check, linear because it tracks your scroll. Glows stay in brand hues at 35 percent opacity or less (the Siri material keeps its own product glow). Under reduced motion every animation stops and every state, number, and fully drawn chart stays visible.

WAITING

The swarm, visible.

Seven AI platforms decide who gets named when a homeowner asks for help. The system works them as one crew around one business: yours. Watch them take formation. Click the formation to run it again.

Platform formation · liveWAITING
ChatGPTGeminiPerplexityClaudeGrokCopilotGoogle AI Mode
7 platforms. One business at the center.FORMATION LOCKED
WAITING

The hive, connected.

The formation shows where you show up. This shows how you get there: six kinds of work, one business at the center, and every cell feeds the next call. Click the map to run it again.

System map · how work becomes callsWAITING
Post goes up Google sees it AI repeats it Phone rings
Work you own, compounding. Not ads you rent.31 calls in June
WAITING

Every number, one language.

Every chart we use to show a business its numbers, in one place. The network is live: data arrives on a wire, the station pulses, the number lands. Below it, eleven instruments, each answering one question an owner actually asks. Sample data throughout. Hover anything for its reading.

The data network · liveWAITING
Six feeds. One business. Every pulse is a data event.

Calls · the phone line, instrumented

Calls · last 30 daysDONE
Calls in five-day stretches: 34, 38, 41, 46, 50, 49. Total 258 for the month.
Is the phone ringing more?258 calls this month
Calls · by sourceDONE
Calls by source: Google Search 124, Google Maps 72, referrals 38, everything else 24.
Where do the calls come from?76% from Google
Calls · answered vs missedDONE
231 of 258 calls answered, 27 missed.
Every missed call is a job that called someone else.27 missed
Calls · by hourDONE
Calls by hour of day peak between 8 and 10 in the morning at 26 calls, quiet overnight.
When do people call?8 to 10 in the morning

Profile · what Google shows, what people do

Profile · views · 12 monthsDONE
Profile views climb from 5,100 to 12,400 over twelve months.
Where do they see you?65% search · 35% maps
Profile · what they do nextDONE
Profile actions in June: 542 site visits, 388 direction requests, 89 calls. 1,019 total.
What do they do next?1,019 actions in June
Profile · ratingDONE
Average rating 4.8 across 127 reviews, 11 new in June.
Would a stranger trust you?4.8 across 127 reviews
Map pack · rank, then and now
Map rank across 25 zones: top three in 8 zones now, up from 2 before the work.
Rank 1 to 3Rank 4 to 10Rank 11 plusRing marks the shop
Can they find you across town?Top three in 8 zones, up from 2

Search, AI, and the money

Search · times shownDONE
Times shown in search climbs from 18,200 in January to 48,200 in June. 1,940 visits came from it, average spot 3.2.
Do you show up when they search?Shown 48,200 times · 1,940 visits
AI · who names youDONE
AI names the business in 60 percent of test asks. Three platforms name it, one partial, three absent.
When AI answers, are you in it?60% of test asks
Money · revenue by channelDONE
June revenue tied to visibility: Google Search $24,600, Maps and profile $18,900, AI answers $9,700, referrals $8,200. Total $61,400.
Which channel makes the phone ring?$61,400 tied to visibility in June
WAITING
The hangar

Five ways the swarm shows it is on.

Ambient motion, made legal. Each field below is a background animation with a job: it reports one operational state of the swarm, carries a plain word and a number, breathes at a calm four second floor, and renders still under reduced motion with nothing lost. At most one field per shipped page, never louder than the content. These five are the direction options for swarmsystem.ai.

Field 1 · HeartbeatLIVE
Heartbeat field: a honeycomb of faint red hexagons breathing in a slow ripple behind a card that reads Monitoring, 7 platforms. The idle state: on and standing ready.
The system at rest is still on. Where it fits: the page background behind a hero or a waiting screen.Monitoring 7 platforms
Field 2 · FormationDONE
Formation field: eighteen worker hexagons glide between a ring, a delta, and a grid, locking each shape for a few seconds. Fleet realignment, shown.
Work being re-tasked looks like this. Where it fits: a section divider, or a loading state that is honest about the wait.18 workers · DELTA locked
Field 3 · The combLIVE
The comb: honeycomb cells fill one by one as this page's fleet completes real jobs. The count is live, not simulated.
Every lit cell is a job this page's fleet actually finished. Where it fits: a proof strip on a report, wired to real work.0 jobs banked live
Field 4 · ThroughputDONE
Throughput field: data packets ride three angled wires left to right, the picture of calls and clicks moving through the system. June carried 258 tracked calls.
Data on the move: calls, clicks, and mentions in transit. Where it fits: behind a stats band while the numbers land.258 calls routed in June
Field 5 · Mission controlDONE
Mission control field: three lanes named calls, map, and AI wired to one business hexagon. The calls lane glows live and the counter lands 258 calls this month.
The whole room on one wall: every lane wired, one live right now. Where it fits: the hero of swarmsystem.ai.All lanes reporting

The call: one quiet field, one loud one.

Heartbeat is the background: it can sit behind a whole page without shouting. Mission control is the hero moment: the room at work, front and center. The other three are section-scale material. Pair Heartbeat under the page with Mission control up top, and the site says what the product does before a single word is read.

WAITING

The brand in motion. One report, assembled.

Everything above, doing a real job: the modules, charts, and readouts a client sees in a visibility report or a dashboard, ending on the Siri check from the live scan page. Sample data throughout. Hover any dot, bar, or map cell for its reading.

Visibility report · Stan's HVAC · Round Rock, TXLIVE
Platforms checked: 7 Name you today: 3 Checks run: 214 Jobs at stake: $8,200/mo

Dashboard vitals

Calls from search
196
+66%
Booked jobs
58
+87%
Revenue attributed
$61,400
+61%
AI readiness
12/100
Low
Calls from search · six monthsDONE
Calls by month: January 118, February 126, March 121, April 142, May 171, June 196.
Foundation fix landed in March. The line is what happened next.The fix landed in March. Every point after it is booked work.The fix landed in March. The crew has published weekly since.The fix landed in March. Check the months yourself. The data is the proof.+66%
Booked jobs by monthDONE
Booked jobs by month: January 31, February 34, March 33, April 41, May 52, June 58.
Every bar is a month of real work on the books.58 in June
Map pack rank around the shopDONE
Five by five grid of local ranking positions around the business, from rank 1 close to the shop to rank 18 at the edge of the service area.
Rank 1 to 3Rank 4 to 10Rank 11 plusRing marks the shop
Strong close to home. Invisible past the highway. That is the growth map.
Platform coverageDONE
Gemini named Google AI named Copilot named Perplexity partial ChatGPT absent Claude absent Grok absent
3 of 7 platforms name the business.Each missing platform is calls going to someone else.Four platforms to fix. That is the current work queue.Run the same check on your business tonight. It is free.4 misses

The Siri check

The front door of the business, in the brand book so it lives in one place: the orb listens, Siri answers, the Siri Score says how ready the business is. Product material, ported from the live scan page.

The Siri check · live product materialLIVE
The orb · listening
"Hey Siri, find me an HVAC company near Round Rock"
Siri answers
1 Stan's HVAC · Round Rock
2 Comfort Kings Air
3 AirPro Mechanical
Before the fix: not in the answer at all.
87of 100
Siri Score · after the fix
Stan's scored 14 before the work and 87 after. The same gauge runs on the live scan.14 to 87
What the numbers say

Three of seven platforms name the business. Every miss is a homeowner who called someone else.

What happens next

Fix the info layer, feed the profiles, publish proof. The June line above is what that looks like.

WAITING

Every piece, rendered live.

Copy any block from the markup. They all run on the tokens above, so a brand change in :root updates everything. The chart, module, and Siri patterns live in the section above; these are the editorial pieces.

Metric row, numbers count up on arrival

7/100
AI mentions score
before
0/100
Local visibility
map pack absent
94%
Branded discovery
people who already know you
$22k
Monthly revenue at risk

Score meters, the verdict is the color

86
Reviews and reputation
54
Google Business Profile
12
AI visibility

Cards (win / loss / warn tags)

Win

Reviews are strong

The reputation is there. People who find you, choose you.

  • 4.8 average across platforms
  • Steady recent volume
Loss

Invisible to AI

When AI tools recommend a business, your name does not come up.

  • 0 of 12 prompts named you
  • Competitors named instead
Caution

Content has gone quiet

Google reads silence as inactivity. Freshness is decaying.

  • No posts in 90 days
  • Thin service pages

Callout

Why this matters now

The search bar is being replaced by an answer.

Homeowners increasingly ask Google AI, ChatGPT, Gemini, and Siri who to call. Those tools name a short list. If you are not on it, the call never reaches you and you never see it happen.

Homeowners ask Google AI, ChatGPT, Gemini, and Siri who to call. If you are not on the short list, the call goes to the company that is. That is jobs lost without a trace.

Homeowners ask AI who to call. The tools read profiles, reviews, and pages to build the short list. The work on this page is how a business gets read and named.

Homeowners ask AI who to call. Test it yourself tonight: ask your phone for a plumber. If your name is not in the answer, that is the whole problem.

Source: 2026 local-search reporting

Split bar

94% already know you
6%
Branded searchesNew discovery

Matrix, rows resolve like a running check

Who does AI recommend?ChatGPTGeminiPerplexity
Best plumber near meAustin××~
Emergency HVAC tonightAustin×~×
Trusted electricianRound Rock1st××

90-day phases

Month 1

Foundation

Profile, schema, and consistent info across the web. Get readable.

Month 2

Coverage

Service and city pages that match how people actually search.

Month 3

Authority

Citations and signals that move the AI visibility score off zero.

Numbered steps

  1. Run the scan. Measure where the business shows up today.
  2. Fix the foundation. Profile, schema, consistent info, indexing.
  3. Prove the lift. A before-and-after report in plain dollars.

CTA

See where you are being missed.

A plain-English look at your visibility across Google, Maps, and AI, with a real number attached.

Get your visibility roadmap
WAITING

What changed, and why.

Flip the versions in the corner control. v2 described the system. v3 behaves like it. v4 counts it. v5 turns the work into numbers you can watch arrive. Every change is proven by a live element on this page.

Workers you can see

The crew is visible

Every section is checked by a worker that flies in, does the job, and moves on. In v2 the states flipped on their own. Now you watch the crew do it.

A fault, healed

Self-healing, standing

Earlier volumes broke a chart on purpose so a worker could fix it on screen. Vol 6 retired the stunt. The swarm now finds and fixes faults before the page ever shows them, and the receipt below is the proof that stands.

The receipt

The page grades itself

The footer check runs every time this page loads. Tokens, copy, and errors, counted live. If something is wrong, the page says so before you do.

Your view

It reads the room

MONEY, WORK, and TRUST read the same page three ways. Add your business name to the address and the report becomes yours.

The fleet · new in V4

Proof you can count

The workers grew wings and a ledger. The same fleet flies every check on this page: the section flips, the station docks, the formation lock. Each trip carries its job in plain words, the map above shows how the work becomes calls, and the receipt below counts every job as it lands. Swarming you can audit.

The observatory · new in V5

Numbers you can watch arrive

Every chart a client will ever see now lives here, in one language. The network above them is live: a data event lands on a wire, the station pulses, the number lands, and the fleet reads the instruments. Six feeds, eleven instruments, one business at the center. The receipt counts every pulse.

The hangar · new in V6

Ambient, under law

Background motion joined the brand the only way it could: as instrumentation. Five status fields report the swarm's operating states, one of them wired to this page's real job counter, all of them bounded, labeled, numbered, and calm. Two fixes sealed the craft on the way in: bars always render true, and every hexagon is perfectly filled.

The hexagon is the only hive reference and it is geometry, not decoration: the formation, the hive map, the bees, and every state dot on the page. Same four states, same plain words, same closed palette as v2.

WAITING

Copy, fill, deploy.

For any new single-file HTML deliverable (report, pitch hub, landing page, dashboard module):

  1. Copy the fonts link + the canonical :root block + the motion, chart, and module CSS (everything above the styleguide-only marker) into your new HTML, plus the components you need. The Siri material block and the two SVG gradient defs travel together, and only when the page shows the Siri check.
  2. Copy the choreography script at the bottom of this file. It powers the reveals, the state dots, the count-ups, and the scan rail. Give each major section data-scan and a state dot, add class cnt to any number that should count up, and put data-tip readings on dots, bars, and cells.
  3. Copy the V3 proof layer (the head param script, the V3 PROOF LAYER CSS block, and the V3 script at the very bottom) when the deliverable should behave like the product: visible workers, hex state dots, the self-audit receipt, and the version toggle. Mark every v3-only element with data-v3. One rule hides them all in v2 mode. Lens readings go only in module footers, the hero subline, one callout, and the evolution cards, and they change the reading, never the data.
  4. Copy the V4 fleet layer (the V4 FLEET LAYER CSS block plus the fleet parts of the bottom script) when the page should show the fleet: bee glyphs on the workers, job chips, the formation bonds, the hive map, and the jobs count on the receipt. Mark every v4-only element with data-v4. Two rules hide them in v2 and v3 modes. Every v4 pixel must be a worker, a nerve, or a receipt.
  5. Copy the V5 observatory layer (the V5 OBSERVATORY CSS block plus the v5 parts of the bottom script) when the page needs the analytics library: the constellation, the instrument modules, the hex ring, the hour row, the money ramp, and the pulse counts on the receipt. Mark every v5-only element with data-v5. One rule hides them in every older mode. A pulse must be a data event that lands a number, and all of a page's numbers must trace to one dataset. Every v5 pixel must be a chart, a pulse, or a worker.
  6. Charts are hand-built, never a library. Single series in brand red, smooth curve, hairline grid, one axis, labels in text tokens, a hidden text summary for screen readers, and status colors only with a number or word beside them. Sample data must be labeled sample.
  7. Fill in content. Lead with the outcome, tie every number to dollars, keep state words plain: WAITING, WORKING, DONE, LIVE. See .claude/rules/content-style.md. Zero em dashes.
  8. Keep it self-contained. No external CSS, no build step. Test 1440px and 390px, then check reduced motion: on macOS turn on Settings, Accessibility, Display, Reduce Motion (or use DevTools emulation) and confirm every state, number, chart, and the gauge are still visible with nothing animating.
  9. Deploy with node scripts/netlify-deploy-static.cjs <dir> <name>.

This file is the source of truth. If the brand changes, update it and .claude/rules/visual-design.md first, then use it for new work. Shipped reports stay frozen.

V2 V3 V4 V5 Now · V6