
shapely-compute
Computational geometry with Shapely - create geometries, boolean operations, measurements, predicates
- Installs
- 495
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/parcadei/continuous-claude-v3 --skill shapely-compute- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads shapely-compute automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Computational Geometry with Shapely
When to Use
- Creating geometric shapes (points, lines, polygons)
- Boolean operations (intersection, union, difference)
- Spatial predicates (contains, intersects, within)
- Measurements (area, length, distance, centroid)
- Geometry transformations (translate, rotate, scale)
- Validating and fixing invalid geometries
Quick Reference
| I want to... | Command | Example |
|---|---|---|
| Create geometry | create | create polygon --coords "0,0 1,0 1,1 0,1" |
| Intersection | op intersection | op intersection --g1 "POLYGON(...)" --g2 "POLYGON(...)" |
| Check contains | pred contains | pred contains --g1 "POLYGON(...)" --g2 "POINT(0.5 0.5)" |
| Calculate area | measure area | measure area --geom "POLYGON(...)" |
| Distance | distance | distance --g1 "POINT(0 0)" --g2 "POINT(3 4)" |
| Transform | transform translate | transform translate --geom "..." --params "1,2" |
| Validate | validate | validate --geom "POLYGON(...)" |
Commands
create
Create geometric objects from coordinates.
# Point
uv run python scripts/shapely_compute.py create point --coords "1,2"
# Line (2+ points)
uv run python scripts/shapely_compute.py create line --coords "0,0 1,1 2,0"
# Polygon (3+ points, auto-closes)
uv run python scripts/shapely_compute.py create polygon --coords "0,0 1,0 1,1 0,1"
# Polygon with hole
uv run python scripts/shapely_compute.py create polygon --coords "0,0 10,0 10,10 0,10" --holes "2,2 8,2 8,8 2,8"
# MultiPoint
uv run python scripts/shapely_compute.py create multipoint --coords "0,0 1,1 2,2"
# MultiLineString (pipe-separated lines)
uv run python scripts/shapely_compute.py create multilinestring --coords "0,0 1,1|2,2 3,3"
# MultiPolygon (pipe-separated polygons)
uv run python scripts/shapely_compute.py create multipolygon --coords "0,0 1,0 1,1 0,1|2,2 3,2 3,3 2,3"
op (operations)
Boolean geometry operations.
# Intersection of two polygons
uv run python scripts/shapely_compute.py op intersection \
--g1 "POLYGON((0 0,2 0,2 2,0 2,0 0))" \
--g2 "POLYGON((1 1,3 1,3 3,1 3,1 1))"
# Union
uv run python scripts/shapely_compute.py op union --g1 "POLYGON(...)" --g2 "POLYGON(...)"
# Difference (g1 - g2)
uv run python scripts/shapely_compute.py op difference --g1 "POLYGON(...)" --g2 "POLYGON(...)"
# Symmetric difference (XOR)
uv run python scripts/shapely_compute.py op symmetric_difference --g1 "..." --g2 "..."
# Buffer (expand/erode)
uv run python scripts/shapely_compute.py op buffer --g1 "POINT(0 0)" --g2 "1.5"
# Convex hull
uv run python scripts/shapely_compute.py op convex_hull --g1 "MULTIPOINT((0 0),(1 1),(0 2),(2 0))"
# Envelope (bounding box)
uv run python scripts/shapely_compute.py op envelope --g1 "POLYGON(...)"
# Simplify (reduce points)
uv run python scripts/shapely_compute.py op simplify --g1 "LINESTRING(...)" --g2 "0.5"
pred (predicates)
Spatial relationship tests (returns boolean).
# Does polygon contain point?
uv run python scripts/shapely_compute.py pred contains \
--g1 "POLYGON((0 0,2 0,2 2,0 2,0 0))" \
--g2 "POINT(1 1)"
# Do geometries intersect?
uv run python scripts/shapely_compute.py pred intersects --g1 "..." --g2 "..."
# Is g1 within g2?
uv run python scripts/shapely_compute.py pred within --g1 "POINT(1 1)" --g2 "POLYGON(...)"
# Do geometries touch (share boundary)?
uv run python scripts/shapely_compute.py pred touches --g1 "..." --g2 "..."
# Do geometries cross?
uv run python scripts/shapely_compute.py pred crosses --g1 "LINESTRING(...)" --g2 "LINESTRING(...)"
# Are geometries disjoint (no intersection)?
uv run python scripts/shapely_compute.py pred disjoint --g1 "..." --g2 "..."
# Do geometries overlap?
uv run python scripts/shapely_compute.py pred overlaps --g1 "..." --g2 "..."
# Are geometries equal?
uv run python scripts/shapely_compute.py pred equals --g1 "..." --g2 "..."
# Does g1 cover g2?
uv run python scripts/shapely_compute.py pred covers --g1 "..." --g2 "..."
# Is g1 covered by g2?
uv run python scripts/shapely_compute.py pred covered_by --g1 "..." --g2 "..."
measure
Geometric measurements.
# Area (polygons)
uv run python scripts/shapely_compute.py measure area --geom "POLYGON((0 0,1 0,1 1,0 1,0 0))"
# Length (lines, polygon perimeter)
uv run python scripts/shapely_compute.py measure length --geom "LINESTRING(0 0,3 4)"
# Centroid
uv run python scripts/shapely_compute.py measure centroid --geom "POLYGON((0 0,2 0,2 2,0 2,0 0))"
# Bounds (minx, miny, maxx, maxy)
uv run python scripts/shapely_compute.py measure bounds --geom "POLYGON(...)"
# Exterior ring (polygon only)
uv run python scripts/shapely_compute.py measure exterior_ring --geom "POLYGON(...)"
# All measurements at once
uv run python scripts/shapely_compute.py measure all --geom "POLYGON((0 0,2 0,2 2,0 2,0 0))"
distance
Distance between geometries.
uv run python scripts/shapely_compute.py distance --g1 "POINT(0 0)" --g2 "POINT(3 4)"
# Returns: {"distance": 5.0, "g1_type": "Point", "g2_type": "Point"}
transform
Affine transformations.
# Translate (move)
uv run python scripts/shapely_compute.py transform translate \
--geom "POLYGON((0 0,1 0,1 1,0 1,0 0))" --params "5,10"
# params: dx,dy or dx,dy,dz
# Rotate (degrees, around centroid by default)
uv run python scripts/shapely_compute.py transform rotate \
--geom "POLYGON((0 0,1 0,1 1,0 1,0 0))" --params "45"
# params: angle or angle,origin_x,origin_y
# Scale (from centroid by default)
uv run python scripts/shapely_compute.py transform scale \
--geom "POLYGON((0 0,1 0,1 1,0 1,0 0))" --params "2,2"
# params: sx,sy or sx,sy,origin_x,origin_y
# Skew
uv run python scripts/shapely_compute.py transform skew \
--geom "POLYGON(...)" --params "15,0"
# params: xs,ys (degrees)
validate / makevalid
Check and fix geometry validity.
# Check if valid
uv run python scripts/shapely_compute.py validate --geom "POLYGON((0 0,1 0,1 1,0 1,0 0))"
# Returns: {"is_valid": true, "type": "Polygon", ...}
# Fix invalid geometry (self-intersecting, etc.)
uv run python scripts/shapely_compute.py makevalid --geom "POLYGON((0 0,2 2,2 0,0 2,0 0))"
coords
Extract coordinates from geometry.
uv run python scripts/shapely_compute.py coords --geom "POLYGON((0 0,1 0,1 1,0 1,0 0))"
# Returns: {"coords": [[0,0],[1,0],[1,1],[0,1],[0,0]], "type": "Polygon"}
fromwkt
Parse WKT and get geometry information.
uv run python scripts/shapely_compute.py fromwkt "POLYGON((0 0,1 0,1 1,0 1,0 0))"
# Returns: {"type": "Polygon", "bounds": [...], "area": 1.0, ...}
Geometry Types
point- Single coordinate (x, y) or (x, y, z)line/linestring- Sequence of connected pointspolygon- Closed shape with optional holesmultipoint,multilinestring,multipolygon- Collections
Input Formats
- Coordinates string:
"0,0 1,0 1,1 0,1"(space-separated x,y pairs) - WKT:
"POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))"
Output Format
All commands return JSON with:
wkt: WKT representation of result geometrytype: Geometry type (Point, LineString, Polygon, etc.)bounds: (minx, miny, maxx, maxy)is_valid,is_empty: Validity flags- Measurement-specific fields (area, length, distance, etc.)
Common Use Cases
| Use Case | Command |
|---|---|
| Collision detection | pred intersects |
| Point-in-polygon | pred contains |
| Area calculation | measure area |
| Buffer zones | op buffer |
| Shape combination | op union |
| Shape subtraction | op difference |
| Bounding box | op envelope or measure bounds |
| Simplify path | op simplify |
Related Skills
/math-mode- Full math orchestration (SymPy, Z3)/math-plot- Visualization with matplotlib
FAQ
What does the shapely-compute skill do?
Computational geometry with Shapely - create geometries, boolean operations, measurements, predicates
How do I install shapely-compute?
Run npx skills add https://github.com/parcadei/continuous-claude-v3 --skill shapely-compute in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/shapely-compute/ (personal) or .claude/skills/shapely-compute/ (project).
Which AI agents can use shapely-compute?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is shapely-compute safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains shapely-compute?
It is published by parcadei in parcadei/continuous-claude-v3. It has 495 recorded installs.
More from parcadei/continuous-claude-v3
discovery-interview
parcadei/continuous-claude-v3
Deep interview process to transform vague ideas into detailed specs. Works for technical and non-technical users.
premortem
parcadei/continuous-claude-v3
Identify failure modes before they occur using structured risk analysis
math
parcadei/continuous-claude-v3
Unified math capabilities - computation, solving, and explanation. I route to the right tool.
github-search
parcadei/continuous-claude-v3
Search GitHub code, repositories, issues, and PRs via MCP
dead-code
parcadei/continuous-claude-v3
Find unused functions and dead code in the codebase
refactor
parcadei/continuous-claude-v3
Code refactoring workflow - analyze → plan → implement → review → validate
Popular other skills
hyperframes-cli
heygen-com/hyperframes
The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.
triage
mattpocock/skills
Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.
ask-matt
mattpocock/skills
Ask which skill or flow fits your situation. A router over the skills in this repo.
to-questionnaire
mattpocock/skills
Turn a decision you can't fully answer into a questionnaire for someone else to fill in.
loop-me
mattpocock/skills
Grill me about specs for the workflows I want to build, within this workspace.