All Projects → openscad → Openscad

openscad / Openscad

Licence: other
OpenSCAD - The Programmers Solid 3D CAD Modeller

Programming Languages

C++
36643 projects - #6 most used programming language
OpenSCAD
209 projects
c
50402 projects - #5 most used programming language
shell
77523 projects
CMake
9771 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Openscad

Tf flame
Tensorflow framework for the FLAME 3D head model. The code demonstrates how to sample 3D heads from the model, fit the model to 2D or 3D keypoints, and how to generate textured head meshes from Images.
Stars: ✭ 193 (-95.66%)
Mutual labels:  3d, 3d-graphics, 3d-models
Q3dobserver
Multi-platform C++11 library based on Qt for creating 3D viewer widgets
Stars: ✭ 13 (-99.71%)
Mutual labels:  opengl, 3d, qt5
Pulse
A pendant to warn you when you touch your face
Stars: ✭ 229 (-94.85%)
Mutual labels:  3d, 3d-models, 3d-printing
Versatile
A simple 3D model editor based on simple quads and a sprite set.
Stars: ✭ 132 (-97.03%)
Mutual labels:  3d, 3d-models, qt5
Tinyrenderer
A brief computer graphics / rendering course
Stars: ✭ 11,776 (+164.99%)
Mutual labels:  opengl, 3d, 3d-graphics
Flame pytorch
This is a implementation of the 3D FLAME model in PyTorch
Stars: ✭ 153 (-96.56%)
Mutual labels:  3d, 3d-graphics, 3d-models
Limonengine
3D FPS game engine with full dynamic lighting and shadows
Stars: ✭ 331 (-92.55%)
Mutual labels:  opengl, 3d, 3d-graphics
Blender
Mirror of the official Blender Git repository. Updated every hour.
Stars: ✭ 609 (-86.3%)
Mutual labels:  3d, 3d-graphics, 3d-printing
Dotscad
Reduce the burden of mathematics when playing OpenSCAD
Stars: ✭ 344 (-92.26%)
Mutual labels:  3d, 3d-graphics, 3d-printing
Tinyraycaster
486 lines of C++: old-school FPS in a weekend
Stars: ✭ 1,383 (-68.88%)
Mutual labels:  opengl, 3d, 3d-graphics
Assetkit
🎨 Modern 2D/3D - Importer • Exporter • Util - Library, also called (AssetIO)
Stars: ✭ 97 (-97.82%)
Mutual labels:  3d, 3d-graphics, 3d-models
3D-Engine-OpenGL-4
3D Graphics Engine For Games | C++ OpenGL 4.1
Stars: ✭ 19 (-99.57%)
Mutual labels:  3d-printing, 3d, 3d-graphics
Pyntcloud
pyntcloud is a Python library for working with 3D point clouds.
Stars: ✭ 919 (-79.32%)
Mutual labels:  3d, 3d-graphics, 3d-models
Meshlab
The open source mesh processing system
Stars: ✭ 2,619 (-41.07%)
Mutual labels:  3d, 3d-models, 3d-printing
Sdf
Simple SDF mesh generation in Python
Stars: ✭ 683 (-84.63%)
Mutual labels:  3d, 3d-models, 3d-printing
Renderhelp
⚡️ 可编程渲染管线实现,帮助初学者学习渲染
Stars: ✭ 494 (-88.88%)
Mutual labels:  opengl, 3d, 3d-graphics
Lume
Create CSS3D/WebGL applications declaratively with HTML. Give regular DOM elements shadow and lighting.
Stars: ✭ 445 (-89.99%)
Mutual labels:  3d, 3d-graphics, 3d-models
3d Game Shaders For Beginners
🎮 A step-by-step guide to implementing SSAO, depth of field, lighting, normal mapping, and more for your 3D game.
Stars: ✭ 11,698 (+163.23%)
Mutual labels:  opengl, 3d, 3d-graphics
PolyDraw
✳️ PTSource PolyDraw is a free 3D polygonal modeller for Windows x86 and x64, for creating or modifying 3D objects using a mesh of 3D points and parametric NURBS Curves .Exports and imports to over 40 formats including WebVR and 3D Printing.
Stars: ✭ 17 (-99.62%)
Mutual labels:  3d-printing, 3d-graphics, 3d-models
Curated List Of Awesome 3d Morphable Model Software And Data
The idea of this list is to collect shared data and algorithms around 3D Morphable Models. You are invited to contribute to this list by adding a pull request. The original list arised from the Dagstuhl seminar on 3D Morphable Models https://www.dagstuhl.de/19102 in March 2019.
Stars: ✭ 375 (-91.56%)
Mutual labels:  3d, 3d-graphics, 3d-models

GitHub (master) Travis (master) CircleCI (master) Coverity Scan

Visit our IRC channel

What is OpenSCAD?

Flattr this git repo

OpenSCAD is a software for creating solid 3D CAD objects. It is free software and available for Linux/UNIX, MS Windows and macOS.

Unlike most free software for creating 3D models (such as the famous application Blender), OpenSCAD focuses on the CAD aspects rather than the artistic aspects of 3D modeling. Thus this might be the application you are looking for when you are planning to create 3D models of machine parts but probably not the tool for creating computer-animated movies.

OpenSCAD is not an interactive modeler. Instead it is more like a 3D-compiler that reads a script file that describes the object and renders the 3D model from this script file (see examples below). This gives you, the designer, complete control over the modeling process and enables you to easily change any step in the modeling process or make designs that are defined by configurable parameters.

