Demo Macro Agent · v0.2
Demo Macro
Cinematic product walkthrough · narration is editable in place · saves to public/demo/flyby.json
▶ Watch this demo ↗Wired
Self-review · agent error
ENOENT: no such file or directory, open '/var/task/src/lib/fabric/agents/index.ts'
The CivOps Platform8 chapters · 9 scenes · 9:45 total
"A unified industrial data platform that rides alongside every system you already own — and gets smarter every month instead of asking you to rip anything out."
Chapter 1 · Day 0 — click and go2:00 · 21% of total · 2 scenes
1.1Time to value, measured in days55s · /platform/setup
Setup is self-guided. CivOps auto-interrogates your network — discovers historians, PLCs, ERP endpoints, warehouse systems — and walks you through connecting them in a wizard. Most sites are live in under 48 hours. No professional-services gauntlet. No six-month integration project.
Sim clockDay 0 → Day 2· 3.1k× compressed
Closing: "You run the wizard; we run the interrogation."
1.2Listening to the OT layer — without touching it65s · /platform/plc
This is the PLC discovery agent at work. It scans your control network passively — no writes, no scan-cycle disruption, no risk to running production. It catalogs every register it can see, classifies what each one is doing, and reads the loaded program logic to understand the process intent. By the end of this step you have a structured map of your OT estate that took us hours, not the months a controls integrator would have charged for.
Sim clockDay 1 → Day 2· 1.3k× compressed
Closing: "We listen to your OT layer. We never reach into it."
Chapter 2 · Passive by default55s · 9% of total · 1 scene
2.1Nothing gets ripped out55s · /platform/inputs?tab=capture
Every connection starts in passive-read mode. Your ERP keeps running. Your historian keeps collecting. Your MES, WMS, QMS, CMMS — all stay exactly where they are. CivOps rides alongside. This is the opposite of a rip-and-replace migration.
Sim clockDay 0 → Day 2· 3.1k× compressed
Closing: "Additive, not destructive. The commercial shape is different for a reason."
Chapter 3 · One fabric, your names kept intact1:15 · 13% of total · 1 scene
3.1Real-time and transactional, harmonized75s · /platform/runtime
PLC tag streams, warehouse lot records, ERP orders, quality results — all land in a single queryable substrate. The Nomenclature Aligner agent maps your in-house naming conventions to industry standards like ISA-95 using alias descriptors. Your engineers keep calling tags what they've always called them; reports speak the standard language underneath.
Sim clockDay 2 → Day 3
Closing: "Two things nobody else offers — real-time and transactional in one framework, and zero forced renaming of your existing data."
Chapter 4 · Day 1, minute 11:10 · 12% of total · 1 scene
4.1All business analytics, immediately70s · /platform/analysis
Because every analytic reads from the same fabric, the 12-domain Health Index, the 132-tool analytics suite, the KPIs across Safety, Quality, Delivery, Cost — all of it lights up the moment the fabric is seeded. You don't integrate analytics one-by-one; you just use them.
Sim clockNow: live
Closing: "Every tool inherits the fabric automatically. You don't integrate analytics one-by-one — you just use them."
Chapter 5 · Build your own, share your own50s · 9% of total · 1 scene
5.1Any report you need — built once, shared everywhere50s · /platform/tools?tab=dashboards
Canned reports, statistical templates, dashboards — all browsable, all editable. Need something custom? Build it, then expose it to the team. The same analysis never gets re-invented in three different Excel files on three different desktops.
Sim clockNow: live
Closing: "Self-service analytics are the antidote to spreadsheet duplication."
Chapter 6 · Configured per persona, locked by role50s · 9% of total · 1 scene
6.1Every role sees what they need, nothing they don't50s · /platform/hmi
Interfaces, reports, and access are configured by business type and persona. An operator sees their HMI. Maintenance sees CMMS tickets. A controller sees the financial ledger. Sensitive data stays behind role-gates — by design, not by policy document.
Sim clockNow: live
Closing: "33 operator roles. 560 role-curated tools. One platform."
Chapter 7 · The AI runs here, not in the cloud1:25 · 15% of total · 1 scene
7.1On-premises by design — open source all the way down85s · /platform/admin/go-live
CivOps is engineered around a dual-firewall DMZ with a fully local AI stack — Ollama, open-weight models, Postgres, Grafana, no outbound dependencies after cutover. The cyber risk customers fear with cloud-hosted industrial AI simply doesn't exist here. The monthly cloud bill doesn't exist either. The readiness state machine gates go live until every agent is vetted against local inference.
Sim clockForever, on-site
Closing: "Modern AI, on your infrastructure, with an open-source substrate. No cloud exposure. No SaaS meter running."
Chapter 8 · The replacement ladder — on your pace, on the books1:20 · 14% of total · 1 scene
8.1SaaS displacement, your pace — GAAP-aligned ROI80s · /platform/admin/value-attribution
Every connector walks a ladder: passive-read to shadow-write to dual-write to primary. The instant you're ready, CivOps takes over — and the SaaS you stop paying for becomes a line item in the Value Attribution ledger. Displaced licenses, agent-delivered improvements, every dollar classified, GAAP-aligned, ready for finance. No systems forced out to get there.
Sim clockYear 1 → Year 5
Closing: "Year-1 projected savings, CivOps Nicotine Sciences reference plant."
Edit narrationCold open · cold close · per-scene title / body / spoken / closing — saves directly to public/demo/flyby.json. Hero numbers + activity cues stay JSON-edited.
Cold open · prologue
Visiting another struggling plant.
Hi. This is Civi again, visiting another struggling plant dealing with the challenges of a yesteryear data acquisition strategy and all of the productivity losses that go along with it.
The difference is that this company finally made the decision to do something about it, so that they could remain relevant, and protect the jobs of their employees and the sanity of their customers.
Today, we are going to talk about the decisions they made, the tools that were used, and why they will move from a struggling company to a LEAN, highly-functioning company in exceptionally short order.
Let's look under the hood at what they are adopting, and see if the method makes sense to you.
Spoken (TTS)
Hi. This is Sivee again, visiting another struggling plant dealing with the challenges of a yesteryear data acquisition strategy and all of the productivity losses that go along with it. The difference is that this company finally made the decision to do something about it, so that they could remain relevant, and protect the jobs of their employees and the sanity of their customers. Today, we are going to talk about the decisions they made, the tools that were used, and why they will move from a struggling company to a LEAN, highly-functioning company in exceptionally short order. Let's look under the hood at what they are adopting, and see if the method makes sense to you.
Chapter 1 · Day 0 — click and go2 scenes
1.1Time to value, measured in days55s · /platform/setup
Setup is self-guided. CivOps auto-interrogates your network — discovers historians, PLCs, ERP endpoints, warehouse systems — and walks you through connecting them in a wizard. Most sites are live in under 48 hours. No professional-services gauntlet. No six-month integration project.
"You run the wizard; we run the interrogation."
1.2Listening to the OT layer — without touching it65s · /platform/plc
This is the PLC discovery agent at work. It scans your control network passively — no writes, no scan-cycle disruption, no risk to running production. It catalogs every register it can see, classifies what each one is doing, and reads the loaded program logic to understand the process intent. By the end of this step you have a structured map of your OT estate that took us hours, not the months a controls integrator would have charged for.
"We listen to your OT layer. We never reach into it."
Chapter 2 · Passive by default1 scene
2.1Nothing gets ripped out55s · /platform/inputs?tab=capture
Every connection starts in passive-read mode. Your ERP keeps running. Your historian keeps collecting. Your MES, WMS, QMS, CMMS — all stay exactly where they are. CivOps rides alongside. This is the opposite of a rip-and-replace migration.
"Additive, not destructive. The commercial shape is different for a reason."
Chapter 3 · One fabric, your names kept intact1 scene
3.1Real-time and transactional, harmonized75s · /platform/runtime
PLC tag streams, warehouse lot records, ERP orders, quality results — all land in a single queryable substrate. The Nomenclature Aligner agent maps your in-house naming conventions to industry standards like ISA-95 using alias descriptors. Your engineers keep calling tags what they've always called them; reports speak the standard language underneath.
"Two things nobody else offers — real-time and transactional in one framework, and zero forced renaming of your existing data."
Chapter 4 · Day 1, minute 11 scene
4.1All business analytics, immediately70s · /platform/analysis
Because every analytic reads from the same fabric, the 12-domain Health Index, the 132-tool analytics suite, the KPIs across Safety, Quality, Delivery, Cost — all of it lights up the moment the fabric is seeded. You don't integrate analytics one-by-one; you just use them.
"Every tool inherits the fabric automatically. You don't integrate analytics one-by-one — you just use them."
Chapter 5 · Build your own, share your own1 scene
5.1Any report you need — built once, shared everywhere50s · /platform/tools?tab=dashboards
Canned reports, statistical templates, dashboards — all browsable, all editable. Need something custom? Build it, then expose it to the team. The same analysis never gets re-invented in three different Excel files on three different desktops.
"Self-service analytics are the antidote to spreadsheet duplication."
Chapter 6 · Configured per persona, locked by role1 scene
6.1Every role sees what they need, nothing they don't50s · /platform/hmi
Interfaces, reports, and access are configured by business type and persona. An operator sees their HMI. Maintenance sees CMMS tickets. A controller sees the financial ledger. Sensitive data stays behind role-gates — by design, not by policy document.
"33 operator roles. 560 role-curated tools. One platform."
Chapter 7 · The AI runs here, not in the cloud1 scene
7.1On-premises by design — open source all the way down85s · /platform/admin/go-live
CivOps is engineered around a dual-firewall DMZ with a fully local AI stack — Ollama, open-weight models, Postgres, Grafana, no outbound dependencies after cutover. The cyber risk customers fear with cloud-hosted industrial AI simply doesn't exist here. The monthly cloud bill doesn't exist either. The readiness state machine gates go live until every agent is vetted against local inference.
"Modern AI, on your infrastructure, with an open-source substrate. No cloud exposure. No SaaS meter running."
Chapter 8 · The replacement ladder — on your pace, on the books1 scene
8.1SaaS displacement, your pace — GAAP-aligned ROI80s · /platform/admin/value-attribution
Every connector walks a ladder: passive-read to shadow-write to dual-write to primary. The instant you're ready, CivOps takes over — and the SaaS you stop paying for becomes a line item in the Value Attribution ledger. Displaced licenses, agent-delivered improvements, every dollar classified, GAAP-aligned, ready for finance. No systems forced out to get there.
"Year-1 projected savings, CivOps Nicotine Sciences reference plant."
Cold close · sign-off
And that is how this plant turned the corner.
So that's the under-the-hood tour. The same plant we visited at the top — the one drowning in siloed systems, manual reconciliation, and numbers nobody trusted — is now running on a single elastic data fabric, with twenty-one specialized AI agents working continuously, all behind a Purdue Level 3.5 DMZ on a purpose-built appliance.
They got there in weeks, not months. They displaced a stack of SaaS subscriptions, eliminated their cloud bill, and protected their cyber posture by design. Every dollar they save now lands in a GAAP-aligned ledger their CFO already trusts. And they didn't have to rip out a single system to get there.
If any of that resonates with what your plant is dealing with, my team is one conversation away from showing you the same path. Otherwise, take a look around — everything you just saw is live, with synthetic data, and you can explore freely.
Either way, glad you came along.
Spoken (TTS)
So that's the under-the-hood tour. The same plant we visited at the top, the one drowning in siloed systems, manual reconciliation, and numbers nobody trusted, is now running on a single elastic data fabric, with twenty-one specialized AI agents working continuously, all behind a Purdue Level three point five DMZ on a purpose-built appliance. They got there in weeks, not months. They displaced a stack of SaaS subscriptions, eliminated their cloud bill, and protected their cyber posture by design. Every dollar they save now lands in a GAAP-aligned ledger their CFO already trusts. And they didn't have to rip out a single system to get there. If any of that resonates with what your plant is dealing with, my team is one conversation away from showing you the same path. Otherwise, take a look around. Everything you just saw is live, with synthetic data, and you can explore freely. Either way, glad you came along.
Civi brand assets · the two files that matterArchitecture: one walking-Civi cold-open video + one professional portrait. Voice adapts per script via ElevenLabs prerender. No per-scene videos to manage.
REQUIRED · 1 of 2
Cold-open video — walking Civi, brand intro (the ONE allowed video)
/demo/civi-intro.mp4VIDEO
Click or drop a file to replace
Generated in Higgsfield · Civi walking through industrial setting · speaks the brand intro · own audio · this is the only video that plays in the demo
REQUIRED · 2 of 2
Civi brand portrait — high-quality still used everywhere after the cold-open
/demo/civi-portrait.jpg
Click or drop a file to replace
High resolution · 3:4 or square · industrial setting backdrop · matches the Civi character used in your Higgsfield videos · this image carries the brand throughout the rest of the demo
Deprecated upload slots — kept for backward compat
These slots used to be checked by the player but are no longer rendered. Architecture is now "one video, one photo, voice adapts per script."
Idle loop video (deprecated — no longer played)
/demo/civi-idle.mp4VIDEO
Click or drop a file to replace
Used to play in the corner during scenes; removed because mouth motion didn't match adaptive voice-over
Cold-close video (deprecated — close is photo + voice now)
/demo/civi-outro.mp4VIDEO
Click or drop a file to replace
Removed for the same adaptive-voice reason as scene-intros
Synthetic video export · Higgsfield / HeyGen / SynthesiaCopy scripts pre-formatted for Lipsync Studio. Export MP4, drop at the path shown, the player auto-uses video when present. Each scene has its own stage-setting interstitial.
Cinematic bookends
Paste into Higgsfield Lipsync Studio (or HeyGen / Synthesia) → export MP4 → drop at
public/demo/civi-intro.mp4Paste into Higgsfield Lipsync Studio (or HeyGen / Synthesia) → export MP4 → drop at
public/demo/civi-outro.mp4Per-scene interstitials · Civi sets the stage for each problem before the flyby demonstrates the solution
Paste into Higgsfield Lipsync Studio (or HeyGen / Synthesia) → export MP4 → drop at
public/demo/scenes/self-guided-setup.mp4Paste into Higgsfield Lipsync Studio (or HeyGen / Synthesia) → export MP4 → drop at
public/demo/scenes/plc-interrogation.mp4Paste into Higgsfield Lipsync Studio (or HeyGen / Synthesia) → export MP4 → drop at
public/demo/scenes/passive-read-no-rip.mp4Paste into Higgsfield Lipsync Studio (or HeyGen / Synthesia) → export MP4 → drop at
public/demo/scenes/unified-real-time-transactional.mp4Paste into Higgsfield Lipsync Studio (or HeyGen / Synthesia) → export MP4 → drop at
public/demo/scenes/health-index-out-of-box.mp4Paste into Higgsfield Lipsync Studio (or HeyGen / Synthesia) → export MP4 → drop at
public/demo/scenes/self-service-analytics.mp4Paste into Higgsfield Lipsync Studio (or HeyGen / Synthesia) → export MP4 → drop at
public/demo/scenes/persona-and-role.mp4Paste into Higgsfield Lipsync Studio (or HeyGen / Synthesia) → export MP4 → drop at
public/demo/scenes/dmz-and-open-source.mp4Paste into Higgsfield Lipsync Studio (or HeyGen / Synthesia) → export MP4 → drop at
public/demo/scenes/ladder-and-ledger.mp4Voice quality · ElevenLabs pre-renderBrowser TTS sounds robotic. The seam is wired for ElevenLabs — pre-render the spoken fields once, the player picks up the cached mp3s automatically.
To enable ElevenLabs voice:
- Sign up at elevenlabs.io (free tier covers ~10 minutes/month, paid starts at $5/mo)
- Pick a voice at voice-library (canonical: Freya for Civi; fallbacks Matilda or Nicole — see
src/lib/civi/voice.ts) - Set in
.env.local:ELEVEN_LABS_API_KEY=sk_...
- Set in
public/demo/flyby.json→voice.elevenLabsVoiceIdthe voice id from the library URL. - Run from the repo root:
npm run tts:prerender # canonical macro npm run tts:prerender -- --prospect=acme # per-prospect npm run tts:prerender -- --force # re-render everything
- Reload the demo — Civi now sounds like Civi, not like a robot. Browser TTS stays as the silent fallback if any mp3 fails to load.
Cost: ~$5 per full re-render of the canonical macro. Per-scene re-runs cost cents.
Decisions owedWhat it'll take to graduate this surface from in-design to wired
- •ROI close — finalize Year-1 savings figure + payback period for Meridian Industrial (load-bearing for every customer demo)
- •Sim-clock claims — defendable real-world durations per scene (compression ratios will get challenged in procurement)
- •Per-scene activity overlays — bespoke animations on more screens (connector tiles pulsing, fabric merging, radar populating, ledger tallying)
- •Recorder mode — dev-only "Record" button that captures route+dwell sequences into starter macros (productivity for us, not customers)
- •Refinement loop — run() op `proposeRefinement` is stubbed; V2 wires Anthropic → MacroSchema patch → human approval here before persist
- •Storage — flyby.json today is bundled in public/; move to Supabase Storage so narration edits don't require a deploy
- •Hero number + activity cue editing — currently UI edits narration only; structural fields stay JSON-edited