![]() | |
![]() OpenSCAD 2015.03 | |
Developer(s) | Marius Kintel, Claire Wolf[1] |
---|---|
Initial release | 19 February 2010; 15 years ago (2010-02-19) |
Stable release | |
Repository | |
Written in | C++ andQt,CGAL,OpenCSG, andOpenGL[3] |
Operating system | Linux,macOS,Windows,FreeBSD,NetBSD,OpenBSD |
Platform | IA-32,x64,arm64 |
Size | 15–27MB (varies by operating system)[4] |
Available in | 12 languages |
List of languages Czech, English, French, German, Polish, Russian, Spanish, Magyar, Armenian, Turkish, Ukrainian, Chinese | |
Type | CAD |
License | GPL-2.0-or-later |
Website | www |
OpenSCAD is afree software application for creating solid 3Dcomputer-aided design (CAD) objects. It is a script-only based modeller that uses its own description language; the 3D preview can be manipulated interactively, but cannot be interactively modified in 3D. Instead, 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, orMinkowski sums) to render a3D model. As such, the program performsconstructive solid geometry (CSG). OpenSCAD is available forWindows,Linux, andmacOS.
OpenSCAD uses a custom scripting language to produce 3D graphics. The scripting language supportsfunctional programming, parametrized modularization and reuse, and mathematical computation. Variables are scoped, but within each scope are immutable.
For fast previewing of models usingz-buffering, OpenSCAD employsOpenCSG andOpenGL.
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.[citation needed]
Part colors can be defined in the 3D view (including transparency).[5]
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.
OpenSCAD allows a designer to create accurate 3D models andparametric designs that can be easily adjusted by changing the parameters.[6]
OpenSCAD documents are human-readable scripts in plain ASCII text and potentially syntactically better suited to integrate with version control systems such as GIT.
As such, OpenSCAD is a programmer-oriented solid-modeling tool[7] and has been recommended as an entry-levelCAD tool for designingopen-source hardware such as scientific tools for research and education.[8]
It is often used to design3D printed parts, which can be exported in various 3D file formats. Its script-based parametric nature allows it to be integrated into online model customization services, such as the "Customizer" tool onThingiverse.
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 buildanimated GIFs.
An experimental coupling withCalculix for FEM (Finite Element Method) is available.[9]FreeCAD can import OpenSCAD files also for FEM with Calculix or other supported FEM solvers.[10] FreeCAD features a workbench for interoperability with OpenSCAD.[11]
OpenSCAD views and models can be exported to many different formats. Including:
OpenSCAD is a wrapper to aCSG engine with a graphical user interface and integrated editor, developed in C++. As of 2024, the general release version uses theComputational Geometry Algorithms Library (CGAL) as its basic CSG engine. However, development snapshot versions also offer support for Manifold ([1]) as an alternative.
Its script syntax reflects afunctional programming philosophy. Much as inHaskell, within a scope each "variable" is treated as a constant, immutable with at most one value.