cascadio
Convert STEP files to GLB using OpenCASCADE
What it is and what it does
Cascadio is a minimal Python wrapper around OpenCASCADE that converts STEP (Stereolithography and CAD Exchange Format) files into GLB (glTF binary) format. It focuses on the practical problem of loading boundary representation (BREP) CAD geometry into Python for analysis and visualization without requiring users to build OpenCASCADE themselves. Unlike full OpenCASCADE bindings, cascadio is deliberately narrow in scope: it takes a STEP file and produces a triangulated mesh that can be immediately loaded by trimesh and other 3D libraries.
The package's main value is in its build and packaging infrastructure. It uses scikit-build-core and cibuildwheel to produce pre-compiled wheels for multiple platforms and Python versions, eliminating the compilation burden on end users. This makes it practical to use OpenCASCADE—the de facto open-source BREP kernel—without the typical friction of building C++ dependencies. The library is actively maintained and supports Python 3.9 through 3.14.
Use it for:
- Load STEP files from CAD systems into Python for geometric analysis on triangulated meshes without needing FreeCAD or GMSH.
- Convert legacy CAD geometry to GLB for visualization in web-based 3D viewers or game engines.
- Batch-process STEP files into mesh format for machine learning pipelines that work with 3D geometry.
- Integrate CAD model import into Python scientific computing workflows that rely on trimesh or similar mesh libraries.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Converts STEP files to GLB (glTF binary) format using OpenCASCADE, enabling rapid loading of 3D CAD geometry into Python via trimesh and similar libraries.
Yes, if you need to load STEP files into Python and want to avoid building OpenCASCADE yourself. The pre-built wheels and active maintenance make it a practical choice. Pin your version carefully due to PyPI size constraints and the possibility of older releases being removed. Not necessary if you already have FreeCAD or GMSH integrated into your workflow.
Install
cascadio on PyPI
pip
pip install cascadiouv
uv add cascadiopoetry
poetry add cascadioInstalling cascadio
Before you install
Medium install friction due to compiled wheels; the package is actively maintained with recent releases. Wheels are pre-built for Linux (non-MUSL), Windows x64, and macOS (x64 and ARM), eliminating the need to compile OpenCASCADE locally. Note: PyPI has size constraints and older versions may be deleted; pinning to a stable release is recommended.
License in practice
Licensed under MIT with no restrictions on commercial or private use, modification, or redistribution. The license text is clear and permissive.
Quickstart
pip install cascadio
import cascadio
glb_data = cascadio.convert_to_glb('model.step')
Requires a pre-built wheel for your platform (Linux non-MUSL, Windows x64, or macOS x64/ARM); check PyPI for current platform support.
Verify before relying
- Whether in-memory conversion (bytes input/output) is supported or planned as a near-term feature.
- Performance characteristics and typical conversion time for various STEP file sizes.
- Whether IGES format support has been implemented since the latest release.
Package facts
| License | The MIT License (MIT) Copyright (c) 2024 Michael Dawson-Haggerty Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the… (full text in the JSON record) (unclear) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 17 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 303,373/month — #7,813 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: cascadio-0.1.1-cp310-cp310-macosx_11_0_arm64.whl; cascadio-0.1.1-cp310-cp310-macosx_11_0_x86_64.whl; cascadio-0.1.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; cascadio-0.1.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; cascadio-0.1.1-cp310-cp310-win_amd64.whl; cascadio-0.1.1-cp311-cp311-macosx_11_0_arm64.whl; cascadio-0.1.1-cp311-cp311-macosx_11_0_x86_64.whl; cascadio-0.1.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; cascadio-0.1.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; cascadio-0.1.1-cp311-cp311-win_amd64.whl; cascadio-0.1.1-cp312-abi3-macosx_11_0_arm64.whl; cascadio-0.1.1-cp312-abi3-macosx_11_0_x86_64.whl; cascadio-0.1.1-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; cascadio-0.1.1-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; cascadio-0.1.1-cp312-abi3-win_amd64.whl; cascadio-0.1.1-cp314-cp314t-macosx_11_0_arm64.whl; cascadio-0.1.1-cp314-cp314t-macosx_11_0_x86_64.whl; cascadio-0.1.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl; cascadio-0.1.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; cascadio-0.1.1-cp314-cp314t-win_amd64.whl
Keywords: graphics, STEP, GLTF
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
build123dbuild123d is a Python CAD framework for…
permissive · top 15,000 on PyPI
ocp-tessellateConverts OCP (OpenCascade Python bindings) CAD…
permissive · top 15,000 on PyPI
ocpsvgConverts between SVG path strings and…
unclear · top 15,000 on PyPI
ocp-gordonInterpolates networks of curves into smooth…
permissive · top 15,000 on PyPI
panda3d-gltfAdds glTF 2.0 file loading to Panda3D,…
permissive · top 15,000 on PyPI
pycolladapycollada reads, writes, and edits COLLADA 3D…
permissive · top 5,000 on PyPI
pygltflibReads, writes, and manipulates GLTF and GLB 3D…
permissive · top 5,000 on PyPI
cadquery-ocpcadquery-ocp provides Python bindings to the…
permissive · top 5,000 on PyPI
cadquery-ocp-novtkProvides Python bindings to the Open CASCADE…
permissive · top 15,000 on PyPI
embreexembreex provides Python bindings to Intel's…
unclear · top 5,000 on PyPI