Skip to content

Crux

Crux — find the crux of why papers disagree, entirely on your device.

Core trick

Runs a local Gemma claim extractor that requires each claim to match a verbatim quote in the source, then pairs comparable claims across papers.

Tags

Description

Crux — find the crux of why papers disagree, entirely on your device. Every research tool (Elicit, Consensus, scite) tells you *that* papers disagree. None tells you *why* — and with students and researchers now drafting papers with AI, people cite results that quietly conflict without ever knowing. Worse, the papers that most need checking — unpublished drafts — are exactly the ones you can't paste into a cloud chatbot. Crux is a local-first research agent built on Gemma 4 (E4B, on-device via Ollama). Drop 2–3 PDFs and it runs a full sense → decide → act → check loop: - Sense — extracts structured claims on-device; every claim must carry a verbatim quote verified string-for-string against the source, so hallucinated claims are structurally impossible. A deterministic pattern miner backstops the small model so headline numbers are never missed. - Decide — pairs comparable claims across papers (including scaling-law coefficients by their role in the equation, not by dataset) and adjudicates each pair precision-first: 1.00 precision, zero false contradictions on our labeled eval. - Act — the agent autonomously designs a POPPER-style falsification experiment (H₀/H₁, held-fixed variables, decision rule) for the top contradiction — no click needed. - Check & recover — failed chunks retry locally with expanded boundaries (streamed live); low-confidence numeric claims are explicitly handed off to the human. A narrated, timed agent worklog shows every step. A hard Local / Auto / Cloud selector enforces routing per-request; every verdict carries an engine badge showing what produced it. Pull the WiFi — extraction, verdicts, and experiments keep working. Flagship demo: Kaplan et al. 2020 (N ∝ C^0.73) vs DeepMind's Chinchilla / Hoffmann et al. 2022 (a ≈ 0.50). Crux rediscovers the most consequential contradiction in modern ML on a laptop, and designs the experiment that settles it. Stack: Gemma 4 E4B on-device · hosted Gemma 4 31B escalation · Gemini 3 Flash (reconcile/experiment) · Gemini Flash (grounded chat) · Next.js 15 · also ships as an installable Electron app. Live: https://crux-two-phi.vercel.app (cloud preview — the full on-device loop runs locally / in the video). Sample contradictory-paper library included in the repo.
TeenTornado/crux★ 00 forksTypeScriptMITCreated Jul 9, 2026 · last push Jul 11, 2026

README excerpt

# Crux

### Find the crux of *why* papers disagree — and the experiment that settles it.

**Every existing tool tells you _that_ papers agree or disagree. Crux tells you _why_ — and generates the experiment that would settle it.**

An AI research assistant that ingests academic papers, extracts structured claims into a visual **evidence graph**, distinguishes genuine contradictions from *context-conditioned divergences*, and generates rigorous, POPPER-style falsification experiments to resolve them.

Built for the Google DeepMind Bangalore Hackathon on Google's stack: **Gemma 4** (on-device claim extraction), **Gemini 3 Flash** (reconciliation + experiment generation with a thinking budget), and **Gemini Flash** (grounded chat).

![Crux landing](docs/screenshots/01-hero.png)

### The workspace — evidence graph, reconciliation, experiment

Load 2–3 papers, watch claims stream in, and the graph builds itself. Click a red edge to see *why* two papers conflict; click a tile to jump to the strongest one.

![Workspace](docs/screenshots/03-workspace.png)

| Home (start a session) | Grounded chat | Source provenance |
|---|---|---|
| ![Home](docs/screenshots/02-home.png) | ![Conversation](docs/screenshots/06-conversation.png) | ![Source viewer](docs/screenshots/07-source-viewer.png) |

| How it works | How it's different |
|---|---|
| ![How it works](docs/screenshots/04-how-it-works.png) | ![Comparison](docs/screenshots/05-comparison.png) |

---

## The agent loop — Local-First on Ge

Team