Zoning Envelope 3D
A Claude Code skill that generates interactive 3D zoning envelope viewers as self-contained HTML files — exact lot polygons from GIS data, extruded buildable volumes, setback zones, height caps, and orbit controls.
What it does
Run /zoning-envelope after a zoning analysis to generate an interactive 3D viewer of the buildable envelope. The output is a self-contained HTML file — no server, no dependencies, opens in any browser.
Demo above: 250 Hudson Street, Manhattan — M1-6 / HSQ (C6-4A equivalent). Base volume (0–85 ft) + tower volume (85–290 ft) on the exact tax lot polygon from NYC MapPLUTO.
Workflow
/zoning-analysis-nyc 250 Hudson St, New York NY ← analysis (markdown report)
/zoning-envelope ← 3D viewer (HTML file)
The analysis skill produces a structured report with an Envelope Data JSON block containing the lot polygon, setbacks, volumes, and parameters. The envelope skill reads that block and renders it in 3D.
Install
Claude Desktop:
- Open Customize → Browse plugins
- Click + → Add marketplace from GitHub
- Enter
AlpacaLabsLLC/skills-for-architects - Install the Zoning Analysis plugin
Claude Code (terminal):
claude install github:AlpacaLabsLLC/skills-for-architects/02-zoning-analysis
Usage
Point it at a zoning analysis report:
/zoning-envelope path/to/zoning-analysis-250-hudson-st.md
Search by keyword:
/zoning-envelope 250 hudson
Auto-detect the most recent report:
/zoning-envelope
What it renders
- Exact lot polygon from GIS data — the real cadastral boundary, not a simplified rectangle
- Setback zones as colored ground overlays with dashed inset lines
- Buildable volumes — base, tower, galibo — extruded from the polygon at correct heights
- Height cap at maximum building height
- Edge-length labels on the lot boundary
- Parameters panel — FAR, floor area, height limits, setbacks
- Interactive controls — orbit, zoom, pan
How it handles different districts
| District type | Envelope shape |
|---|---|
| Height-factor (R7, C6-1) | Base box + sky exposure plane wedge |
| Contextual (R7A, C6-4A) | Streetwall base + setback tower |
| TONE (Uruguay) | Full lot with setback zones + flat height cap |
| Multi-scenario | Toggle buttons comparing individual, party-wall, and unified envelopes |
Technical details
The viewer is a single HTML file (~300 lines) with:
- Three.js 0.170 loaded from CDN via import map
- OrbitControls for interactive navigation
- Ear-clipping polygon triangulation for arbitrary lot shapes
- Self-correcting polygon inset (handles both CW and CCW winding from different GIS sources)
- Canvas-textured sprites for 3D labels
- Responsive — works on desktop, tablet, and mobile
NYC examples
Interactive 3D envelopes generated from real NYC zoning analyses:
| Property | Zoning | Lot | Max Floor Area | |
|---|---|---|---|---|
| 250 Hudson Street | M1-6 / HSQ (C6-4A equiv.) | 21,862 SF | 218,620 SF | View 3D → |
| 60 East 11th Street | C6-1 | 4,019 SF | 24,114 SF | View 3D → |
Each viewer is a self-contained HTML file — drag to orbit, scroll to zoom, right-drag to pan.
Dependency
This skill requires a zoning analysis report as input. Run /zoning-analysis-nyc first — then /zoning-envelope reads the output.