Circles
plan · act · observe · self-correct

Rehearse the conversation you're dreading.

A self-directing agent loop that role-plays the other person, watches where you break, and coaches you — until it decides you're ready.

▶ Live demo · vnmoorthy.github.io/circles Loop Engineering Hackathon · 2026
Pitch deck · 10 slides · use ← → keys
The problem

There's a conversation you keep not having.

🌈 Coming out

to a parent who's never talked about anything this personal.

🚪 Quitting

a job you're loyal to, without getting guilt-tripped into staying.

🫂 A diagnosis

telling your kid you're sick — honest, but still keeping them safe.

💔 Ending it

with someone you still love, without cruelty or false hope.

You rehearse it in the shower — and it falls apart the second they react in a way you didn't script. Practice partners are expensive, awkward, and never play the part convincingly.

The solution

Circles gives you the reps.

Describe the conversation. An agent becomes the other person — defensive, tearful, guilt-tripping, whatever they'll really be — and after every line you say, it tells you exactly where it landed and how to say it better.

🎭 It plays them

An in-character persona whose difficulty adapts to how you're doing — harder when you cope, gentler when you flounder.

👁 It watches you

A separate pass scores your clarity, empathy, and heat — and catches the moment you escalate or freeze.

✅ It decides you're ready

A Readiness score climbs across rounds; the loop self-terminates when you can actually walk in.

Why it fits the theme

The loop is the product.

Not a chatbot with a loop bolted on. Plan → act → observe → self-correct runs every round, and it's on screen the whole time.

01

🧠 Plan

model the other person + a difficulty setpoint from your spec.

→
02

💬 Act

you speak; the persona replies in character.

→
03

👁 Observe

score your message: clarity, empathy, heat, escalate/freeze.

→
04

✨ Self-correct

adapt difficulty, coach, update readiness. ↺ repeat.

↺ loops until readiness ≥ 80 across 3+ rounds — a stopping point the system chooses on its own.

The product

Legible. Live. Breakable on stage.

Circles product UI
📈 Readiness meter climbs to the converge line 🎛 Four-phase loop timeline lights up 🔧 "Throw a wrench" — a judge makes them rage/cry, live
Architecture

Pure engine core, swappable edges.

Circles system architecture
What makes it self-directing

The loop changes its own behaviour.

score = 0.42·clarity + 0.40·empathy + 0.18·tempScore − 22 if escalated − 26 if froze
Round scorePersona difficultyWhy
≥ 75+9 harderyou're handling it → build resilience
40–54−4 softerease off, keep you in the zone
< 40−11 gentleyou're floundering → scaffold, don't crush

Readiness is a smoothed signal, so one great round can't declare victory. All of it is pure and unit-tested — identical on stage as in CI.

Trust · sponsors

The most private data, handled right.

A coming-out, a divorce, a diagnosis. So privacy is built in, not bolted on — and the sponsor tools do real work.

🔒 Private by construction

The demo engine runs fully on-device. Real calls are PII-redacted; high-risk topics can't leave without explicit consent. Conversations are never stored.

🛡 Pomerium

Identity-aware, policy-gated egress at the runtime boundary — mirrored by the app's evaluateEgress().

☁ AWS Bedrock

Claude on Bedrock via a SigV4 signing proxy — a first-class provider, creds never in the browser.

⚡ Akash

Open, low-cost compute for the private inference proxy — no platform lock-in.

Why it wins the room

On-theme, unforgettable, demo-proof.

✅ Most on-theme

The self-correction is the product, visibly, with a stopping point the loop chooses itself.

❤️ Emotional ceiling

Judges have parents, kids, and hard talks of their own. They'll feel this one.

🔧 They break it themselves

"Throw a wrench" hands the wow moment to the audience — no take-it-on-faith.

🧪 Real, not vapor

Live credential-free demo, 37 green tests, CI + auto-deploy. It actually runs.

37 tests 100% on-device demo 3 model providers 0 secrets to try it
What's next

A safe circle to practice the hard ones.

🎙 Voice mode

Speak your lines; hear the persona.

📊 Debrief

Your patterns across every rehearsal.

📦 Persona packs

Shareable, self-hostable, on open compute.

Everyone has one. Circles is where you get it right — before it counts.

▶ vnmoorthy.github.io/circles github.com/vnmoorthy/circles
01 / 10