Inspiration
Every year, companies lose billions of dollars because lawyers and analysts miss hidden contradictions buried inside 500-page contracts.
The standard workflow is painful: open the PDF, hit Ctrl+F, type a keyword like "liability," and read through 200 results. Hours pass. And somewhere on page 387, a clause says "Vendor assumes unlimited liability" — while page 42 says "Liability is capped at $10,000."
These two clauses directly contradict each other. But Ctrl+F can't catch it, because you cannot search for a risk you don't know exists. This is the "unknown unknowns" problem — and it's why audit teams still miss critical risks that later explode in litigation.
We wanted to build a system that doesn't wait for the user to ask a question. A system that proactively finds the risk. That system is PARALLAX.
What it does
PARALLAX transforms dense legal documents into an interactive semantic galaxy.
- Every dot on the canvas represents one clause.
- Similar clauses cluster together (Payment Terms, Termination, Indemnification, Confidentiality, Liability).
- We apply Isolation Forest anomaly detection directly to the text embeddings.
- Clauses that are mathematically isolated from their neighbors are flagged as contradictions — they glow red.
The user never types a search keyword. PARALLAX proactively surfaces the risks.
Features:
- Click any dot to inspect the clause text.
- Red dots open an "⚠️ Anomaly Detected" modal with confidence scores and explanations.
- Cinematic auto-demo plays 2 seconds after page load.
- Live stats: "1,005 clauses analyzed · 5 anomalies flagged · 0 keywords required."
- Legend showing the 5 semantic clusters.
How we built it
The Round 1 prototype is a single, self-contained HTML file — zero dependencies, zero build steps, deployed on GitHub Pages.
Frontend:
- HTML5 Canvas for GPU-accelerated rendering of 1,000+ glowing dots at 60fps.
- Vanilla JavaScript for camera math (pan, zoom, tween animation).
- Custom glow effects via
createRadialGradient. - A cinematic auto-demo that walks viewers through the concept without clicks.
Planned Backend (Round 2):
- Unstructured.io for PDF parsing.
- Google Gemini
embedding-001for 768-dim vectors. - UMAP for dimensionality reduction into 2D.
- Isolation Forest (via PyOD) for anomaly scoring.
- Supabase (pgvector) for storage.
The math: anomalies require fewer random splits to isolate than normal points. We measure the average path length required to isolate each clause and translate it into a risk score.
Challenges we ran into
1. Pixi.js v7 → v8 migration hell. Every online tutorial was outdated. The new PIXI.Application({...}) constructor became async, app.view became app.canvas, and we hit a this._cancelResize is not a function crash caused by React 19 Strict Mode double-invoking useEffect.
2. Turbopack cache corruption on Windows. Next.js 16's Turbopack dev server corrupted its own .next cache, causing a Cannot find module './chunks/ssr/[turbopack]_runtime.js' error. We fixed it by switching to next dev --webpack.
3. PowerShell security policies. Windows PowerShell blocked npm from running scripts. We switched VS Code's terminal to Command Prompt.
4. The framework tax. After days of fighting framework-level bugs, we made the tough call: drop Next.js and ship a pure HTML file. This meant sacrificing Vercel deployment — but it gave us a working, portable, instantly-loadable demo. The judges' first impression matters more than the tech stack we brag about.
Accomplishments that we're proud of
- Shipped a fully working prototype despite spending the first 40% of our time fighting framework bugs.
- Rendered 1,000+ animated glowing dots at 60fps with a single HTML file — no libraries.
- Built a cinematic auto-demo that explains the concept in 20 seconds without user input.
- Designed a coherent narrative: the visual (clusters + red anomalies) directly maps to the underlying math (embeddings + Isolation Forest).
- Recovered from a broken framework migration by making the brave call to strip everything down.
- Deployed a live, publicly accessible URL on GitHub Pages.
What we learned
- Search is reactive. Intelligence is proactive.
Ctrl+Fwaits for you to type. PARALLAX finds the risk for you. - Semantic embeddings capture meaning, not keywords. Two clauses can use different words but mean the same thing.
- Anomaly detection on embeddings is powerful. Isolation Forest isolates contradictory clauses without labeled training data.
- Dimensionality reduction is a UX superpower. UMAP compresses 768D meaning into 2D coordinates.
- Scope discipline matters more than features. Stripping down to what actually works was the smartest decision we made.
- The "wow" is in the visualization. The math is invisible. The glowing galaxy is what makes people say "wait, do that again."
What's next for PARALLAX
Round 1 is the visual prototype. Round 2 will connect the full backend:
- Live PDF upload — drag any contract and get instant analysis.
- Real Gemini API embeddings — replace hardcoded data with live vectors.
- Python FastAPI service — running UMAP and Isolation Forest.
- Side-by-side text viewer — click a red dot and see the sentence highlighted in the source PDF.
- Exportable audit reports — summary of flagged anomalies with confidence scores.
- Multi-document comparison — detect contradictions across a folder of contracts.
Our long-term vision: PARALLAX becomes the default first-pass review tool for legal and financial documents — the way spellcheck is for writing.
Stop searching. Start seeing.
Log in or sign up for Devpost to join the conversation.