OpenSCAD provides two main modeling techniques: First there is constructive solid geometry (aka CSG) and second there is extrusion of 2D outlines. As the data exchange format for these 2D outlines Autocad DXF files are used. In addition to 2D paths for extrusion it is also possible to read design parameters from DXF files. Besides DXF files OpenSCAD can read and create 3D models in the STL and OFF file formats.

Contents

Getting started

You can download the latest binaries of OpenSCAD at https://www.openscad.org/downloads.html. Install binaries as you would any other software.

When you open OpenSCAD, you'll see three frames within the window. The left frame is where you'll write code to model 3D objects. The right frame is where you'll see the 3D rendering of your model.

Let's make a tree! Type the following code into the left frame:

cylinder(h = 30, r = 8);

Then render the 3D model by hitting F5. Now you can see a cylinder for the trunk in our tree. Now let's add the bushy/leafy part of the tree represented by a sphere. To do so, we will union a cylinder and a sphere.

union() {
  cylinder(h = 30, r = 8);
  sphere(20);
}

But, it's not quite right! The bushy/leafy are around the base of the tree. We need to move the sphere up the z-axis.

union() {
  cylinder(h = 30, r = 8);
  translate([0, 0, 40]) sphere(20);
}

And that's it! You made your first 3D model! There are other primitive shapes that you can combine with other set operations (union, intersection, difference) and transformations (rotate, scale, translate) to make complex models! Check out all the other language features in the OpenSCAD Manual.

Documentation

Have a look at the OpenSCAD Homepage (https://www.openscad.org/documentation.html) for documentation.

Building OpenSCAD

To build OpenSCAD from source, follow the instructions for the platform applicable to you below.

Prerequisites

To build OpenSCAD, you need some libraries and tools. The version numbers in brackets specify the versions which have been used for development. Other versions may or may not work as well.

If you're using a newer version of Ubuntu, you can install these libraries from aptitude. If you're using Mac, or an older Linux/BSD, there are build scripts that download and compile the libraries from source. Follow the instructions for the platform you're compiling on below.

Getting the source code

Install git (https://git-scm.com/) onto your system. Then run a clone:

git clone git://github.com/openscad/openscad.git

This will download the latest sources into a directory named openscad.

To pull the MCAD library (https://github.com/openscad/MCAD), do the following:

cd openscad
git submodule update --init

Building for macOS

Prerequisites:

  • Xcode
  • automake, libtool, cmake, pkg-config, wget (we recommend installing these using Homebrew)

Install Dependencies:

After building dependencies using one of the following options, follow the instructions in the Compilation section.

  1. From source

    Run the script that sets up the environment variables:

     source scripts/setenv-macos.sh
    

    Then run the script to compile all the dependencies:

     ./scripts/macosx-build-dependencies.sh
    
  2. Homebrew (assumes Homebrew is already installed)

     ./scripts/macosx-build-homebrew.sh
    

Building for Linux/BSD

First, make sure that you have git installed (often packaged as 'git-core' or 'scmgit'). Once you've cloned this git repository, download and install the dependency packages listed above using your system's package manager. A convenience script is provided that can help with this process on some systems:

sudo ./scripts/uni-get-dependencies.sh

After installing dependencies, check their versions. You can run this script to help you:

./scripts/check-dependencies.sh

Take care that you don't have old local copies anywhere (/usr/local/). If all dependencies are present and of a high enough version, skip ahead to the Compilation instructions.

Building for Linux/BSD on systems with older or missing dependencies

If some of your system dependency libraries are missing or old, then you can download and build newer versions into $HOME/openscad_deps by following this process. First, run the script that sets up the environment variables.

source ./scripts/setenv-unibuild.sh

Then run the script to compile all the prerequisite libraries above:

./scripts/uni-build-dependencies.sh

Note that huge dependencies like gcc, qt, or glib2 are not included here, only the smaller ones (boost, CGAL, opencsg, etc). After the build, again check dependencies.

./scripts/check-dependencies.sh

After that, follow the Compilation instructions below.

Building for Windows

OpenSCAD for Windows is usually cross-compiled from Linux. If you wish to attempt an MSVC build on Windows, please see this site: https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Building_on_Windows

To cross-build, first make sure that you have all necessary dependencies of the MXE project ( listed at https://mxe.cc/#requirements ). Don't install MXE itself, the scripts below will do that for you under $HOME/openscad_deps/mxe

Then get your development tools installed to get GCC. Then after you've cloned this git repository, start a new clean bash shell and run the script that sets up the environment variables.

source ./scripts/setenv-mingw-xbuild.sh 64

Then run the script to download & compile all the prerequisite libraries above:

./scripts/mingw-x-build-dependencies.sh 64

Note that this process can take several hours, and tens of gigabytes of disk space, as it uses the https://mxe.cc system to cross-build many libraries. After it is complete, build OpenSCAD and package it to an installer:

./scripts/release-common.sh mingw64

For a 32-bit Windows cross-build, replace 64 with 32 in the above instructions.

Compilation

First, run mkdir build && cd build && cmake .. to generate a Makefile.

Then run make. Finally, on Linux you might run make install as root.

If you had problems compiling from source, raise a new issue in the issue tracker on the github page.

This site and it's subpages can also be helpful: https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Building_OpenSCAD_from_Sources

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].