mmcore
- mmcore
NEW in 0.53.0
Intersection algorithms improvements
CSX overlaps handling
The nurbs_csx implementation now correctly handles overlaps (see image below).
The example shown in the figure can be found in ./examples/csx/overlap_nurbs_intersection_3.py
NURBS SSX improvements
- Rational cases are fully processed.
- Significantly improved robustness.
- Tangential intersections no longer cause branches to be interrupted. For example, here. At the detect intersections stage, a bug in the gjk implementation that led to false negatives in a number of cases has been fixed. На этапе, detect intersections исправлен баг в реализации gjk, приводивший к ложноотрицательному выходу в ряде случаев
- Added 9 usage examples covering various cases.
- The implementation of the march method has been brought more into line with the (validated ode solver described here)[https://www.cad-journal.net/files/vol_1/CAD_1%281-4%29_2004_449-457.pdf].
- Adaptive refinement is now used instead of the march method to construct a single intersection branch.
Significantly expanded NURBS construction methods
...
Redesign of the NURBS object system
...
Overview
mmcore is a modern CAD engine written in Python with performance-critical parts implemented in Cython. The main goal is to make advanced CAD capabilities as accessible and easy to use as popular scientific computing libraries.
The library provides a comprehensive set of geometric modeling tools, numerical algorithms, and optimization methods specifically designed for CAD applications. It features efficient implementations of NURBS geometry, surface analysis, intersection algorithms, and more.
Note: mmcore is under active development and does not currently guarantee backwards compatibility. The API may change significantly between versions.
Key Features
accuracy corresponds to commercial CAD engines
- Parametric Representations (NURBS)
- NURBS curves and surfaces (only nurbs supported)
- Basic NURBS operations
- evaluation
- knots operations
- degree operations
- interpolation
- extend (curve, surface)
- offset (curve, surface)
- Advanced NURBS operations
- reparametrization
- Change of basis (to/from monomial, to/from scaled bernstein)
- Exact composition
- Gauss-maps
- Implicitization (ruled surfaces only)
- Construction
- base primitives (circle,arc,sphere,cylinder,torus,...)
- ruled
- revolution
- Differential operations
- General differential operation for curves and surface (Fundamental forms, metric tensor, etc.)
- Curvatures (curve, surface, sectional)
- Parameter space tolerance evaluation
- adaptive approximation/tessellation
- CAD algorithms
- Closest point (robust, curve/surface)
- Intersection
- CCX (curve-curve intersection, all points and overlaps)
- CSX (curve-surface intersection, all points, overlaps detection WIP )
- SSX (surface-surface intersection, all intersection branches)
- Geometric properties
- Curve length
- Curve area (closed planar NURBS curve)
- Surface area (closed planar NURBS curve)
- Area of surface (WIP)
- Area of trimmed surface (WIP)
- Basic NURBS operations
- NURBS curves and surfaces (only nurbs supported)
- Implicit Representations
- Evaluation (value,gradient)
- User-defined implicit functions support
- Boolean operations (union, intersection, difference, xor)
- Implicit approximation
- CAD algorithms
- Closest point on 2d/3d implicit
- Closest point on intersection curve between 3d implicits
- Intersection (Fairly fast)
- 2d x 2d
- 3d x 3d
- Tessellation
- marching cubes
- Topology (WIP)
- Compat
- STEP (write, NURBS only)
- exact: corresponds to commercial CAD engines *
Installation
Using pip (Python 3.9+)
python3 -m pip install --user --force-reinstall git+https://github.com/contextmachine/mmcore.git@tiny
PyPy Support
pypy3 -m pip install --user --force-reinstall git+https://github.com/contextmachine/mmcore.git@tiny
Docker
docker pull ghcr.io/contextmachine/mmcore.git:tiny
Project Structure
Core Modules
- mmcore.nurbs: the NURBS core
_nurbs_eval:NURBSCurveTuple/NURBSSurfaceTuple— the primary, named-tuple representation, readable and debuggable_nurbs_knots,_nurbs_ders,_nurbs_interp,_nurbs_join,_nurbs_construct,_nurbs_transform,nurbs_iso: knot algebra, derivatives, interpolation, joining, construction, transforms, iso-curves_core.pyx: the C++NURBSCurve/NURBSSurfaceclasses (Cython accelerator)
- mmcore.implicit: implicit geometry with boolean operations and dual contouring
- mmcore.numeric: algorithms and computations
intersection: the solver families —ccx(curve x curve),csx(curve x surface),ssx(surface x surface) — one entry point eachbvh: spatial acceleration structuresclosest_point/_bez_closest_point: closest-point solvers (squared-distance Bernstein nets)algorithms,interval,integrate,vectors: fundamental CAD algorithms, interval arithmetic, integration, high-performance vector ops
- mmcore.construction: high-level builders —
ruled,revolved,sweep,torus,cylinder,circle,loft - mmcore.topo: BRep topology (Euler operators, STEP-ready), meshing
- mmcore.compat: STEP I/O
- mmcore.extras: optional leaf integrations (renderer, rhino, occ, torch)
Additional Components
- mmcore.api: High-level interface for common operations (WIP)
- mmcore.renderer: Visualization capabilities (WIP)
- mmcore.topo: Topological operations and mesh handling (WIP)
Getting Started
-
Start with short introduction in the Implementation Examples
-
Check the basic examples in
examples/:surface_closest_points.py: Surface analysis and optimizationprimitives/: Basic geometric shape creationssx/: Surface-surface intersection examplesimplicit_intersections.py: Working with implicit geometry
-
Check the short introduction in the Implementation Examples:
- surface_closest_point.md: Detailed algorithm explanations
- Additional implementation examples and best practices
Implementation Examples
1. Parametric Representations
We recommend using NURBS as parametric representations, Although procedural parametric representations are also supported for many operations, due to their properties NURBS representations can be used in algorithms requiring strict robustness.
# The named-tuple ABI is the primary representation:
from mmcore.nurbs._nurbs_eval import NURBSCurveTuple, NURBSSurfaceTuple
# The Cython classes remain available for performance-critical paths:
from mmcore.nurbs._core import NURBSCurve, NURBSSurface
2.Geometry Construction
This creates a simple NURBS curve of degree 3 on 10 control points:
import numpy as np
from mmcore.nurbs._core import NURBSCurve
curve = NURBSCurve(np.random.random((10,3)))
from mmcore.nurbs._core import NURBSCurve
from mmcore.construction import ruled
# Create forming curves
curve1=NURBSCurve(...)
curve2=NURBSCurve(...)
# Create a ruled surface
surface = ruled(curve1,curve2)
3. Basic CAD Algorithms
Closest Point Example
This example demonstrates such a base operation as closest point on surface
import numpy as np
from mmcore.numeric._bez_closest_point import nurbs_surface_closest_points
# Surface construction
surface = ...
# A query point
point = np.array([0.5, 0.5, 1.0])
# The SET of globally closest entities within d_min + atol
# (points, degenerate curves, or whole patches - never far local minima):
result = nurbs_surface_closest_points(surface, point, atol=1e-6)
You can find a detailed algorithm explanation here surface_closest_point.md
4. Advance CAD Algorithms
Algorithms for finding all intersections are fundamental in CAD. In mmcore there are robust implementations for parametric NURBS objects:
- CCX (Curve Curve Intersection)
- CSX (Curve Surface Intersection)
- SSX (Surface Surface Intersection)
Also in experimental mode there are implementations for implicit and procedural objects. However, at the moment it is not guaranteed to find all intersections in the general case (we are working on it).
SSX Example
from mmcore.numeric.intersection.ssx import nurbs_ssx
# Surfaces construction (NURBSSurfaceTuple or NURBSSurface)
surface1 = ...
surface2 = ...
# Perform Surface x Surface Intersection
result = nurbs_ssx(surface1, surface2, atol=0.001)
result['branches'] # intersection curves (SSXBranch: curve_xyz / curve_st / curve_uv)
result['points'] # isolated intersection points
result['complete'] # read this before trusting the output as the whole truth
You can find full examples at examples/ssx/nurbs_nurbs_intersection_1.py and examples/ssx/nurbs_nurbs_intersection_2.py. To display the output of the algorithm install the viewer plugin with:
git clone https://github.com/contextmachine/mmcore@tiny.git
cd mmcore
python3 -m venv venv
source venv/bin/activate
pip install ".[renderer]"
or
git clone https://github.com/contextmachine/mmcore@tiny.git
cd mmcore
python3 -m venv venv
source venv/bin/activate
pip install ".[all]"
5. Implicit Representation
Implicit representations are less common in commercial frame systems, but like parametric representations have long been well developed in computer graphics. General implicits are implemented in mmcore. It means that the algorithms are suitable for working with any implicits and not only with such widespread implicit forms as SDF.
To create your own implicit object class, all you need to do is inherit from one of the base classes and override the implicit(self,point) and bounds(self) methods:
from mmcore.implicit import Implicit2D
class Circle(Implicit2D):
def __init__(self, center, radius):
super().__init__()
self.center = center
self.radius = radius
def bounds(self):
return self.center-self.radius,self.center+self.radius # min point , max point
def implicit(self, xy:'ndarray[float, (2,)] | ndarray[float, (3,)]'):
x, y = xy
return (x - self.center[0])**2 + (y - self.center[1])**2 - self.radius**2 # circle implicit equation
When these methods are implemented, all other methods will be generated automatically.
An example of applying the standard algorithm for finding the intersection curve between two implicits to an implicit cylinder and a custom implicit based on a point cloud:
6. CAD Algorithms for Implicits
Closest point, intersections, and others algorithms are also available for implicits in both 2d and 3d cases. Intersection algorithms in 3D are particularly interesting because they show good accuracy and performance, in some cases surpassing commercial packages.
Performance Benchmarks:
Comparison with Rhino 8 for intersection curves computation between solid tubes:
| Task Size | CPU Cores | Rhino 8 (sec.) | mmcore (sec.) | Speed Ratio |
|---|---|---|---|---|
| 1 | 1 | 0.027 | 0.033 | 0.82x |
| 100 | 1 | 2.685 | 1.571 | 1.71x |
| 100 | 10 | 0.938 | 0.275 | 3.41x |
| 1000 | 10 | 13.4 | 2.313 | 5.79x |
In mmcore we use implicit representations, in Rhino tubes are represented by BReps.
Results show mmcore excels particularly in parallel processing and batch operations.
Figure: Visualization of tube intersection test case
At the same time, I would like to remind you that these algorithms are currently not guaranteed in the general case and are under active development.
You can find the full code for this example here examples/ssx/implicit_intersections.py
Dependencies
Core Requirements
- Python >= 3.9
- numpy
- scipy
- earcut
- pyquaternion
- more-itertools
- steputils
Optional Components
- Development: Cython
- Visualization: plotly, kaleido, pyopengl, pyrr, glfw
- Interactive: IPython
Known Deprecations
- Prefer the named-tuple ABI (
NURBSCurveTuple/NURBSSurfaceTuplefrommmcore.nurbs._nurbs_eval) over the Cython classes for new code - The solver entry points are unversioned:
nurbs_ccx,nurbs_csx,nurbs_ssxfrommmcore.numeric.intersection.{ccx,csx,ssx}always bind the maintained engine - Surface-surface intersection (SSX) is reliable for NURBS surfaces; implicit and procedural support is experimental
Contributing
Contributions are welcome! Please note:
- The project is under active development
- Breaking changes may occur between versions
- Test all changes thoroughly before submitting
- Follow the existing code style and documentation patterns
License
Licensed under the Apache License, Version 2.0 - see LICENSE for details.
Metadata
Release files for mmcore 0.56.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mmcore-0.56.0.tar.gz | 904.8 kB | Details |
Built distributions (wheels)
Total release size: 164.7 MB
Release files / mmcore-0.56.0.tar.gz
| Download URL | mmcore-0.56.0.tar.gz |
|---|---|
| Size | 904.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0fe966ad5a4ad8469f7c072b597e65bbfbbff72aa74059dc55ce2ea8f7dbc26b
|
|
BLAKE2b-256 checksum How to use checksums |
d2b05411dd42e836b9cddaaabe37faca10f2d85eeab89b2d35a91f6bfd8a08cb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.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 Aug 19, 2026.
Transparency logRelease files / mmcore-0.56.0-cp313-cp313-manylinux_2_39_x86_64.whl
| Download URL | mmcore-0.56.0-cp313-cp313-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 18.3 MB |
| Tags | CPython 3.13 Linux glibc 2.39+ x86-64 |
|
SHA-256 checksum How to use checksums |
04df7820466c1abf0af5148f6c310828274b52b4946c5711532de0601057754b
|
|
BLAKE2b-256 checksum How to use checksums |
da0c234e87c232f2a563f16a15e7bd07621eeec11ce80302edae82566a65bcb3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.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 Aug 19, 2026.
Transparency logRelease files / mmcore-0.56.0-cp313-cp313-macosx_26_0_arm64.whl
| Download URL | mmcore-0.56.0-cp313-cp313-macosx_26_0_arm64.whl |
|---|---|
| Size | 9.1 MB |
| Tags | CPython 3.13 macOS 26.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
42772202384e603928fc2369561c6864ccc7e99b8abd08e19882972908f1f73b
|
|
BLAKE2b-256 checksum How to use checksums |
327810fb2d692efe3d5beaf81f346c338240d5ccb6d5044c493027a0178cd68c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.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 Aug 19, 2026.
Transparency logRelease files / mmcore-0.56.0-cp312-cp312-win_amd64.whl
| Download URL | mmcore-0.56.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 6.9 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
1cad7c9017f8cebed4dee83d6acc1a713718717dc5b166e16a8b882087a07b3b
|
|
BLAKE2b-256 checksum How to use checksums |
b05ccdb06558811fee70ec6179324dabf5c42f77999e462dd443984b56e7b614
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.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 Aug 19, 2026.
Transparency logRelease files / mmcore-0.56.0-cp312-cp312-manylinux_2_39_x86_64.whl
| Download URL | mmcore-0.56.0-cp312-cp312-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 18.3 MB |
| Tags | CPython 3.12 Linux glibc 2.39+ x86-64 |
|
SHA-256 checksum How to use checksums |
6f834494f44abb06be9b922d1b40d84783c88aa10334b155c8be6a13fe4e8134
|
|
BLAKE2b-256 checksum How to use checksums |
d7e5990facfa25a2fbbf701164bc90d2f5aec536c82694774b974e629424aae2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.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 Aug 19, 2026.
Transparency logRelease files / mmcore-0.56.0-cp312-cp312-macosx_26_0_arm64.whl
| Download URL | mmcore-0.56.0-cp312-cp312-macosx_26_0_arm64.whl |
|---|---|
| Size | 9.1 MB |
| Tags | CPython 3.12 macOS 26.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
67a594c44cf34589012cc660c07f75fb0b5a14633e4f45fab3f4c5b1f3b3177a
|
|
BLAKE2b-256 checksum How to use checksums |
78ade8e05bcb2c397ba5bec98050bdc177e0a15d45aeb9f1dcd7a2dd09762120
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.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 Aug 19, 2026.
Transparency logRelease files / mmcore-0.56.0-cp311-cp311-win_amd64.whl
| Download URL | mmcore-0.56.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 6.9 MB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
d6797518ef37d2e48de28e3fa6674dde7a37b535fdbb430a5cd992a9e8fee191
|
|
BLAKE2b-256 checksum How to use checksums |
ea6a1b5acb2a14d02119826b1b8bc325ccec830fc9d778a2a1b150edcad35d24
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.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 Aug 19, 2026.
Transparency logRelease files / mmcore-0.56.0-cp311-cp311-manylinux_2_39_x86_64.whl
| Download URL | mmcore-0.56.0-cp311-cp311-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 18.5 MB |
| Tags | CPython 3.11 Linux glibc 2.39+ x86-64 |
|
SHA-256 checksum How to use checksums |
8eb543ca35fa6f45b27132c29ec560c7d1e74da43eaa5fee29e84727e2b004f5
|
|
BLAKE2b-256 checksum How to use checksums |
a2d01a43de2b752b47e4e317a9a13647150d83133c0875a0e24386aaa4be586d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.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 Aug 19, 2026.
Transparency logRelease files / mmcore-0.56.0-cp311-cp311-macosx_26_0_arm64.whl
| Download URL | mmcore-0.56.0-cp311-cp311-macosx_26_0_arm64.whl |
|---|---|
| Size | 9.1 MB |
| Tags | CPython 3.11 macOS 26.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
84a98c12367daddaa28733aea829ab0c5753d9f9c7234a93478844d576f59c79
|
|
BLAKE2b-256 checksum How to use checksums |
6c7007295d8500445916dc49987ef7e037ec8cfbcf64d1ff85afd2ad87526465
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.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 Aug 19, 2026.
Transparency logRelease files / mmcore-0.56.0-cp310-cp310-win_amd64.whl
| Download URL | mmcore-0.56.0-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 6.9 MB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
2bb17efe59ad2b78c38f1224b5a17230efab1301c54bf328cf1bd76542625a5a
|
|
BLAKE2b-256 checksum How to use checksums |
d68c60c6d8c882c9d1001a42ad68c1ce7a186a569d142c4df3ff97ac2a4a6af7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.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 Aug 19, 2026.
Transparency logRelease files / mmcore-0.56.0-cp310-cp310-manylinux_2_39_x86_64.whl
| Download URL | mmcore-0.56.0-cp310-cp310-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 17.9 MB |
| Tags | CPython 3.10 Linux glibc 2.39+ x86-64 |
|
SHA-256 checksum How to use checksums |
220cfc144498f68d0174e43afd51838acff8639834dacd73594181a4f3d29502
|
|
BLAKE2b-256 checksum How to use checksums |
e5305a2cc1633789a6860f6313bfe7153aa8ceeff8d073ba4019ea2ca0902446
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.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 Aug 19, 2026.
Transparency logRelease files / mmcore-0.56.0-cp310-cp310-macosx_26_0_arm64.whl
| Download URL | mmcore-0.56.0-cp310-cp310-macosx_26_0_arm64.whl |
|---|---|
| Size | 9.1 MB |
| Tags | CPython 3.10 macOS 26.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
c4e97cd78ee2e92f2e1590a57db9db7ef66045a23b0bd2e8a3e5ffce99be53f9
|
|
BLAKE2b-256 checksum How to use checksums |
e7fb9e69d46ff527939cd41ee5ee591fcce1632157ce43218251c256c31b11e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.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 Aug 19, 2026.
Transparency logRelease files / mmcore-0.56.0-cp39-cp39-win_amd64.whl
| Download URL | mmcore-0.56.0-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 6.9 MB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
5fe969d980e34576dfce6384dbc737c1a4e513b8899ad55b20afa49e66b11ad4
|
|
BLAKE2b-256 checksum How to use checksums |
01682b0a8bdfa5108a52f02f7ce0e54ab4f5945d9d8477853d9dd394005eb7da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.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 Aug 19, 2026.
Transparency logRelease files / mmcore-0.56.0-cp39-cp39-manylinux_2_39_x86_64.whl
| Download URL | mmcore-0.56.0-cp39-cp39-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 17.8 MB |
| Tags | CPython 3.9 Linux glibc 2.39+ x86-64 |
|
SHA-256 checksum How to use checksums |
de13958c739c5be6bf9e1aa731121eb3bf3cefd40af1b9902d06f09ddfac42c4
|
|
BLAKE2b-256 checksum How to use checksums |
ebfa6aac4a61e62afa6eef4101a77648259c57a8b352f060a1fd039e54d8c12c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.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 Aug 19, 2026.
Transparency logRelease files / mmcore-0.56.0-cp39-cp39-macosx_26_0_arm64.whl
| Download URL | mmcore-0.56.0-cp39-cp39-macosx_26_0_arm64.whl |
|---|---|
| Size | 9.1 MB |
| Tags | CPython 3.9 macOS 26.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
51c33e19a171a63ff1dd280329c7ec8bee2df4a01c6eedd02bf7e8980f2b63c2
|
|
BLAKE2b-256 checksum How to use checksums |
674b01a7ede7d8c4b054fb8d53e49e707dcd927e54bdb317dc14699acf58245d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.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 Aug 19, 2026.
Transparency log