[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-70526":3},{"id":4,"name":5,"fullName":6,"owner":5,"repo":5,"description":7,"homepage":8,"htmlUrl":9,"language":10,"languages":8,"totalLinesOfCode":8,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":8,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":8,"rankLanguage":8,"license":8,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":23,"createdAt":8,"pushedAt":8,"updatedAt":38,"readmeContent":39,"aiSummary":40,"trendingCount":15,"starSnapshotCount":15,"syncStatus":41,"lastSyncTime":42,"discoverSource":43},70526,"openscad","openscad\u002Fopenscad","OpenSCAD - The Programmers Solid 3D CAD Modeller  ",null,"https:\u002F\u002Fgithub.com\u002Fopenscad\u002Fopenscad","C++",9548,1539,241,712,0,30,49,172,90,40.56,false,"main",[24,25,5,26,27,28,29,30,31,32,33,34,35,36,37],"3d-models","dxf-files","3d-graphics","3d-printing","c-plus-plus","qt5","opengl","3d","linux","windows","macos","c-plus-plus-17","cad","qt6","2026-06-12 02:02:34","[![GitHub (master)](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fchecks-status\u002Fopenscad\u002Fopenscad\u002Fmaster.svg?logo=github&label=build&logoColor=black&colorA=f9d72c&style=plastic)](https:\u002F\u002Fgithub.com\u002Fopenscad\u002Fopenscad\u002Factions)\n[![CircleCI (master)](https:\u002F\u002Fimg.shields.io\u002Fcircleci\u002Fproject\u002Fgithub\u002Fopenscad\u002Fopenscad\u002Fmaster.svg?logo=circleci&logoColor=black&colorA=f9d72c&style=plastic)](https:\u002F\u002Fcircleci.com\u002Fgh\u002Fopenscad\u002Fopenscad\u002Ftree\u002Fmaster)\n[![Coverity Scan](https:\u002F\u002Fimg.shields.io\u002Fcoverity\u002Fscan\u002F2510.svg?colorA=f9d72c&logoColor=black&style=plastic)](https:\u002F\u002Fscan.coverity.com\u002Fprojects\u002F2510)\n\n[![Visit our IRC channel](https:\u002F\u002Fkiwiirc.com\u002Fbuttons\u002Firc.libera.chat\u002Fopenscad.png)](https:\u002F\u002Fkiwiirc.com\u002Fclient\u002Firc.libera.chat\u002F#openscad)\n\n# What is OpenSCAD?\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fopencollective.com\u002Fopenscad\u002Fdonate\">\u003Cimg align=\"right\" src=\"https:\u002F\u002Fopencollective.com\u002Fopenscad\u002Fdonate\u002Fbutton@2x.png?color=white\" width=\"200\"\u002F>\u003C\u002Fa>\n\nOpenSCAD is a software for creating solid 3D CAD objects. It is free software and\navailable for Linux\u002FUNIX, MS Windows and macOS.\u003C\u002Fp>\n\nUnlike most free software for creating 3D models (such as the famous\napplication Blender), OpenSCAD focuses on the CAD aspects rather than the\nartistic aspects of 3D modeling. Thus this might be the application you are\nlooking for when you are planning to create 3D models of machine parts but\nprobably not the tool for creating computer-animated movies.\n\nOpenSCAD is not an interactive modeler. Instead it is more like a\n3D-compiler that reads a script file that describes the object and renders\nthe 3D model from this script file (see examples below). This gives you, the\ndesigner, complete control over the modeling process and enables you to easily\nchange any step in the modeling process or make designs that are defined by\nconfigurable parameters.\n\nOpenSCAD provides two main modeling techniques: First there is constructive\nsolid geometry (aka CSG) and second there is extrusion of 2D outlines. As the data\nexchange format for these 2D outlines Autocad DXF files are used. In\naddition to 2D paths for extrusion it is also possible to read design parameters\nfrom DXF files. Besides DXF files OpenSCAD can read and create 3D models in the\nSTL and OFF file formats.\n\n# Contents\n\n- [Getting Started](#getting-started)\n- [Documentation](#documentation)\n    - [Building OpenSCAD](#building-openscad)\n        - [Prerequisites](#prerequisites)\n        - [Getting the source code](#getting-the-source-code)\n        - [Building for macOS](#building-for-macos)\n        - [Building for Linux\u002FBSD](#building-for-linuxbsd)\n        - [Building for Linux\u002FBSD on systems with older or missing dependencies](#building-for-linuxbsd-on-systems-with-older-or-missing-dependencies)\n        - [Building for Windows](#building-for-windows)\n        - [Compilation](#compilation)\n\n# Getting started\n\nYou can download the latest binaries of OpenSCAD at\n\u003Chttps:\u002F\u002Fwww.openscad.org\u002Fdownloads.html>. Install binaries as you would any other\nsoftware.\n\nWhen you open OpenSCAD, you'll see three frames within the window. The\nleft frame is where you'll write code to model 3D objects. The right\nframe is where you'll see the 3D rendering of your model.\n\nLet's make a tree! Type the following code into the left frame:\n\n```scad\ncylinder(h = 30, r = 8);\n```\n\nThen render the 3D model by hitting F5. Now you can see a cylinder for\nthe trunk in our tree. Now let's add the bushy\u002Fleafy part of the tree\nrepresented by a sphere. To do so, we will union a cylinder and a\nsphere.\n\n```scad\nunion() {\n    cylinder(h = 30, r = 8);\n    sphere(20);\n}\n```\n\nBut, it's not quite right! The bushy\u002Fleafy are around the base of the\ntree. We need to move the sphere up the z-axis.\n\n```scad\nunion() {\n    cylinder(h = 30, r = 8);\n    translate([0, 0, 40]) sphere(20);\n}\n```\n\nAnd that's it! You made your first 3D model! There are other primitive\nshapes that you can combine with other set operations (union,\nintersection, difference) and transformations (rotate, scale,\ntranslate) to make complex models! Check out all the other language\nfeatures in the [OpenSCAD\nManual](https:\u002F\u002Fen.wikibooks.org\u002Fwiki\u002FOpenSCAD_User_Manual).\n\n# Documentation\n\nHave a look at the OpenSCAD Homepage (https:\u002F\u002Fwww.openscad.org\u002Fdocumentation.html) for documentation.\n\n## Building OpenSCAD\n\nTo build OpenSCAD from source, follow the instructions for the\nplatform applicable to you below.\n\n### Prerequisites\n\nTo build OpenSCAD, you need some libraries and tools. The version\nnumbers in brackets specify the versions which have been used for\ndevelopment. Other versions may or may not work as well.\n\nIf you're using a newer version of Ubuntu, you can install these\nlibraries from aptitude. If you're using Mac, or an older Linux\u002FBSD, there\nare build scripts that download and compile the libraries from source.\nFollow the instructions for the platform you're compiling on below.\n\n* A C++ compiler supporting C++17\n* [cmake (3.5 ->)](https:\u002F\u002Fcmake.org\u002F)\n* [Qt (5.12 ->)](https:\u002F\u002Fqt.io\u002F)\n* [QScintilla2 (2.9 ->)](https:\u002F\u002Friverbankcomputing.com\u002Fsoftware\u002Fqscintilla\u002F)\n* [CGAL (5.4 ->)](https:\u002F\u002Fwww.cgal.org\u002F)\n * [GMP (5.x)](https:\u002F\u002Fgmplib.org\u002F)\n * [MPFR (3.x)](https:\u002F\u002Fwww.mpfr.org\u002F)\n* [boost (1.70 ->)](https:\u002F\u002Fwww.boost.org\u002F)\n* [OpenCSG (1.4.2 ->)](http:\u002F\u002Fwww.opencsg.org\u002F)\n* [GLEW (1.5.4 ->)](http:\u002F\u002Fglew.sourceforge.net\u002F)\n* [Eigen (3.x)](https:\u002F\u002Feigen.tuxfamily.org\u002F)\n* [glib2 (2.x)](https:\u002F\u002Fdeveloper.gnome.org\u002Fglib\u002F)\n* [fontconfig (2.10 -> )](https:\u002F\u002Ffontconfig.org\u002F)\n* [freetype2 (2.4 -> )](https:\u002F\u002Ffreetype.org\u002F)\n* [harfbuzz (0.9.19 -> )](https:\u002F\u002Fwww.freedesktop.org\u002Fwiki\u002FSoftware\u002FHarfBuzz\u002F)\n* [libzip (0.10.1 -> )](https:\u002F\u002Flibzip.org\u002F)\n* [Bison (2.4 -> )](https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Fbison\u002F)\n* [Flex (2.5.35 -> )](http:\u002F\u002Fflex.sourceforge.net\u002F)\n* [pkg-config (0.26 -> )](https:\u002F\u002Fwww.freedesktop.org\u002Fwiki\u002FSoftware\u002Fpkg-config\u002F)\n* [double-conversion (2.0.1 -> )](https:\u002F\u002Fgithub.com\u002Fgoogle\u002Fdouble-conversion\u002F)\n\nFor the test suite, additional requirements are:\n* Python3 (3.8 -> )\n* [Ghostscript (10.x ->)](https:\u002F\u002Fwww.ghostscript.com\u002Findex.html)\n* [Catch2 (3.0 ->)](https:\u002F\u002Fgithub.com\u002Fcatchorg\u002FCatch2)\n\n### Getting the source code\n\nInstall git (https:\u002F\u002Fgit-scm.com\u002F) onto your system. Then run a clone:\n\n    git clone https:\u002F\u002Fgithub.com\u002Fopenscad\u002Fopenscad.git\n\nThis will download the latest sources into a directory named `openscad`.\n\nTo pull the various submodules (incl. the [MCAD library](https:\u002F\u002Fgithub.com\u002Fopenscad\u002FMCAD)), do the following:\n\n    cd openscad\n    git submodule update --init --recursive\n\n### Contributing Changes\n\nYou can create an issue to plan and discuss your change by visiting https:\u002F\u002Fgithub.com\u002Fopenscad\u002Fopenscad\u002Fissues.\n\nIf you want to work on an existing issue and plan to contribute changes via a PR later, you can assign the issue to yourself by commenting:\n\n`\u002Fassign-me`\n\nin a comment on the issue.\n\n### Building for macOS\n\nPrerequisites:\n\n* Xcode\n* automake, libtool, cmake, pkg-config, wget, meson, python-packaging (we recommend installing these using Homebrew)\n\nInstall Dependencies:\n\nAfter building dependencies using one of the following options, follow the instructions in the *Compilation* section.\n\n1. **From source**\n\n    Run the script that sets up the environment variables:\n\n        source scripts\u002Fsetenv-macos.sh\n\n    Then run the script to compile all the dependencies:\n\n        .\u002Fscripts\u002Fmacosx-build-dependencies.sh\n\n2. **Homebrew** (assumes [Homebrew](https:\u002F\u002Fbrew.sh\u002F) is already installed)\n\n        .\u002Fscripts\u002Fmacosx-build-homebrew.sh\n\n### Building for Linux\u002FBSD\n\nFirst, make sure that you have git installed (often packaged as 'git-core'\nor 'scmgit'). Once you've cloned this git repository, download and install\nthe dependency packages listed above using your system's package\nmanager. A convenience script is provided that can help with this\nprocess on some systems:\n\n    sudo .\u002Fscripts\u002Funi-get-dependencies.sh qt6\n\nAfter installing dependencies, check their versions. You can run this\nscript to help you:\n\n    .\u002Fscripts\u002Fcheck-dependencies.sh\n\nTake care that you don't have old local copies anywhere (`\u002Fusr\u002Flocal\u002F`).\nIf all dependencies are present and of a high enough version, skip ahead\nto the Compilation instructions.\n\n### Building for Linux\u002FBSD on systems with older or missing dependencies\n\nIf some of your system dependency libraries are missing or old, then you\ncan download and build newer versions into `$HOME\u002Fopenscad_deps` by\nfollowing this process. First, run the script that sets up the\nenvironment variables.\n\n    source .\u002Fscripts\u002Fsetenv-unibuild.sh\n\nThen run the script to compile all the prerequisite libraries above:\n\n    .\u002Fscripts\u002Funi-build-dependencies.sh\n\nNote that huge dependencies like gcc, qt, or glib2 are not included\nhere, only the smaller ones (boost, CGAL, opencsg, etc). After the\nbuild, again check dependencies.\n\n    .\u002Fscripts\u002Fcheck-dependencies.sh\n\nAfter that, follow the Compilation instructions below.\n\n### Building on Nix\n\nA [development Nix shell](scripts\u002Fnix) is included for local, incremental compilation.\n\n### Building for Windows\n\nOpenSCAD for Windows is usually cross-compiled from Linux. If you wish to\nattempt an MSVC build on Windows, please see this site:\nhttps:\u002F\u002Fen.wikibooks.org\u002Fwiki\u002FOpenSCAD_User_Manual\u002FBuilding_on_Windows\n\nMSVC build support has been added to OpenSCAD. For instructions on how to build it,\nrefer to [building with MSVC](doc\u002Fwin-build.md).\n\nTo cross-build, first make sure that you have all necessary dependencies\nof the MXE project ( listed at https:\u002F\u002Fmxe.cc\u002F#requirements ). Don't install\nMXE itself, the scripts below will do that for you under `$HOME\u002Fopenscad_deps\u002Fmxe`\n\nThen get your development tools installed to get GCC. Then after you've\ncloned this git repository, start a new clean bash shell and run the\nscript that sets up the environment variables.\n\n    source .\u002Fscripts\u002Fsetenv-mingw-xbuild.sh 64\n\nThen run the script to download & compile all the prerequisite libraries above:\n\n    .\u002Fscripts\u002Fmingw-x-build-dependencies.sh 64\n\nNote that this process can take several hours, and tens of gigabytes of\ndisk space, as it uses the [https:\u002F\u002Fmxe.cc](https:\u002F\u002Fmxe.cc) system to cross-build many\nlibraries. After it is complete, build OpenSCAD and package it to an\ninstaller:\n\n    .\u002Fscripts\u002Frelease-common.sh mingw64\n\nFor a 32-bit Windows cross-build, replace 64 with 32 in the above instructions.\n\n### Building for WebAssembly\n\nWe support building OpenSCAD headless for WebAssembly w\u002F Emscripten, using a premade Docker image built in [openscad\u002Fopenscad-wasm](https:\u002F\u002Fgithub.com\u002Fopenscad\u002Fopenscad-wasm) (which also has usage examples)\n\n#### Browser\n\nThe following command creates `build-web\u002Fopenscad.wasm` & `build-web\u002Fopenscad.js`:\n\n```bash\n.\u002Fscripts\u002Fwasm-base-docker-run.sh emcmake cmake -B build-web -DCMAKE_BUILD_TYPE=Debug -DEXPERIMENTAL=1\n.\u002Fscripts\u002Fwasm-base-docker-run.sh cmake --build build-web -j2\n```\n\n[openscad\u002Fopenscad-playground](https:\u002F\u002Fgithub.com\u002Fopenscad\u002Fopenscad-playground) uses this WASM build to provide a [Web UI](https:\u002F\u002Fochafik.com\u002Fopenscad2\u002F) with a subset of features of OpenSCAD.\n\n> [!NOTE]\n> With a debug build (`-DCMAKE_BUILD_TYPE=Debug`), you can set C++ breakpoints in Firefox and in Chrome (the latter [needs an extension](https:\u002F\u002Fdeveloper.chrome.com\u002Fdocs\u002Fdevtools\u002Fwasm)).\n\n#### Standalone node.js build\n\nThe following command creates `build-node\u002Fopenscad.js`, which is executable (requires `node`):\n\n```bash\n.\u002Fscripts\u002Fwasm-base-docker-run.sh emcmake cmake -B build-node -DWASM_BUILD_TYPE=node -DCMAKE_BUILD_TYPE=Debug -DEXPERIMENTAL=1\n.\u002Fscripts\u002Fwasm-base-docker-run.sh cmake --build build-node -j2\nbuild-node\u002Fopenscad.js --help\n```\n\n> [!NOTE]\n> With a debug build (`-DCMAKE_BUILD_TYPE=Debug`), you can set C++ breakpoints in VSCode + Node ([needs an extension](https:\u002F\u002Fcode.visualstudio.com\u002Fdocs\u002Fnodejs\u002Fnodejs-debugging#_debugging-webassembly)).\n\n### Compilation\n\nFirst, run `cmake -B build -DEXPERIMENTAL=1` to generate a Makefile in the `build` folder.\n\nThen run `cmake --build build`. Finally, on Linux you might run `cmake --install build` as root.\n\nIf you had problems compiling from source, raise a new issue in the\n[issue tracker on the github page](https:\u002F\u002Fgithub.com\u002Fopenscad\u002Fopenscad\u002Fissues).\n\nThis site and it's subpages can also be helpful:\nhttps:\u002F\u002Fen.wikibooks.org\u002Fwiki\u002FOpenSCAD_User_Manual\u002FBuilding_OpenSCAD_from_Sources\n\nOnce built, you can run tests with `ctest` from the `build` directory.\n\nNote: Both `cmake --build` and `ctest` accepts a `-j N` argument for distributing the load over `N` parallel processes.\n\n### Running CI workflows locally\n\n*   Install [circleci-cli](https:\u002F\u002Fcircleci.com\u002Fdocs\u002F2.0\u002Flocal-cli\u002F) (you'll need an API key)\n\n    *Note*: we also use GitHub Workflows, but only to run tests on Windows (which we cross-build for in the Linux-based CircleCI workflows below). Also, [act](https:\u002F\u002Fgithub.com\u002Fnektos\u002Fact) doesn't like our submodule setup anyway.\n\n*   Run the CI jobs\n\n\t```bash\n\t# When \"successful\", these will fail to upload at the very end of the workflow.\n\tcircleci local execute --job  openscad-mxe-64bit\n\tcircleci local execute --job  openscad-mxe-32bit\n\tcircleci local execute --job  openscad-appimage-64bit\n\t```\n\n\t*Note*: openscad-macos can't be built locally.\n\n*   If\u002Fwhen GCC gets randomly killed, give docker more RAM (e.g. 4GB per concurrent image you plan to run)\n\n*   To debug the jobs more interactively, you can go the manual route (inspect .circleci\u002Fconfig.yml to get the actual docker image you need)\n\n\t```bash\n\tdocker run --entrypoint=\u002Fbin\u002Fbash -it openscad\u002Fmxe-x86_64-gui:latest\n\t```\n\n\tThen once you get the console:\n\n\t```bash\n\tgit clone https:\u002F\u002Fgithub.com\u002F%your username%\u002Fopenscad.git workspace\n\tcd workspace\n\tgit checkout %your branch%\n\tgit submodule init\n\tgit submodule update\n\n\t# Then execute the commands from .circleci\u002Fconfig.yml:\n\t#    export NUMCPU=2\n\t#    ...\n\t#    .\u002Fscripts\u002Frelease-common.sh -snapshot -mingw64 -v \"$OPENSCAD_VERSION\"\n\t```\n","OpenSCAD 是一款用于创建实体3D CAD模型的软件。它通过脚本语言来定义和渲染3D模型，支持构造实体几何（CSG）和2D轮廓拉伸两种主要建模技术。该软件特别适用于需要精确控制设计过程的应用场景，如机械零件的设计，而不适合用于动画电影等艺术创作。OpenSCAD能够读取和生成STL、OFF以及Autocad DXF格式文件，允许用户基于参数化设计轻松调整模型。其非交互式的特性为设计师提供了高度灵活性，使其成为专注于功能性而非外观设计项目的理想选择。",2,"2026-06-11 03:32:39","trending"]