Skip to content

skyexry/PivotPointAI

Repository files navigation

PivotPoint AI

Office-to-residential conversion feasibility screening for CRE acquisition teams.

PivotPoint AI lets you upload any commercial floor plan PDF and get an instant Go/No-Go verdict — powered by Gemini's multimodal vision. The app reads the geometry of the floor plate, cross-references NYC or SF building codes, flags violation zones directly on the plan, and streams a plain-English executive summary in seconds.

Built as a prototype demo tool for PE analysts evaluating office conversion opportunities in New York City and San Francisco.


What it does

Step What happens
Upload Drag and drop a PDF floor plan (up to 50 MB)
Select city Choose NYC (NYC Zoning Resolution + Building Code) or SF (SF Planning Code)
Analyze Gemini 2.5 Pro reads the floor plan and scores it against residential conversion requirements
Results Go/No-Go score (0–100), annotated violation zones overlaid on the plan, and a streamed executive summary
Detail view Click any violation box for a zoomed view with the specific code citation and business implication

Demo moments

  1. Red box overlays — violation zones rendered directly on the PDF, numbered and clickable
  2. Animated score gauge — semicircular gauge sweeps from 0 to the feasibility score on load
  3. Streaming summary — executive risk summary types out character-by-character as Gemini responds

Tech stack

  • React 19 + TypeScript + Tailwind CSS 4
  • Gemini 2.5 Pro via @google/genai — multimodal PDF analysis with streaming
  • react-pdf + PDF.js — client-side PDF rendering with violation overlays
  • Recharts — RadialBarChart for the score gauge
  • Vite 6 — build tool

All analysis runs client-side. No backend required.


Local setup

Prerequisites: Node.js 18+

1. Clone and install

git clone https://github.com/skyexry/PivotPointAI.git
cd PivotPointAI
npm install

2. Add your Gemini API key

Create a .env.local file in the project root:

GEMINI_API_KEY=your_key_here

Get a free key at aistudio.google.com. The .env.local file is gitignored — your key will never be committed.

3. Run

npm run dev

Open http://localhost:3000.


Finding a good test floor plan

For a dramatic NO-GO result, use a 1970s–1990s Manhattan office building with a deep floor plate (> 60 ft core-to-window depth). Good examples:

  • 55 Water Street, NYC — extreme floor plate depth, near-certain NO-GO
  • 1221 Avenue of the Americas, NYC — classic postwar deep plate
  • One Penn Plaza, NYC — large floor plate with egress distance issues

Search "[building name]" "typical floor" filetype:pdf on Google, or find floor plan PDFs on LoopNet / CBRE listing pages.

For a GO result, search for pre-war NYC towers (1920s–1940s) with narrow rectangular plates — they were designed around natural light before fluorescent lighting existed.


Project structure

src/
├── components/
│   ├── ScreenUpload.tsx       # Screen 1 — PDF upload + city selector
│   ├── ScreenProcessing.tsx   # Screen 2 — phase indicators while Gemini runs
│   ├── ScreenDashboard.tsx    # Screen 3 — score gauge, annotated plan, summary
│   └── ScreenDetail.tsx       # Screen 4 — zoomed violation detail view
├── services/
│   └── ai.ts                  # Gemini API call, prompt, response parsing
├── types.ts                   # TypeScript interfaces
└── App.tsx                    # State machine routing between screens

Disclaimer

Confidential pre-screen only. Not a substitute for licensed architectural review.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors