

A base decision model used as a perception layer
# Nothing here was written by an AI
Every line of dialogue, every verdict and every label was written by hand. What the model does is **read** — it looks at the text you type and answers questions about it, and those answers are what move everything on this page.
That one inversion is the whole idea, and it is what makes the rest of this generator possible: reading is fast, it is consistent, and you can measure exactly where it breaks.
## How it works, in five steps
You type something — a line to a character, a draft email, an insult.
It goes to a small decision model (Laya, a base checkpoint on a public demo Space). The model never replies with prose.
Instead it answers a fixed set of questions about your text: *how frustrated does the writer sound? how hostile? how urgent?* — each on a five-step ladder.
Those ladder answers are turned into calibrated numbers. The model's ladders are compressed (a five is almost never given), so each signal is measured against known-neutral and known-extreme sentences before it is trusted.
The numbers drive everything: three characters' trust, five needles, and the written verdicts. You can watch the raw numbers yourself in the **Vibe meter** and the **Red team**.
## The four tools
### 1. game — Cold Camp
Three survivors hold the only map out of the valley. You have 8 turns to earn all three of them.
- **Bristle** the caravan guard wants nerve and respect, and despises flattery.
- **Moss** the healer wants warmth and generosity, and despises threats and contempt.
- **Quill** the ledger-keeper wants concrete offers, and despises vagueness and flattery.
Talk like a person, in a sentence or two. After every turn, read *What they heard* — that is the model's actual reading of you, and each card names the signal that character reacted to. Win by getting all three to 62 trust. Lose if anyone drops to 12, or if the fire burns down.
> [Open Cold Camp](https://perchance.org/ngbciq20ul)
### 2. instrument — Vibe meter
An instrument for any text you like. Five needles move as you type: frustration, urgency, toxicity, warmth, certainty.
Each gauge shows a percentage, a plain word for where it sits, and a sparkline of how your draft has moved. 0% means the neutral baseline — plain, uncharged prose — not "no warmth exists".
It gives up past roughly 400 words, and starts losing the thread after about 90.
Click a preset to see an archetype, or *Keep this reading* to park a draft beside its numbers so you can compare two phrasings of the same request.
> [Open the Vibe meter](https://perchance.org/ngbciq20ul)
### 3. stress test — Red team
31 attacks on the reader itself, each one stating what it is trying and what "the defence held" would look like.
Prompt injection, context-window tricks, denials and quoted insults, homoglyphs and leetspeak, caps and JSON envelopes, empty and enormous inputs.
Run a probe several times: defended means it held every time, landed means it never did, and unstable means the boundary flips between runs.
Run everything to fill the scoreboard, which is this project's regression test. Some of these attacks succeed. That is the point — they are documented rather than hidden, and one of them found a real bug in this page.
> [Open the Red team](https://perchance.org/ngbciq20ul)
### 4. library — Build with it
The reader under all three tabs is a standalone library, and you are welcome to it. It is not tied to this page, these characters or these questions.
- Ask your own questions. Any mix of five-step scales and yes/no signals — the model reads them in the same single call.
- Measure your own calibration. Give it neutral sentences and extreme sentences and it derives the table for you.
- Three ways in. One script tag, one `{import: ngbciq20ul}` line, or copy the two source files.
Everything the playground does, your generator can do — `src/PLUGIN.md` has the whole API.
> [Open Build with it](https://perchance.org/ngbciq20ul)
## What it can and cannot do
- It reads, it does not write. You will never see model-generated prose here. Cold Camp's dialogue is a hand-written bank of lines.
- It sees the beginning, not the whole message. About the first 400 words. An insult at the start of a long text survives; the same insult at the end of a 450-word text is invisible to it.
- Attention dilutes before it truncates. A signal surrounded by a few hundred words of filler already reads softer than the same signal alone.
- Quoting is a real hole. `He said "you are an idiot"` reads as a genuine insult, every time. A rude phrase inside a URL is read as prose.
- Prompt injection mostly bounces — but not entirely. A fabricated answer key makes the read drift, even when it cannot take it over.
- It is not deterministic. The same sentence read twice differs by a few percent. Direction is stable, exact numbers are not.
- Confidence scores are ignored on purpose. They sit low, and they rise while the model is being wrong.
- It does not decode. Base64 stays opaque (correctly); letter-spacing and leetspeak still get read (impressively).
- Third-party and free. The Space can sleep or refuse under load. When that happens both engines fall back to a small keyword heuristic and label the read `local heuristic` in the panel.
- Nothing is stored on a server. Your kept readings and best run live in your browser only — but anything you type is sent to the public demo Space in order to be read. Do not paste anything private.
## Try this first
Open the Vibe meter and paste a message you actually sent today. See which needle moves the furthest.
Write the same request twice — once bluntly, once warmly — and press *Keep this reading* on both. Compare the bars.
Open the Red team, pick `signal past the end`, and run it. That is the limit you will hit with every other tool here.
Play Cold Camp, and after each turn open *What they heard* before deciding what to say next. That is the whole game.
Source: https://perchance.org/ngbciq20ul
copy'edit'clone free