Skip to main content

Simple yet powerful CAD (Computer Aided Design) library, written with Python

Project description



>>> it's time to throw parametric softwares out !

Simple yet powerful CAD (Computer Aided Design) library, written with Python.

support-version PyPI version Documentation Status


  • 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

Sample usage

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),

# create and solve constraints
		Tangent(line[0], line[1], A),   
		Tangent(line[1], line[2], C),   
		Radius(line[1], 1.5),           
	], fixed=[O])

# generate surfaces
part = extrusion(vec3(0,0,1), web(line))

# display in a 3D scene

The result will be this window example-window


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 for more details.

License LGPL logo

Copyright 2019-2023 Yves Dejonghe

This library is distributed under the LGPL-v3 license. A copy of that license is provided with this software.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pymadcad-0.16.0.tar.gz (1.3 MB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page