One concern with CAD is a fundamental aspect of their architecture: How are curves, arcs and circles handled? All- too-many programs take the expedient route of representing them as as polygons or polylines. Academic paper discussing this G codes for the specification of Pythagorean-hodograph tool paths.
This page focuses on interactive programs, manipulation of numbers/parameters and code is covered on the Programming page.
A note on curve approximation: The trivial case with four cubic beziers (one on each quadrant) has very low maximum error, IIRC on the order of 0.1% of the circle radius.
Origin point This is different from most drawing and CAD programs: https://bugs.launchpad.net/inkscape/+bug/170049 as discussed here: http://www.shapeoko.com/forum/viewtopic.php?f=6&t=5102&p=37166#p37166
A note on vector drawing: Vector drawing is like to drafting with rules, triangles, compasses and a French curve, while pixel editing is more akin to colouring in spaces on a grid. Vector drawing uses lines (a straight path between two "nodes" which are x,y coordinates, one is the beginning, the other the ending), regular geometric forms (defined by nodes which denote each point at which lines meet), arcs and circles (defined by the central point of rotation and the radius therefrom) and Bézier curves (a mathematical description of an arbitrary curve which has four "nodes", one on-the-path, two off-the-path and one on-the-path) to allow it to express pretty much any shape or form.
A game to learn about forming such curves: http://bezier.method.ac/#
A note on units: Most CAD programs store drawings in generic units, rather than a specific measure. It is important to know what unit was used when a drawing was created so as to be able to import it at the right size. Forum discussion.
It is also of course, straight-forward to work directly in G-Code, accomplishing Design and CAM in a single step using programs which provide integrated text editing such as NC Plot and NC Corrector (the latter is listed on the Previewing G-Code page. A tutorial is listed on the CAM page. Unfortunately, Grbl’s implementation of G-code leaves out variables and looping, so is not suited for this --- there is at least one pre-processor, G-sharp which affords support for these features, instantiating them as simpler G-code, bCNC supports this.
Note: A number of programs listed on the CAM page include design features for such specialized things as PCBs, Thread and Fret cutting and Gears.
- Why We Need Professional-Level Open Source CAD
- CAD/CAM Wish List
The Failed Promise of Parametric CAD, a series of articles by Evan Yares:
- From the Beginning
- The Problem is Editing
- The Direct Solution
- Going Horizontal
- A Resilient Modeling Strategy
- Viable Solution
Page with table listing many opensource CAD apps: https://sites.google.com/site/lagadoacademy/miscellaneous-projects/free-cad-software---overview --- includes columns for OS compatibility, incl. whether or no an app will run in Linux using WINE.
- 1 Integrated CAD/CAM
- 2 2D
- 3 Extrusion
- 4 Fonts
- 5 Images
- 6 3D
- 7 Post-processing
- 8 Gears
- 9 PCB
- 10 Special Purpose
- 11 Other design software
- 12 3D Scanning
- 13 Additional programs which may merit investigation
- 14 Bézier drawing programs
- 15 Tutorials
- 16 Moribund
- Carbide Create --- runs on Mac OS X and Windows, imports DXFs and SVGs, CAD/CAM functionality, and supports V-carving.
- http://sourceforge.net/projects/technecadcam/  --- notable for outputting Shopbot instructions as well as G-Code.
|2D drawing (Opensource)||Inkscape||SVG drawing program which can either export to DXF or directly to G-code using plug-ins. Supports pressure-sensitive graphics tablets.|
|2D CAD (Opensource)||LibreCAD||Fork of Qcad. Free and OpenSource CAD (DXF) application, cross platform.
Includes menu option to export to MakerCAM SVG.
|2D CAD (Opensource)||Simple2D CAD/CAM||Windows app to cut simple shapes (pockets, mostly) and simplified gears, includes a geometry mode that allows geometry defined by lines and arcs. It also generates geometry from any OpenType font.|
|2D drawing (Opensource)||Cenon (Mac OS X, NeXT/OPENstep, Linux)||OpenStep CAD/CAM program which has transitioned to opensource.|
|2D drawing (Opensource)||Xfig||G-code enabled Xfig.|
|2D CAD (Opensource)||Dedalo||2d CAD drawing software written in python3.|
|2D CAD (Opensource)||Zcad||Simple CAD program with dxf2000 file format support.|
|2D CAD (Freeware)||OpenS-CAD, a simple 2D CAD application||Windows .exe (87.5KB) and source (225KB).|
|2D CAD (Freeware)||nanoCAD||Free tool for creating, editing, validating, sharing, and managing CAD models.|
|2D CAD (Freeware)||Siemens Free 2D||Free CAD software by Siemens (Windows). textbook available as a PDF.|
- Siemens Free 2D (listed above)
Note that Draftsight is no longer freely available.
Tracing is a useful option for some projects. Most vector drawing programs have an option for this (one option is to place the image on the desktop or in a window beneath the CAD tool, then make that window transparent), or one can use a specialized tool. One such: http://www.kvec.de/english/index.htm Discussion: https://www.reddit.com/r/CNC/comments/47fqeh/best_raster_img_to_scalable_vector_programs/
Mechanism for tracing / digitizing existing designs / templates: http://www.logicgroup.com/LogicTraceCncDxf.html
In many instances a single-line font is a desirable option for CNC. The Hershey Fonts in Inkscape are one notable option.
Lengthy article and list of options at: http://imajeenyus.com/computer/20150110_single_line_fonts/index.shtml
Merging the boundaries between 2D and 3D, CAD and CAM, there's http://www.flatfab.com/ Fabrication Design Software that helps you design and fabricate 3D objects. Ideate and draw in 2D, fabricate in 3D.
|3D modeling (Opensource)||K-3D||K-3D is free-as-in-freedom 3D modeling and animation software. It combines flexible plugins with a visualization pipeline architecture, making K-3D a versatile and powerful tool for artists. Available for Windows, Mac OS X and Linux.|
|3D modeling (Opensource)||BRL-CAD||BRL-CAD is a cross-platform open source solid modeling system that includes interactive geometry editing, high-performance ray-tracing for rendering and geometric analysis, image and signal-processing tools, a system performance analysis benchmark suite, libraries for robust geometric representation, with more than 20 years of active development. Discussion of shortcomings.|
|3D modeling (Opensource)||Art of Illusion||Free, open source 3D modeling and rendering studio. Features include subdivision surface based modeling tools, skeleton based animation, and a graphical language for designing procedural textures and materials. Default design software for the RepRap project.|
|3D modeling (Opensource)||MeshLab||Open source, portable, and extensible system for the processing and editing of unstructured 3D triangular meshes.
Converts Obj to stl?
|3D modeling (Opensource)||HeeksCAD||Together with HeeksCAM comprises HeeksCNC. Youtube: HeeksCAD Unofficial Tutorial Part 1:Introduction General overview of GUI for HeeksCAD|
|3D modeling (Opensource)||FreeCAD||FreeCAD is a general purpose feature-based, parametric 3D modeler for CAD, MCAD, CAx, CAE and PLM, aimed directly at mechanical engineering and product design but also fits a wider range of uses in engineering, such as architecture or other engineering specialties. It is 100% Open Source and extremely modular, allowing for very advanced extension and customization. See also the Python-query-scripting language CadQUERY (or v2 at https://github.com/CadQuery/cadquery ) https://github.com/jmwright/cadquery-gui and Cnc25D CAD Library.
A variety of macros are available, i.e., http://www.freecadweb.org/wiki/index.php?title=Macro_FCGear 
Print creation and assembly handling FreeCAD leave a lot to be desired.
|3D parametric modeling (Opensource)||ImplicitCAD||Similar to OpenSCAD (above), but written in Haskell and using an internal geometric representation, as opposed to the polygon mesh used by the former|
|3D parametric modeling (Opensource)||NaroCAD||3D parametric modeling CAD application for Windows, based on OpenCascade.|
|3D modeling (Opensource)||Blender||Free, OpenSource and crossplatform 3D program. Allows modelisation, shading, rendering, animation, interactive 3D, compositing. Not a CAD software though it can be used for any kind of modeling. See Blender CAM for a tool to export files for EMC. If importing from Illustrator, see this forum discussion for a note on how to handle units.
https://github.com/Lichtso/curve_cad --- Blender Addon: Bezier Curve CAD Tools for CNC Milling & Laser Cutting
|3D modeling (opensource)||Dilay||https://github.com/abau/dilay --- https://www.reddit.com/r/programming/comments/46130v/dilay_a_free_3d_sculpting_application/|
|3D modeling (Opensource)||Wings3D||Free, OpenSource and crossplatform 3D modeler. Wings 3D is an advanced subdivision modeler that is both powerful and easy to use.|
|3D modeling (Opensource)||SolveSpace||Parametric 3D CAD program for Windows, Linux, and Mac OS X. See also its 2D predecessor, SketchFlat.
Originally a Windows 1.4Mb executable that didn't have to be installed.
Available on the web at: https://files.whitequark.org/SolveSpace/solvespace.html or see: http://notecad.xyz/  also see: https://github.com/ppd1990/solvespace-snap and https://snapcraft.io/solvespace  or for Mac OS X at: https://github.com/whitequark/solvespace/releases 
Does basic 3D operations as well as 2D. A good free option for basic modelling, as well as for education (the basics are the same as any full featured parametric CAD system). Outputs in .svg. .stl output, should be pretty well suited to simple modeling for 3DP.
Features include: Constraints and assemblies
|3D modeling (Opensource)||POVray||"The Persistence of Vision Raytracer (POVray) is a high-quality, Free Software tool for creating stunning three-dimensional graphics".|
|2D drafting/3D modeling (Opensource)||lignumCAD||Tool for designing furniture.|
|2D drafting/3D modeling (Opensource)||Salome (or Salomé)||Generic platform for Pre- and Post-Processing for numerical simulation. Can be used as standalone application for generation of CAD model, its preparation for numerical calculations and post-processing of the calculation results.|
|3D modeling (Freeware)||Caligari Truespace||Commercial program released to freeware. http://lunadude.com/rsrc_trueSpace.htm|
|3D modeling (Freeware)||DesignSpark Mechanical||Freeware software for Windows distributed by RS Components International. Free version of SpaceClaim 2012.|
|3D modeling (Freeware)||FormZ Free||Freeware software for Windows 7/8/8.1 and Mac OS X 10.7 or later.|
|3D modeling (Freeware/Windows)||Microsoft: 3D Builder||Create, print (List of supported printers) and scan (requires Kinect v2 sensor) functionality.|
|3D modeling (Freeware/Windows)||Pixologic::Sculptris||Sculptris is a free 3D modeling program by Pixologic (The makers of ZBrush), that many find to be a good starting point for learning 3D modeling.
It is also well liked for its efficient use of computer resources, and works well with laptops, or older operating systems, such as Windows XP SP2, for example. 
|3D modeling (Chrome app)||Design Something Google App Store||3D modeling application running on Chrome and Firefox. Pre-defined shapes, operations include extrude and sweep.|
|2D drawing (Opensource)||Doodle3D||Freehand sketching program for iPad and Mac OS X (source available for other platforms) to extrude and revolve into 3D.|
- CollabCAD --- 3D CAD/CAM Software system for collaborative design & development of Industrial Designs. Written in Java, available for Linux and Windows, reads XML, STEP, IGES, and VRML.
- Varkon --- parametric 2D/3D CAD, modeling and application development tool for engineering, design, architecture, etc. does 2D drafting, 2D and 3D modeling, sculptured surface modeling, and animations. Includes a 6-minute tutorial.
Android app for Mattel's Thingmaker: https://play.google.com/store/apps/details?id=com.mattel.thingmakerdesign
https://www.bricsys.com/en-intl/shape/ --- available for Linux, Mac OS X, Windows https://www.cadnauseam.com/2018/01/23/bricscad-shape-can-a-free-dwg-product-be-a-bim-game-changer/ https://blog.bricsys.com/introducing-bricscad-shape/
Interesting post on efficiency: http://community.carbide3d.com/t/how-to-make-your-stl-not-take-3-days-to-calculate-tool-paths-for/169
http://www.ptc.com/cad/elements-direct/modeling/express --- Creo Elements/Direct Modeling Express 6.0 is a free version of Creo Elements/Direct Modeling 19.0 limited to assemblies with up to 60 unique parts.
Some may find OnShape sufficiently free to consider it: https://www.onshape.com/ or
3Dtin now refreshes to: https://www.tinkercad.com/
Image Depth Maps
- https://github.com/jeremysimmons/heightmap2stl-gui --- converts a pixel image into a 3D STL file.
- http://3dp.rocks/lithophane/ 
https://www.selva3d.com/ --- converts images into depth maps which are then integrated into a library of 3D models at "standard accuracy" (better quality modeling is a paid option).
Apparently Microsoft's 3D Builder can create depth / height maps from pixel images as well: Commercial Software#Free
Further things to add
3D CAD to add
2D CAD to add
- Archimedes http://archimedescad.github.io/Archimedes/ https://sourceforge.net/projects/arquimedes/ --- https://www.osalt.com/archimedes
- SAMoCAD --- http://vvs1864.github.io/samocad/en_index.html
- SagCAD --- Japanese CAD program
- The Piglet Drawing Editor --- 2-D engineering drawing editor that supports hierarchical object description, inspired by Hewlett-Packard's proprietary HP PIGLET (Personal Interactive Graphic Layout EdiTor).
- http://ayam.sourceforge.net/--- free 3D modelling environment for the RenderMan interface, distributed under the BSD licence
A number of these are listed above and should be moved.
- DeleD CE
- Structure Synth
Free online tool which will export to STL: http://kovacsv.github.io/JSModeler/documentation/examples/bezier.html
There is an Excel spreadsheet for clockwork calculations: http://www.shapeoko.com/forum/viewtopic.php?f=7&t=5190&p=38066
|Gears||Involute Spur Gear Builder||Browser based utility for calculating and drawing involute spur gears, fully accounts for undercuts. Blog announcement.|
|Gears||GGGears ||Tool for creation and calculation of gear transmission finite element models. Consists of a geometry and mesh generator based on GMSH and a finite element model based on GETFEM++.|
|Gears||pyGear||Built on top of pythonOCC, OpenCascade, numpy and scipy, serves as an CAE/CAD-preprocessor generator of involute gears.|
|Sprockets||Sprocketeer (online) Windows and information||Generate gcode or a CAD (DXF) drawing for sprockets.|
|Gears||GearGCoderV1.0 (Windows)||Generate gcode for a gear based on inputting Diameter (150mm --- values in parentheses are samples suggested by the developer), teeth (20), width ratio (3), feed rate (1000), tooth height (13mm), depth (9mm), add mounting holes (Y), number of holes (5), distance from center (50mm).|
|Gears||GearMaker (Windows)||Program that will produce the tooth profile of a gear as a dxf drawing. Video tutorial on finishing.|
|Gears||GearDXF (Windows)||Outputs a DXF file containing a 2D outline of a spur gear using specified parameters. The tooth face is a true involute curve, but the base gaps between teeth are rough.|
|Gears||gears (Java)||Involute gear milling generator and G-code viewer|
|Gears||Gear Model For 3D Printer (OpenJSCad website)||Online gear generator includes support for rack and pinion, bevel and worm gears.|
Extensive tutorial at: http://www.cartertools.com/involute.html
|PCB (opensource)||KiCad||Electronic design automation (EDA) software suite for designing schematics of electronic circuits and printed circuit boards (PCB).|
|PCB (opensource)||gEDA||Full GPL'd suite and toolkit of Electronic Design Automation tools.|
|PCB (opensource)||QS Cad||Tcl/Tk EDA Package. Schematic capture through to PCB layout. Has Part editor as well as editor for Schematic and PCB Decals.|
|PCB (opensource)||Stripboard Designer 1.0||Open source (BSD) app written in freeware Visual Basic 2008 Express for Wintel machines. See also Stripes, a GPL Java version.|
|PCB (opensource)||DIY Layout Creator (DIYLC)||GPL Java software for creating stripboard and universal board designs.|
http://darwinne.github.io/FidoCadJ/download.html --- (Java) a free graphical editor for (more than) electronics
- https://www.ctan.org/pkg/circuitikz 
|3D modeling --- Surfboards||BoardCAD||Opensource CAD/CAM-system (written in Java) for surfboards.|
|3D modeling --- furniture||SketchChair||Opensource CAD/CAM-system for flat-pack furniture. Forums/troubleshooting|
|2D CAM --- Jigsaw puzzle piece cutter (Online - Silverlight)||CNC Puzzle Maker||Program for cutting out puzzle shapes w/ tabs.|
|2D CNC --- sails||Sailcut CAD||Sail design and plotting software.|
http://valentina-project.org/ --- cross-platform patternmaking program which allows designers to create and model patterns of clothing.
Aircraft (incl. models)
|3D CNC --- foam cutting for model airplanes||Jedicut CNC||Program for cutting out wings and fuselages.|
|3D aircraft modeling||OpenVSP||Vehicle sketch pad. NASA opensource parametric geometry. Described as suited for general use.|
- http://rattlecad.sourceforge.net/ --- Opensource Bicycle framebuilding CAD app
- https://www.bikecad.ca/java_1.8_security --- free browser version of commercial app
- https://github.com/occamsshavingkit/Bike-Draw — a PostScript program for drawing bike plans.
- A Catalogue of Spoke Patterns (github) 
- http://gear-calculator.com/ 
- http://bearboat.net/index.html 
- http://sourceforge.net/projects/freeship/ 
- http://www.delftship.net/  --- free version can do various calculations and export to various formats.
- https://gitlab.com/damien.andre/openmeca --- https://www.reddit.com/r/cad/comments/44kzi3/a_free_software_to_model_mechanical_systems/
- http://blog.rectorsquid.com/linkage-mechanism-designer-and-simulator/ 
See also http://www.rs-online.com/designspark/electronics/eng/page/mechanical listed above and the CAM page which lists special-purpose programs for gears and fret and thread cutting.
Carbide Create has creating textures as a native feature.
Other design software
3D CG to 3D Printable 3D model converter for Windows PC --- CGto3DPrint is a free software that converts 3D CG(Computer Graphics) models to 3D printable manifold 3D models using MeshLab for surface mesh to voxel conversion and Blender for baking color textures. Converted 3D models are automatically exported from Blender to STL file for single color 3D Printing or manually exported to PLY file for full color 3D Printing. 
Redrawing may be a better option: https://www.reddit.com/r/cad/comments/4mmqno/im_trying_to_reverse_engineer_a_component_to_draw/
FreeLSS --- laser scanning program for the Raspberry Pi. It allows a Raspberry Pi to function as the core to a complete turn table laser scanning system. Files for printing a 3D scanner: http://www.murobo.com/printables.html
Photo measuring app
- Partometer --- http://www.vistechprojects.com/app/partometer
3D Scanning Hardware
Additional programs which may merit investigation
- http://www.artifice.com/free/dw_lite.html 
- https://www.leocad.org/ 
- https://www.plm.automation.siemens.com/en/products/solid-edge/free2d/ 
- magicavoxel http://ephtracy.github.io/index.html
- http://amabilis.com/products/ 3Dcrafter --- two versions, free and commercial
- http://www.seamless3d.com/ --- free opensource (MIT license) 3D modeling software
- https://opendesignengine.net/projects/mtk/wiki --- Mach 30's Mathematics Tool Kit, unified engineering analysis and documentation tool
- http://dyama.github.io/siren/ --- simple CAD viewer for Microsoft Windows.
- https://github.com/christopherpoole/cadmesh --- A CAD file interface for GEANT4
- http://sourceforge.net/projects/elmerfem/ --- Elmer finite element software Open source finite element software for multiphysical problems
- http://www.lemkesoft.de/en/products/cadintosh/ ---- venerable Mac OS app from Germany, updated for OS X.
- http://www.allycad.com/homeversion.asp --- UK
- http://www.cadvance.com/65form.htm ---Free CADVANCE 6.5 for Windows, re-release of CADVANCE Version 6.5, a CAD software system designed for Windows 3.1, originally released in 1995 now available to anyone free of charge.
- http://milkshape3d.com/ --- low-polygon modeler initially designed for Half-Life.
- GtkCAD --- (abandoned) modular, full featured, modern CAD/CAE/CAM system for GNU/Linux.
- JCad --- 2D CAD application written completely in Java. AutoCAD DXF native format.
- oCADis --- 2D CAD system for Linux. Basic drawing objects: line, arc, circle and more. Supports HPGL (export), DXF (import and export), PostScript output.
- ThanCAD --- 2dimensional cad, with raster inclusion capability and emphasis in engineering. Written in Python using the wxPython library.
- PythonCAD --- R38 https://sourceforge.net/projects/pythoncad/
- AnyCAD 1.4 Free Version --- Chinese CAD program available in English
- K3DSurf --- Program to visualize and manipulate Mathematical models in three, four, five and six dimensions. Supports Parametric equations and Isosurfaces.
- Frusta --- Tcl toolkit to manipulate data for a 3d-printer
- HYCAD 5.33 --- Free (abandoned? Last Updated: December 5th, 2007) CAD app for Windows from China by JiangJiang (developer homepage English link is 404, main site times out). Simplified AutoCAD interface, mouse gestures.
- LiteCAD --- 2D CAD program.
- A9 CAD
- Replath --- a program that can plot various 2D file formats either directly to a RepRap or to a GCode file.
- eCabinet --- CAD for custom cabinet makers (requires membership/registration)
- gCAD3D --- 3D - CADCAM - software for MS-Windows and Linux (available in German and English) c.f., https://sourceforge.net/projects/gcad/
- Misfit Model 3D --- an OpenGL-based 3D model editor. It supports multi-level undo, skeletal animations, texturing mapping, scripting, command-line batch processing, and a plugin system for adding new features.
- CADemia-Community --- free Java CAD software for true-to-scale technical drawings and documents. Also available in German
- Fandango: scripted 3d CAD --- formerly elcad, a python scripted 3d CAD application.
- AR-CAD - freeCAD and StCAD --- not the FreeCAD above, free 3D CAD Software with Motion Simulation Capabilities.
- AnyCAD --- .net Windows program / programming library
- GNU CNC CAM --- Tool for converting DXF (CAD) Files to G-Code (RS-274) NC-Files.
- CNCSimple ---3D modeling C# source code for Visual Studio Express 2010 at .
- Minos3D --- Windows program to avoid wireframe views.
- MonoWorks --- a full-featured, Open Source 3D Computer Aided Design (CAD) suite that includes object-oriented math and modeling libraries, as well as interactive viewing and modeling applications.
- AutoQ3D --- Opensource (GPL) version is AutoQ3D Community available for Windows here. Mac, iPhone/iPad, Android, Windows and Linux versions are available for AutoQ3D CAD.
- netfabb Studio Basic --- Free application for Linux, Mac OS X or Windows for mesh edit, repair and analysis
- Wildcat CAD --- A modern 3D solid modeling kernel and associated applications for CAD and all types of related engineering. BSD license, last up-dated Oct 2008.
- pyturn a simple python code generator for cnc lathe programs
- 3DCrafter --- Real-time 3D modeling and animation tool that incorporates an intuitive drag-and-drop approach to 3D modeling. Free, Plus and Pro versions.
Bézier drawing programs
- http://al.chemy.org/download/ (opensource, cross-platform)
- https://inkscape.org/ --- listed above
- https://krita.org/ --- also has painting / pixel image features
- https://www.calligra.org/karbon/ --- also see flow, a diagramming tool.
- http://www.vpaint.org/ --- cross-platform, supports: Linux, Mac OS X, Windows
METAPOST is a special case in point, see http://cseweb.ucsd.edu/~s1pan/MEPer/
Mac OS X
- http://www.cenon.info/frame_gb.html --- listed above, CAM module is a commercial option
- http://www.nchsoftware.com/drawpad/index.html (Windows)
- http://www.serif.com/free-graphic-design-software/ (Windows)
- https://vectr.com/downloads/ --- beta (Mac, Windows, Linux, Chromebook)
- Vector Paint http://yaks.co.nz/
- https://github.com/mmik005/js-cad https://sourceforge.net/projects/js-cad/
- Shapesmith --- 3D modeling (Opensource) Parametric, Open-Source 3D Modeling in your browser, can do basic primitives and addition/subtraction operations and export to STL. https://github.com/bjnortier/shapesmith Deprecated: https://twitter.com/shapesmith/status/704719005857280000