OpenSCAD is a
free software
Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, ...
application for creating solid 3D
computer-aided design (CAD) objects. It is a script-only based modeller that uses its own description language; parts can be previewed, but cannot be interactively modified by mouse in the 3D view. An OpenSCAD script specifies geometric primitives (such as spheres, boxes, cylinders, etc.) and defines how they are modified and combined (for instance by intersection, difference, envelope combination and
Minkowski sum
In geometry, the Minkowski sum (also known as dilation) of two sets of position vectors ''A'' and ''B'' in Euclidean space is formed by adding each vector in ''A'' to each vector in ''B'', i.e., the set
: A + B = \.
Analogously, the Minkowsk ...
s) to render a
3D model
In 3D computer graphics, 3D modeling is the process of developing a mathematical coordinate-based representation of any surface of an object (inanimate or living) in three dimensions via specialized software by manipulating edges, vertices, ...
. As such, the program does
constructive solid geometry
Constructive solid geometry (CSG; formerly called computational binary solid geometry) is a technique used in solid modeling. Constructive solid geometry allows a modeler to create a complex surface or object by using Boolean operators to combin ...
(CSG). OpenSCAD is available for
Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ...
,
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
and
macOS
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
.
Previewing
For fast previewing of models using
z-buffering
A depth buffer, also known as a z-buffer, is a type of data buffer used in computer graphics to represent depth information of objects in 3D space from a particular perspective. Depth buffers are an aid to rendering a scene to ensure that th ...
, OpenSCAD employs
OpenCSG and
OpenGL
OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve ha ...
.
The 3D model position can be interactively manipulated in the view with a mouse similarly to other 3D modellers. It is also possible to define a default "camera" position in the script.
Part colors can be defined in the 3D view (including transparency).
Preview is relatively fast and allows interactive modifications while modifying the script.
The model renderer takes into account lighting, but the lighting source is not modifiable.
Use
OpenSCAD allows a designer to create accurate 3D models and
parametric designs
Parametric may refer to:
Mathematics
*Parametric equation, a representation of a curve through equations, as functions of a variable
*Parametric statistics, a branch of statistics that assumes data has come from a type of probability distribut ...
that can be easily adjusted by changing the parameters.
OpenSCAD documents are human-readable scripts in plain ASCII text and potentially syntacitically better suited to integrate with version control systems such as GIT.
As such, OpenSCAD is a programmer-oriented solid-modeling tool and has been recommended as an entry-level
CAD tool for designing
open-source hardware
Open-source hardware (OSH) consists of physical artifacts of technology designed and offered by the open-design movement. Both free and open-source software (FOSS) and open-source hardware are created by this open-source culture movement and a ...
such as scientific tools for research and education.
It is mostly used to design
3D printed parts, which are exported in
STL STL may refer to:
Communications
* Standard telegraph level
*Studio/transmitter link
International law
*Special Tribunal for Lebanon
The Special Tribunal for Lebanon (STL), also referred to as the Lebanon Tribunal or the Hariri Tribunal, is a ...
format.

Animation is possible with a speed of a few images per seconds for simple models. The animation can have effect on any parameter, being it the camera position or the parts dimensions, position, shape or existence.
It can be recorded as a set of images usable to build films.
An experimental coupling with
Calculix
CalculiX is a free and open-source finite-element analysis application that uses an input format similar to Abaqus. It has an implicit and explicit solver (CCX) written by Guido Dhondt and a pre- and post-processor (CGX) written by Klaus Wittig. for FEM (
Finite Element Method
The finite element method (FEM) is a popular method for numerically solving differential equations arising in engineering and mathematical modeling. Typical problem areas of interest include the traditional fields of structural analysis, heat ...
) is available.
FreeCAD can import OpenSCAD files also for FEM with Calculix or other supported FEM solvers. FreeCAD features a workbench for interoperability with OpenSCAD.
Exportation
* Views can be exported in
PNG format.
* 2D models can be exported in
SVG,
AutoCAD DXF and
PDF
Portable Document Format (PDF), standardized as ISO 32000, is a file format developed by Adobe in 1992 to present documents, including text formatting and images, in a manner independent of application software, hardware, and operating systems. ...
.
* 3D parts can be exported in
3MF,
AMF,
OFF,
STL STL may refer to:
Communications
* Standard telegraph level
*Studio/transmitter link
International law
*Special Tribunal for Lebanon
The Special Tribunal for Lebanon (STL), also referred to as the Lebanon Tribunal or the Hariri Tribunal, is a ...
, as simple volumes. There is no color, material nor parts definition in the exported model (July 2016).
Importation
* 2D drawings in DXF, SVG and PNG can be imported, then extruded as monolithic parts.
* 3D parts can be imported in STL, OFF, AMF and 3MF and can be scaled and submitted to subtractive or additive operations.
Design
OpenSCAD is a wrapper to a
CSG engine with a graphical user interface and integrated editor, developed in C++. As of 2016, it uses the
Computational Geometry Algorithms Library
The Computational Geometry Algorithms Library (CGAL) is an open source software library of computational geometry algorithms. While primarily written in C++, Scilab bindings and bindings generated with SWIG (supporting Python and Java for now ...
(CGAL) as its basic CSG engine.
Its script syntax reflects a
functional programming
In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that ...
philosophy. Much as in
Haskell, within a scope each "variable" is treated as a constant, immutable with at most one value.
Platform Implementations
OpenSCADhas its own standalone version written in C++
*
FreeCAD: has an OpenSCAD command line interface that can be used in-lieu of the part solver or part workbench
Browser
*
https://cadhub.xyz
*
See also
*
Comparison of computer-aided design software
The table below provides an overview of notable computer-aided design (CAD) software. It does not judge power, ease of use, or other user-experience aspects. The table does not include software that is still in development (beta software). For a ...
*
PLaSM is another open source scripting language for creating 3D objects
References
External links
*
*
*
Primary IRC Chat
{{CAD software
3D computer graphics software for Linux
3D graphics software
Computer-aided design software for Linux
Engineering software that uses Qt
Free 3D graphics software
Free computer-aided design software
Free software programmed in C++