Visualizers

Learn by moving things

Interactive explainers for the ideas behind retrieval, embeddings, and agents. A formula tells you what is true; dragging a vector shows you why. Each one also appears inside the article it belongs to, and runs entirely in your browser, so drag, poke, and break it.

Portrait of Sachin Gupta rendered in binary

The citation review desk

From: Citations Are Not Evidence →

Review a fictional answer at Sachin. Follow citations, repair missing support, and inspect citation recall and precision using the same runnable scoring model.

Sachin · fictional review desk

Find the sentence behind the sentence.

Help Maya review the assistant’s answer. Change its citations and inspect the result.

answersourcefollow it, then check it

The link opens. Does the passage support the sentence?

Maya follows S2 and finds a receipt rule. Read both cards: where does the source establish 30 days?

Predict first. If a citation opens successfully, what have you actually checked?

An explorable evidence map

Step inside the citation.

Opening the 3D map…The passage controls work while it loads.
Retrieved context · 6 passages
? Citation without precision credit✓ Citation with precision credit

Drag to turn the view. Select a card to read it, or use the buttons below. Depth separates the answer from its retrieved context. Distance does not encode relevance.

Follow the evidence

A pointer is the start of a check.

C1 · Answer sentence

Standard items may be returned within 30 days of delivery.

S2 · Cited by this sentenceProof of purchase
A receipt is required for standard-item returns.
Does not establish the statement

S2 requires a receipt. It says nothing about 30 days. A relevant topic is insufficient support.

Try a different attachment.

S1 states the 30-day window for standard items. Replacing this sentence’s citations leaves the other three sentences unchanged.

Whole answer recall2/4
Whole answer precision2/3

Retrieved context: contains support for C1. Attached citations: do not fully support it.

What changed behind the scene?
{
  "statementId": "C1",
  "citations": [
    "S2"
  ],
  "citedSetSupports": false,
  "citationChecks": [
    {
      "id": "S2",
      "alone": false,
      "without": false,
      "precise": false,
      "reason": "The cited set does not support the whole statement, so this citation receives no precision credit."
    }
  ]
}

The buttons edit the citation ID list. The shared evaluator resolves those passages, reads their curated support judgments, then recalculates recall and precision. The curves draw that same list.

Compare the two paper cards
Answer · C1

Standard items may be returned within 30 days of delivery.

? Sentence lacks full citation support

0/1 citations receive precision credit on C1.

Click a citation to follow its pointer.
Source · S2 · cited here

Proof of purchase

A receipt is required for standard-item returns.

Does not establish the statement

S2 requires a receipt. It says nothing about 30 days. A relevant topic is insufficient support.

Answer citation recall2/4 50%

Supported sentences / all four sentences

Answer citation precision2/3 67%

Credited citations / all attached citations

Attach the evidence

Citing affects C1 only.

Inspect a source, then cite or remove it. Open “Compare the two paper cards” to drag a source title onto the answer card.

Check the whole answer

Choose a sentence to edit its citations. A source attached to C1 does not cover C3.

Whole context: The retrieved set contains support for C1. Its citations: do not fully support it. These are separate checks.

Inspect this decision: C1

1. Resolve IDs. These are versioned local excerpts. Span offsets use JavaScript string indices, with an inclusive start and exclusive end.

{
  "statement": {
    "id": "C1",
    "text": "Standard items may be returned within 30 days of delivery.",
    "citations": [
      "S2"
    ]
  },
  "citedPassages": [
    {
      "id": "S2",
      "text": "A receipt is required for standard-item returns.",
      "version": "sachin-demo-v1",
      "span": {
        "start": 0,
        "end": 48
      }
    }
  ]
}

2. Judge the meaning. This browser uses curated support sets for the fixed text above. It makes no model call. A real evaluator needs judgments for the full cited set, each citation alone, and the set with that citation removed.

3. Apply the rule. The whole set must support the sentence. A citation then gets precision credit if it supports the sentence alone, or if removing it loses full support.

{
  "wholeSetSupports": false,
  "citationChecks": [
    {
      "id": "S2",
      "alone": false,
      "without": false,
      "precise": false,
      "reason": "The cited set does not support the whole statement, so this citation receives no precision credit."
    }
  ],
  "answerRecall": {
    "numerator": 2,
    "denominator": 4,
    "value": 0.5
  },
  "answerPrecision": {
    "numerator": 2,
    "denominator": 3,
    "value": 0.6666666666666666
  }
}

4. Decide what to fix. Inspect the passage, correct the citation or narrow the claim, then recheck. A score supplies a review signal; it does not establish source reliability or external truth.

Download the same fixtures and scoring code ↓
Curated verdicts · local simulation · no live model

Each numbered exercise loads a starting setup. Changes stay in the current exercise until you reset or choose another.

The modern AI ecosystem (interactive)

Follow a document assistant or a tool-using agent from input to answer. Change a permission, inspect what happens, then explore the models, frameworks, and infrastructure behind each step, with reviewed official sources.

A field guide to building with AI

Different jobs. One working system.

Imagine a help desk at Sachin, our fictional company. A writer needs notes, tools, and someone to manage the work. Follow a request to see which part does which job.

The librarian supplies evidence; the writer answers. Steps 1 and 2 prepare the library before a question arrives.

Fictional data and simulated execution. The desks represent software roles; no model or external service is called here.

Step 1 of 6

Before a question · Step 1

Sachin's records clerk turns a returns policy into a labeled card.

Parse the document, divide it into chunks, and preserve its source and access metadata. This example has one document and one chunk.

Explore the tools for this step:
Inspect the input, rule, and output

Deterministic browser simulation. These fictional fixtures make no live model or service calls. The controls change the simulated policy.

Input
{
  "id": "D1",
  "title": "Returns policy",
  "tenantId": "sachin",
  "allowedGroups": [
    "support"
  ]
}
Rule

Keep each chunk linked to its source and policy.

Output
{
  "id": "C1",
  "documentId": "D1",
  "text": "Returns are accepted within 30 days."
}

Build it: Build and test a permission-aware answer service →

Curated snapshot · Reviewed . Model families are listed without fast-changing version numbers.

What changed in this edition?

Serving engines, model access, ingestion, evaluation, and tracing now have separate roles. New examples include SGLang, LiteLLM, Qwen, DeepSeek, Docling, Cohere Rerank, Claude Agent SDK, Bedrock AgentCore, and A2A. The selection is illustrative, not a ranking or a complete market inventory.

Why a parallel draft goes sloppy (auto-playing)

From: Draft, Then Verify →

A looping explainer, no clicking. Two replies fit equally well, 'of course' and 'no problem'. The autoregressive drafter picks one coherently; the parallel drafter, predicting both positions blind to each other, crossbreeds them into 'of problem'. Every word plausible alone, incoherent together.

Why a parallel draft fraysauto-playing
“Thanks!”reply could beof courseno problem
Autoregressive · one at a time
______
each token is chosen knowing the one before it
Parallel · both at once
______
each position predicted blind to the others

Someone says "Thanks!" The model will reply with two tokens.

Visualizers — Sachin Gupta