Skip to main content

CADVERT

Turn CAD files into something an AI can actually read.

A STEP file is a boundary representation — dense surface equations and topology built for CAD kernels, not for language models. Paste one into an LLM and it chokes; show it a screenshot and the model can see the shape but can't tell you the wall is exactly 11.000 mm thick. In engineering, the number is the point.

CADVERT reads the CAD file directly and extracts the exact geometry the engineer authored — dimensions, holes, fillets, wall thicknesses, tolerances — as clean, structured text (and other representations) any model can reason over. Geometry is analytical, straight from the B-REP — never tessellated or approximated.

pip install cadvert

Quick start

import cadvert

result = cadvert.analyze("bracket.step")

print(result.to_text())     # LLM-ready structured document (the flagship)
result.to_dict()            # JSON-safe analysis for quoting / CI / DBs
result.to_json()
result.to_graph()           # networkx face-adjacency graph  (GNN / UV-Net)
result.to_points(2048)      # (N,3) surface point cloud       (PointNet / 3D-CNN)

Example to_text() output:

PART: bracket
[GLOBAL PROPERTIES]
Bodies: 1  |  Faces: 8  |  Edges: 18
Bbox: X[0,60]  Y[0,40]  Z[0,20]
[FEATURES]
  hole_1: THROUGH HOLE  d=8.000mm  depth=20.000mm  [5/16"]
  pattern_1: PATTERN  2× through hole  d=8.000mm
[SPATIAL RELATIONSHIPS]
  Wall thickness: hole_1 bore → outer surface = 11.000 mm

Supported formats

Extension Pipeline Notes
.step .stp Full B-REP Features, spatial, GD&T (AP242)
.iges .igs Full B-REP Features, spatial
.brep Full B-REP Features, spatial
.stl .obj Mesh Global properties + point cloud
.dxf 2D drawing Entities, layers, dimensions, text

Representations

Method Output For
.to_text() Structured text Prompting an LLM (Claude, GPT)
.to_dict() / .to_json() JSON Quoting engines, CI checks, databases
.to_graph() networkx graph Graph neural networks
.to_points(n) (N,3) array PointNet, 3D CNNs

Optional extras

pip install cadvert[graph]   # networkx  → .to_graph()
pip install cadvert[mesh]    # trimesh   → area-weighted .to_points(), OBJ
pip install cadvert[dxf]     # ezdxf     → .dxf drawings
pip install cadvert[server]  # FastAPI REST server + web UI
pip install cadvert[llm]     # OpenAI semantic enrichment
pip install cadvert[full]    # everything

CLI

cadvert part.step -o out.hsd.txt      # convert to an HSD document
cadvert-server                        # REST API on http://localhost:8000

Building an AI CAD tool

Register analyze as a tool in your LLM framework and the model can answer questions about real parts using real dimensions:

def analyze_cad(file_path: str) -> str:
    return cadvert.analyze(file_path).to_text()

Requires Python 3.10+. Core install ships cadquery-ocp (OCCT bindings) and numpy — no other heavy dependencies.

Metadata

Release files for cadvert 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cadvert 0.2.0
File Size Uploaded
cadvert-0.2.0.tar.gz 103.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cadvert 0.2.0
File Interpreter ABI Platform
cadvert-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 208.3 kB

Release files / cadvert-0.2.0.tar.gz

Download URL cadvert-0.2.0.tar.gz
Size 103.8 kB
Tags Source
SHA-256 checksum
How to use checksums
476aeab32aba4f4609cbd91f7a3be282353c0ba1cd2b3bec5bc2a719d75ab8b0
BLAKE2b-256 checksum
How to use checksums
1237a8f4c9b7c893aef5330899bc41430db6891e7481529a6197812d70ac1750
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 21, 2026.

Transparency log

Release files / cadvert-0.2.0-py3-none-any.whl

Download URL cadvert-0.2.0-py3-none-any.whl
Size 104.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
08073f564464145c4a6d6c3bf4bbc2cdeb8a9ea3304af0c935071156a6211d75
BLAKE2b-256 checksum
How to use checksums
e16e78f51383dc9c60783160fcfdc15ca2b0626d7fb605a6769d7176661f913f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 21, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.1

2 release files

0.3.0

2 release files

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page