
# Py-MADCAD
*>>> it's time to throw parametric softwares out !*
Simple yet powerful CAD (Computer Aided Design) library, written with Python.
- [Official website](https://madcad.netlify.app)
- [Installation](https://pymadcad.readthedocs.io/en/latest/installation.html)
- [Documentation](https://pymadcad.readthedocs.io/)
- [Repository](https://github.com/jimy-byerley/pymadcad)
- [Matrix community](https://matrix.to/#/#madcad:matrix.org)
[](https://img.shields.io/pypi/pyversions/pymadcad)
[](https://pypi.org/project/pymadcad/)
[](https://pymadcad.readthedocs.io/en/latest/?badge=latest)
[](https://matrix.to/#/#madcad:matrix.org)
## Features
- surface generation (3D sketch primitives, extrusion, revolution, inflation, tubes, ...)
- fast boolean operations
- common mesh file format import/export
- kinematic manipulation
- implicit geometry definition through the constraint/solver system
- objects display with high-quality graphics

Checkout some [complete examples](examples)
## Sample usage
```python
from madcad import *
# define points
O = vec3(0)
A = vec3(2,0,0)
B = vec3(1,2,0)
C = vec3(0,2,0)
# create a list of primitives
line = [
Segment(O, A),
ArcThrough(A, B, C),
Segment(C,O),
]
# create and solve constraints
solve([
Tangent(line[0], line[1], A),
Tangent(line[1], line[2], C),
Radius(line[1], 1.5),
], fixed=[O])
# generate surfaces
part = extrusion(line, vec3(0,0,1))
# display in a 3D scene
show([part])
```
The result will be this window

## About
MADCAD is born from the idea that the current approach of parametric CADs for mechanical engineering is not the best possible. This library is part of a project targeting the best possible mechanical design tool for both engineers and handymen. See the
[comparison](https://pymadcad.readthedocs.io/en/latest/concepts.html#comparison-with-existing-cad-softwares)
for more details.
## License 
Copyright 2019-2023 Yves Dejonghe <jimy.byerley@gmail.com>
This library is distributed under the LGPL-v3 license. A copy of that license is provided with this software.
Raw data
{
"_id": null,
"home_page": "https://madcad.netlify.app/pymadcad",
"name": "pymadcad",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": null,
"author": "jimy-byerley",
"author_email": "jimy.byerley@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/eb/14/6fcd8e5d753993098d3bc62142c27cadd686ea759bd1f144a1fd0ffcbca7/pymadcad-0.19.1.tar.gz",
"platform": null,
"description": "\n\n# Py-MADCAD\n\n*>>> it's time to throw parametric softwares out !*\n\nSimple yet powerful CAD (Computer Aided Design) library, written with Python.\n\n- [Official website](https://madcad.netlify.app)\n- [Installation](https://pymadcad.readthedocs.io/en/latest/installation.html)\n- [Documentation](https://pymadcad.readthedocs.io/)\n- [Repository](https://github.com/jimy-byerley/pymadcad)\n- [Matrix community](https://matrix.to/#/#madcad:matrix.org)\n\n[](https://img.shields.io/pypi/pyversions/pymadcad)\n[](https://pypi.org/project/pymadcad/)\n[](https://pymadcad.readthedocs.io/en/latest/?badge=latest)\n[](https://matrix.to/#/#madcad:matrix.org)\n\n## Features\n\n- surface generation (3D sketch primitives, extrusion, revolution, inflation, tubes, ...)\n- fast boolean operations\n- common mesh file format import/export\n- kinematic manipulation\n- implicit geometry definition through the constraint/solver system\n- objects display with high-quality graphics\n\n\n\nCheckout some [complete examples](examples)\n\n\n## Sample usage\n\n```python\nfrom madcad import *\n\n# define points\nO = vec3(0)\nA = vec3(2,0,0)\nB = vec3(1,2,0)\nC = vec3(0,2,0)\n\n# create a list of primitives\nline = [\n\tSegment(O, A), \n\tArcThrough(A, B, C),\n\tSegment(C,O), \n\t]\n\n# create and solve constraints\nsolve([\n\t\tTangent(line[0], line[1], A), \n\t\tTangent(line[1], line[2], C), \n\t\tRadius(line[1], 1.5), \n\t], fixed=[O])\n\n# generate surfaces\npart = extrusion(line, vec3(0,0,1))\n\n# display in a 3D scene\nshow([part])\n```\n\nThe result will be this window\n\n\n\n## About\n\nMADCAD is born from the idea that the current approach of parametric CADs for mechanical engineering is not the best possible. This library is part of a project targeting the best possible mechanical design tool for both engineers and handymen. See the \n[comparison](https://pymadcad.readthedocs.io/en/latest/concepts.html#comparison-with-existing-cad-softwares) \nfor more details.\n\n## License \n\nCopyright 2019-2023 Yves Dejonghe <jimy.byerley@gmail.com>\n\nThis library is distributed under the LGPL-v3 license. A copy of that license is provided with this software.\n",
"bugtrack_url": null,
"license": "LGPL v3",
"summary": "Simple yet powerful CAD (Computer Aided Design) library, written with Python",
"version": "0.19.1",
"project_urls": {
"Documentation": "https://pymadcad.readthedocs.io",
"Homepage": "https://madcad.netlify.app/pymadcad",
"Repository": "https://github.com/jimy-byerley/pymadcad"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "1630571dd1718098da314a14de66fb5c481c877408687952c8ab7523214c312c",
"md5": "b7b602b0ac017e9626b05a4a54044626",
"sha256": "1bdabc35e11c49c06ebfdcfdf39e8e1034b97d86fb6aec7e75a50bedd8f7c599"
},
"downloads": -1,
"filename": "pymadcad-0.19.1-cp311-cp311-manylinux_2_36_x86_64.whl",
"has_sig": false,
"md5_digest": "b7b602b0ac017e9626b05a4a54044626",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8",
"size": 1829180,
"upload_time": "2025-07-19T20:29:48",
"upload_time_iso_8601": "2025-07-19T20:29:48.647686Z",
"url": "https://files.pythonhosted.org/packages/16/30/571dd1718098da314a14de66fb5c481c877408687952c8ab7523214c312c/pymadcad-0.19.1-cp311-cp311-manylinux_2_36_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "eb146fcd8e5d753993098d3bc62142c27cadd686ea759bd1f144a1fd0ffcbca7",
"md5": "420b9b6d063cd5b073e963a4869bbce1",
"sha256": "d56ea5946b46d80e69295db3fcb69697d3df1432f878a0ba62e1ded6ee29c8f9"
},
"downloads": -1,
"filename": "pymadcad-0.19.1.tar.gz",
"has_sig": false,
"md5_digest": "420b9b6d063cd5b073e963a4869bbce1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 1357128,
"upload_time": "2025-07-19T20:29:50",
"upload_time_iso_8601": "2025-07-19T20:29:50.184485Z",
"url": "https://files.pythonhosted.org/packages/eb/14/6fcd8e5d753993098d3bc62142c27cadd686ea759bd1f144a1fd0ffcbca7/pymadcad-0.19.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-19 20:29:50",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jimy-byerley",
"github_project": "pymadcad",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "pymadcad"
}