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):

  1. Unstructured.io for PDF parsing.
  2. Google Gemini embedding-001 for 768-dim vectors.
  3. UMAP for dimensionality reduction into 2D.
  4. Isolation Forest (via PyOD) for anomaly scoring.
  5. 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+F waits 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.

Share this project:

Updates

Submission history