Skip to main content

stlToSolid

Turn an STL or OBJ mesh into a real solid you can model against in Fusion 360.

User manual: how to use each tool and what every setting does, with screenshots. Also as a PDF and on the website at stltosolid.com/docs.

Why

I design 3D-printed parts as a hobby, and I kept needing to model around a mesh: a bracket from Thingiverse, a scanned housing, a controller shell. Fusion 360's free tier turns a mesh into a solid made of thousands of little triangles. You can't sketch on it, measure it or build on it.

stlToSolid gives you flat faces, round holes and smooth curves instead, so the part behaves like something you modelled yourself.

Before and after

The same servo_bracket_1.stl, opened in Fusion 360 three ways. Left: Fusion's own Mesh → Solid (every triangle becomes a face). Middle: the STL mesh as loaded. Right: the STEP from stlToSolid, with 23 faces, planes and cylinders, and holes that are real holes.

Fusion Mesh to Solid (left), the STL mesh (middle) and the stlToSolid STEP (right)

Fusion Mesh to Solid, zoomed Fusion Mesh → Solid, zoomed in: one face per triangle, so the "solid" carries all 1,644 facets and cannot be sketched on, filleted or measured like a modelled part. stlToSolid STEP, zoomed stlToSolid, zoomed in: flat faces are single planes, the blend is one cylinder, the edges are where the design has them.

In the app

Mesh loaded, acceptance gate and options Mesh loaded, with units and quality limits. Prismatic result Servo bracket: 1,644 triangles → 23 faces (15 planes, 8 cylinders), max deviation 0.060 mm.
Face-group result: frame Frame with countersinks: 4,200 triangles → 101 faces, max deviation 0.040 mm. Face-group result: joystick claw Joystick claw: 1,902 triangles → 250 faces, including 43 cylinders and 20 spheres.

The four tools

  • Mesh → Solid. Drop in a mesh and get a STEP file with real planes, cylinders, cones and fillets. Simple parts also come with a Fusion script that rebuilds them as editable sketches and extrudes.
  • Sliced Loft. For smooth, rounded shapes like caps, handles and shells. It slices the mesh into outlines and lofts them into one smooth solid.
  • X-Ray. Traces a stack of outlines between two planes and gives you a Fusion script with one sketch per slice. It can also extrude the slices into a stepped solid.
  • Blueprint. Starts from a picture, not a mesh. Drop in a dimensioned drawing, and an AI model of your choice reads the numbers and builds a parametric Fusion script and a STEP. You can fix any number it misread. It then looks at its own build from four sides and corrects what differs from the drawing; a part with bends, blends or tilted bosses, which the parametric recipe cannot draw, it writes as a short CadQuery script instead (STEP only).

Results open in Fusion 360 (or any CAD program that reads STEP).

There is also a Fusion 360 add-in, Mesh to Outline (coming soon), that does the X-Ray tracing inside Fusion itself. The user manual has a step-by-step guide for every tool, the add-in included.

Get it

Mac (Apple Silicon) Download the app from Releases. No Python or Docker needed.
Windows (64-bit) Download from Releases. Unzip and open.
Your NAS or a server One Docker container you open from any browser: docker compose up --build, then go to http://localhost:8321. Step-by-step NAS guide: docs/DEPLOY-NAS.md.
Command line pip install stltosolid then stltosolid part.stl makes part.step.
An AI assistant Claude, Cursor or any MCP client can drive every tool. See below.

The Mac and Windows apps are the same app as the web version, in their own window.

Running a Fusion script

Some results come with a .py script for Fusion 360. To run one:

  1. Put the .py file in an empty folder.
  2. In Fusion: Utilities → Add-Ins → Scripts and Add-Ins → +, and pick that folder.
  3. Press Run.

Use it from an AI assistant

stlToSolid is also an MCP server. An assistant can look at a mesh, convert it, read the report, slice it, and build a part from a drawing it reads itself. Everything runs on your computer. Nothing is uploaded, and no API key is needed.

claude mcp add stltosolid -- uvx --python 3.12 --from "stltosolid[mcp]" stltosolid-mcp

For Claude Desktop, Cursor and others, put this in the client's MCP settings:

{
  "mcpServers": {
    "stltosolid": {
      "command": "uvx",
      "args": ["--python", "3.12", "--from", "stltosolid[mcp]", "stltosolid-mcp"]
    }
  }
}

You need uv. The first start downloads the geometry kernel, about 2.8 GB, so run this once in a terminal first. It installs everything and tests it. Later starts take under a second.

uvx --python 3.12 --from "stltosolid[mcp]" stltosolid-mcp --check

Results go to ~/stlToSolid/mcp-output, and nothing is ever overwritten. The user manual lists the tools, the one-click Claude Desktop bundle and the remote mode for a NAS.

More detail

Using the app: the user manual (PDF) walks through every tool and every setting.

How it works inside: how each tool works, every setting, the API, measured results and the version history are in docs/TECHNICAL.md.

Licence

PolyForm Noncommercial 1.0.0. See LICENSE. Free for personal, hobby, educational and research use. Commercial use needs the author's permission, so get in touch.

Third-party parts keep their own licences (CadQuery Apache-2.0, OpenCascade LGPL-2.1 with exception, trimesh MIT, shapely/networkx BSD). The optional scan extra installs pymeshlab, which is GPL-3.0. It is not part of this package's licence and is only installed if you ask for it.

Metadata

Release files for stltosolid 0.6.1

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

Source distribution (sdist)

Source distribution for stltosolid 0.6.1
File Size Uploaded Provenance Actions
stltosolid-0.6.1.tar.gz 395.6 kB Without provenance Details for stltosolid-0.6.1.tar.gz

Built distribution (wheel)

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

Total release size: 711.2 kB

Release files / stltosolid-0.6.1.tar.gz

Download URL stltosolid-0.6.1.tar.gz
Size 395.6 kB
Tags Source
SHA-256 checksum
How to use checksums
bbff04a3d5a6f9d421bf2331176fe3c63a834e22003833bb41e20ac8226b7fb1
BLAKE2b-256 checksum
How to use checksums
bb757188b5d32559465e692767e7907e28713bb8557203cedc6ee2c0d334d429
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / stltosolid-0.6.1-py3-none-any.whl

Download URL stltosolid-0.6.1-py3-none-any.whl
Size 315.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
df869d5eaa903268e03ed57c4f803d48a93b146525ee2651de53a1e0f2a37cf6
BLAKE2b-256 checksum
How to use checksums
eb086d89d00114cdefbaef5c10ce67d8586507613581f7bac51d72a208316338
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"26.04","id":"resolute","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for stltosolid 0.6.1

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.6.1 This release

2 release files No provenance

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