├── LICENSE └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | CC0 1.0 Universal 2 | 3 | Statement of Purpose 4 | 5 | The laws of most jurisdictions throughout the world automatically confer 6 | exclusive Copyright and Related Rights (defined below) upon the creator and 7 | subsequent owner(s) (each and all, an "owner") of an original work of 8 | authorship and/or a database (each, a "Work"). 9 | 10 | Certain owners wish to permanently relinquish those rights to a Work for the 11 | purpose of contributing to a commons of creative, cultural and scientific 12 | works ("Commons") that the public can reliably and without fear of later 13 | claims of infringement build upon, modify, incorporate in other works, reuse 14 | and redistribute as freely as possible in any form whatsoever and for any 15 | purposes, including without limitation commercial purposes. These owners may 16 | contribute to the Commons to promote the ideal of a free culture and the 17 | further production of creative, cultural and scientific works, or to gain 18 | reputation or greater distribution for their Work in part through the use and 19 | efforts of others. 20 | 21 | For these and/or other purposes and motivations, and without any expectation 22 | of additional consideration or compensation, the person associating CC0 with a 23 | Work (the "Affirmer"), to the extent that he or she is an owner of Copyright 24 | and Related Rights in the Work, voluntarily elects to apply CC0 to the Work 25 | and publicly distribute the Work under its terms, with knowledge of his or her 26 | Copyright and Related Rights in the Work and the meaning and intended legal 27 | effect of CC0 on those rights. 28 | 29 | 1. Copyright and Related Rights. A Work made available under CC0 may be 30 | protected by copyright and related or neighboring rights ("Copyright and 31 | Related Rights"). Copyright and Related Rights include, but are not limited 32 | to, the following: 33 | 34 | i. the right to reproduce, adapt, distribute, perform, display, communicate, 35 | and translate a Work; 36 | 37 | ii. moral rights retained by the original author(s) and/or performer(s); 38 | 39 | iii. publicity and privacy rights pertaining to a person's image or likeness 40 | depicted in a Work; 41 | 42 | iv. rights protecting against unfair competition in regards to a Work, 43 | subject to the limitations in paragraph 4(a), below; 44 | 45 | v. rights protecting the extraction, dissemination, use and reuse of data in 46 | a Work; 47 | 48 | vi. database rights (such as those arising under Directive 96/9/EC of the 49 | European Parliament and of the Council of 11 March 1996 on the legal 50 | protection of databases, and under any national implementation thereof, 51 | including any amended or successor version of such directive); and 52 | 53 | vii. other similar, equivalent or corresponding rights throughout the world 54 | based on applicable law or treaty, and any national implementations thereof. 55 | 56 | 2. Waiver. To the greatest extent permitted by, but not in contravention of, 57 | applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and 58 | unconditionally waives, abandons, and surrenders all of Affirmer's Copyright 59 | and Related Rights and associated claims and causes of action, whether now 60 | known or unknown (including existing as well as future claims and causes of 61 | action), in the Work (i) in all territories worldwide, (ii) for the maximum 62 | duration provided by applicable law or treaty (including future time 63 | extensions), (iii) in any current or future medium and for any number of 64 | copies, and (iv) for any purpose whatsoever, including without limitation 65 | commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes 66 | the Waiver for the benefit of each member of the public at large and to the 67 | detriment of Affirmer's heirs and successors, fully intending that such Waiver 68 | shall not be subject to revocation, rescission, cancellation, termination, or 69 | any other legal or equitable action to disrupt the quiet enjoyment of the Work 70 | by the public as contemplated by Affirmer's express Statement of Purpose. 71 | 72 | 3. Public License Fallback. Should any part of the Waiver for any reason be 73 | judged legally invalid or ineffective under applicable law, then the Waiver 74 | shall be preserved to the maximum extent permitted taking into account 75 | Affirmer's express Statement of Purpose. In addition, to the extent the Waiver 76 | is so judged Affirmer hereby grants to each affected person a royalty-free, 77 | non transferable, non sublicensable, non exclusive, irrevocable and 78 | unconditional license to exercise Affirmer's Copyright and Related Rights in 79 | the Work (i) in all territories worldwide, (ii) for the maximum duration 80 | provided by applicable law or treaty (including future time extensions), (iii) 81 | in any current or future medium and for any number of copies, and (iv) for any 82 | purpose whatsoever, including without limitation commercial, advertising or 83 | promotional purposes (the "License"). The License shall be deemed effective as 84 | of the date CC0 was applied by Affirmer to the Work. Should any part of the 85 | License for any reason be judged legally invalid or ineffective under 86 | applicable law, such partial invalidity or ineffectiveness shall not 87 | invalidate the remainder of the License, and in such case Affirmer hereby 88 | affirms that he or she will not (i) exercise any of his or her remaining 89 | Copyright and Related Rights in the Work or (ii) assert any associated claims 90 | and causes of action with respect to the Work, in either case contrary to 91 | Affirmer's express Statement of Purpose. 92 | 93 | 4. Limitations and Disclaimers. 94 | 95 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 96 | surrendered, licensed or otherwise affected by this document. 97 | 98 | b. Affirmer offers the Work as-is and makes no representations or warranties 99 | of any kind concerning the Work, express, implied, statutory or otherwise, 100 | including without limitation warranties of title, merchantability, fitness 101 | for a particular purpose, non infringement, or the absence of latent or 102 | other defects, accuracy, or the present or absence of errors, whether or not 103 | discoverable, all to the greatest extent permissible under applicable law. 104 | 105 | c. Affirmer disclaims responsibility for clearing rights of other persons 106 | that may apply to the Work or any use thereof, including without limitation 107 | any person's Copyright and Related Rights in the Work. Further, Affirmer 108 | disclaims responsibility for obtaining any necessary consents, permissions 109 | or other rights required for any use of the Work. 110 | 111 | d. Affirmer understands and acknowledges that Creative Commons is not a 112 | party to this document and has no duty or obligation with respect to this 113 | CC0 or use of the Work. 114 | 115 | For more information, please see 116 | 117 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Awesome](https://awesome.re/badge.svg)](https://awesome.re) 2 | 3 | ## Goal 4 | Attempting to bring more awesomeness & harmony to the OpenSCAD community. 5 | 6 | 7 | 8 | [![Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public.](https://www.repostatus.org/badges/latest/wip.svg)](https://www.repostatus.org/#wip) 9 | 10 | I am marking this project as WIP planning for a better awesome-list. 11 | 12 | If you have an openscad project please open a PR. 13 | 14 | # awesome-openscad [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) 15 | A collection of awesome OpenSCAD resources 16 | 17 | [![GitHub Followers](https://img.shields.io/github/followers/elasticdotventures?style=social)](https://github.com/elasticdotventures) 18 | [![GitHub Repo stars](https://img.shields.io/github/stars/elasticdotventures/awesome-openscad?style=social)](https://github.com/elasticdotventures/awesome-openscad) 19 | 20 | 21 | # Awesome communities 22 | * [https://github.com/openscad/openscad]() 23 | * [![Visit our IRC channel](https://kiwiirc.com/buttons/irc.libera.chat/openscad.png)](https://kiwiirc.com/client/irc.libera.chat/#openscad) 24 | 25 | * [IRC/Matrix.org bridge](https://matrix.to/#/#openscad:libera.chat) 26 | 27 | * [Reddit r/OpenSCAD](https://reddit.com/r/openscad) 28 | * https://mastodon.social/web/tags/openscad 29 | * CadHub Discord: (see page for link) 30 | 31 | ## 😘 Acknowledge Friends of SCAD 32 | * 🥰🦀 [CSGRS](https://github.com/timschmidt/csgrs/) Constructive solid geometry with polygons using BSP trees in Rust 33 | * [Fornjot](https://www.fornjot.app/) built in RUST, similar to OpenSCAD with boundary representation. 34 | * 🐍.python [CadQuery/cadquery]() - a popular python centric dialect that is turing complete and therefore perhaps better suited for systems coding & simulation. 35 | * ©️++ [OpenCascade]() - a C++ wholly separate but similar distant cousin of OpenSCAD. 36 | * [ImplicitCAD]() may not use OpenSCAD (can't tell) 37 | 38 | 39 | # 👋 Platforms supporting OpenSCAD syntax 40 | // TODO: this should be a table suggesting environments & differences 41 | * [OpenSCAD](https://github.com/openscad/openscad) the source of truth for everybody else. 42 | * [FreeCAD](https://github.com/FreeCAD/FreeCAD) a venerable free open-source tool that features an OpenSCAD workbench 43 | * [JSCAD](https://github.com/jscad/OpenJSCAD.org) 44 | * previously known as OpenJSCAD, online self-hosteable web-based ui & CLI. 📢 45 | * 👀 Live Demo: [https://openjscad.xyz]() 46 | * [Visual Studio Code](https://github.com/Antyos/vscode-openscad) 47 | * Language Service Provider "LSP" module (should be compatible with any editor, but only tested on vs-code) 48 | * [cadhub](https://github.com/Irev-Dev/cadhub) 49 | * 👀 Live Demo: [https://cadhub.xyz/]() 50 | * [Blender](https://github.com/elasticdotventures/blender-openSCAD) 51 | * [Netbeans, VIM, Emacs, Atom]() 52 | * 👎 unmaintained, possibly working: https://github.com/openscad/openscad/pull/3635 (29 commits ahead, 1038 commits behind master at time of writing) 53 | * 👀 [Tomatower/openscad](https://github.com/Tomatower/openscad) (29 commits ahead, 1038 commits behind master at time of writing) 54 | * [RapCAD]() 55 | * [Libre 3D]() 56 | * [BlocksCAD] 57 | * Models @ MakeWithTech 58 | * openscad.cloud by Autodrop3d 59 | 60 | 61 | # 🍰 Parametric Geometry Syntax Sugar 62 | ### Libraries 63 | - [2D connection library](https://www.youmagine.com/designs/openscad-2d-connection-library) 64 | - [BOLTS: Open Library of Technical Specifications](http://www.bolts-library.org) 65 | - [Celtic Knots](https://github.com/beanz/celtic-knot-scad) 66 | - [MCAD: Parametric CAD Library](https://github.com/openscad/MCAD) 67 | - [Shapes](https://www.thingiverse.com/thing:212041) 68 | - [Threads](http://dkprojects.net/openscad-threads) 69 | - [U-Joint Library](https://www.thingiverse.com/thing:125939) 70 | - [Utility libraries](https://github.com/OskarLinde/scad-utils) 71 | 72 | ## Functional 73 | * https://github.com/thehans/FunctionalOpenSCAD 74 | * https://github.com/thehans/funcutils 75 | functional openscad 76 | 77 | 78 | 79 | ## Ubiqutious OpenSCAD 😎 80 | - popular & useful Libraries/tool-kits 81 | 82 | * https://github.com/htho/scadlib 83 | * dotSCAD v3.2 84 | https://github.com/JustinSDK/dotSCAD 85 | * archimedean spiral 86 | * BOSL2 87 | https://github.com/revarbat/BOSL2/wiki 88 | * agentscad 89 | https://github.com/GillesBouissac/agentscad 90 | * snap joint 91 | * threaded screws 92 | * hirth joint 93 | * beveling 94 | * glue shapes 95 | * OpenSCADutil 96 | * SKADIS!! 97 | * https://github.com/franpoli/OpenSCADutil 98 | 99 | * NopSCADlib 100 | * https://github.com/nophead/NopSCADlib 101 | * BH-Lib 102 | https://github.com/brandonhill/BH-Lib 103 | 104 | * Directions, orientation, position 105 | https://github.com/tanius/openscad-models 106 | 107 | * omdl 'mechanical design library' 108 | https://royasutton.github.io/openscad-amu/ 109 | https://royasutton.github.io/omdl/ 110 | 111 | * https://github.com/dinther/openSCAD_functions 112 | 113 | * openscad-fiddlybits 114 | https://github.com/mathcodeprint/openscad-fiddlybits 115 | 116 | 117 | * openJoystick 🕹️ 118 | https://www.youtube.com/watch?v=GIY6-3KwIS8&list=PLC66292176B625E2A 119 | 120 | 121 | 122 | 123 | # Language Bindings 124 | - compositional openSCAD transpilation & visualization 125 | ### 🦀.RUST 126 | https://github.com/TheZoq2/Rust-Scad 127 | 128 | ### WASM 129 | https://github.com/openscad/openscad-wasm 130 | 131 | 132 | ### 🐍.Python 133 | https://github.com/taxpon/openpyscad 134 | * https://github.com/mrkoz/python-threaded-openscad 135 | * Projects 136 | * https://awesomeopensource.com/project/karosc/pyDactyl 137 | * https://github.com/r4dr3fr4d/pykeeb 138 | 139 | ### 🦄.TypeScript 140 | * (https://github.com/scad-js/scad-js) 141 | * code formatter 142 | * (https://github.com/Maxattax97/openscad-format) 143 | * (https://www.npmjs.com/package/nodescad) 144 | 145 | 146 | 147 | 148 | # Tutorials / Creating (the process) 149 | https://mirmik.github.io/zencad/en/index.html 150 | * https://www.youtube.com/watch?v=tOx5UI8GGns 151 | * https://github.com/benjaminwand/cookie-cutters 152 | 153 | workflows: 154 | https://github.com/kikaitachi/naminukas 155 | 156 | # Merging 157 | * Lofting 158 | https://github.com/jakubczaplicki/this-to-that 159 | 160 | 161 | # Importing 162 | * https://github.com/Zigazou/svg2dxf 163 | * https://github.com/Spiritdude/SVG2SCAD 164 | * https://github.com/htho/fzz2scad 165 | # KiCad 166 | https://github.com/mplewis/kicad-libraries 167 | # Gerber 168 | https://github.com/drujensen/GerbToSCAD 169 | 170 | 171 | # Exporting 172 | * PNG 173 | https://github.com/openscad/image-generator/issues 174 | 175 | # 3d printing 176 | * https://github.com/Spiritdude/Print3r 177 | * Anti-warping walls 178 | https://github.com/JohnStrunk/WhateverSCAD 179 | 180 | 181 | # Assemblies 182 | * Attach Library 183 | https://www.thingiverse.com/thing:30136 184 | 185 | * constructive 186 | https://github.com/solidboredom/constructive 187 | * https://github.com/solidboredom/constructive/blob/main/tutorials/basic-tutorial.md 188 | 189 | * OpenSCADMachineDesignFramework 190 | https://github.com/Axford/OpenSCADMachineDesignFramework 191 | 192 | * MoCad ?? 193 | https://github.com/davidthings/mocad 194 | 195 | * ScrewsMetric has complex assemblies 196 | https://github.com/More-Wrong/ScrewsMetric 197 | 198 | * https://github.com/usagi/usagi.scad 199 | 200 | 201 | https://github.com/eyal0/openscad-pcb-boxes 202 | 203 | * PCB/EDA object syntax 204 | https://github.com/htho/scadlib-electronic-components/tree/master/electromechanical/other/printed_circuit_boards 205 | 206 | 207 | # Robotics 208 | https://github.com/prl-mushr/mushr_cad 209 | https://github.com/fablab-nea/lablock 210 | 211 | https://github.com/kikaitachi/naminukas 212 | 213 | # Threads 214 | * ThreadLib 215 | https://github.com/adrianschlatter/threadlib 216 | * Cap Generator 217 | https://github.com/muesli/cap-generator 218 | * Metric Threads 219 | * https://github.com/gabfv/scad-metric-thread-library 220 | 221 | # Gears 222 | * OpenSCAD gear generator 223 | https://github.com/chrisspen/gears 224 | * Lens Gears 225 | http://jaymis.com/2015/11/3d-printable-seamless-friction-fit-lens-gears-for-follow-focus/ 226 | * Spherical Involute Bevel Gears 227 | https://github.com/JediJeremy/BevelGears 228 | 229 | 230 | # Bearings & Belts 231 | https://github.com/phidiasllc/scad_libraries 232 | 233 | # Pistons, Solenoids & Valves 234 | * PistonPen 235 | https://github.com/sanja-byelkin/SimplePistonPen 236 | - Peristaltic Pump 237 | * https://github.com/TomHodson/Peristaltic-Pump/ 238 | * https://github.com/adricl/peristaltic-pump 239 | * Moineau Pump/Paste Extruder 240 | https://github.com/doctek/Moineau-Paste-Extruder 241 | 242 | 243 | # Funnels & Clyndrical couplings 244 | https://github.com/alexbirklykke/openscad 245 | 246 | # Text 247 | https://github.com/brodykenrick/text_on_OpenSCAD 248 | * Braille 249 | https://github.com/whosawhatsis/braille-openscad 250 | 251 | 252 | 253 | # Heatsinks 254 | * https://github.com/fullyautomated/means-of-circuit-design/tree/main/3D 255 | 256 | # Optical Encoder 257 | * https://github.com/Irev-Dev/3D-Printed-Optical-Encoder 258 | 259 | 260 | 261 | # ServoArms 262 | https://github.com/hugokernel/OpenSCAD_ServoArms 263 | 264 | # Cyborg Beast Prosthetics? 265 | https://github.com/daprice/Flexy-Beast 266 | 267 | # Novel/Interesting 268 | git submodule update --init 269 | https://github.com/keesj/simple-paste-extruder 270 | 271 | * Thrustmeter Assembly 272 | https://github.com/AndKe/ThrustMeter 273 | 274 | * Keys 275 | https://github.com/rsheldiii/KeyV2 276 | 277 | * Lock Picking 278 | https://github.com/spookey/lockpickr 279 | 280 | * MXSwitches 281 | https://github.com/qwelyt/Parametric-switch-holder/blob/master/Parametric-switch-holder.scad 282 | 283 | * AirCore / Transformers 284 | https://github.com/HelsinkiHacklab/aircores/tree/master/coilforms 285 | 286 | * Wire Dispenser 287 | https://github.com/tuna-f1sh/wire-dispenser 288 | 289 | * Bottle Engraver 290 | https://github.com/farbro/bengraver 291 | 292 | * Mobius stuff 293 | https://github.com/oherrala/openscad-moebius 294 | 295 | * Ventilator 296 | https://hackaday.io/project/170507-cosv-cam-open-source-ventilator 297 | 298 | # Joints 299 | https://github.com/HopefulLlama/JointSCAD 300 | 301 | 302 | # Nuts & Bolts 303 | * https://github.com/JohK/nutsnbolts/ 304 | ``` 305 | include ; 306 | 307 | screw("M20x100", thread="modeled"); // screw M20x100 with thread 308 | nut("M20", thread="modeled"); // corresponding nut with thread 309 | 310 | screw("M3x12"); // screw M3x12 311 | 312 | ``` 313 | 314 | # Wheels & Pully 315 | * Pully & GT5, idler, etc. 316 | https://github.com/ElectricSkateboard/SolidModels/blob/master/Pulley_T-MXL-XL-HTD-GT2_N-tooth.scad 317 | * https://github.com/alexfranke/Highly-Configurable-Wheel 318 | * Rover Wheel w/60:1 Planetary drive & motor 319 | https://github.com/DavidMFlynn/RoverWheel/issues 320 | * Filament Tires 321 | https://github.com/Arcus-3d/FilaMecanum 322 | 323 | 324 | # Pegboards 325 | * skadis 326 | * https://github.com/franpoli/OpenSCADutil/tree/master/ikea_skadis_pegboard_accessories 327 | 328 | * https://github.com/MGX3D/pegstr 329 | * https://github.com/MGX3D/pegstr/issues/7 330 | 331 | https://github.com/ringerc/openscad-pegboard-peggrid 332 | 333 | 334 | # 2D 335 | * svgShape 336 | https://github.com/dinther/pathbuilder 337 | 338 | * https://github.com/OskarLinde/scad-utils 339 | 2d morphology 340 | * SCADTrace 341 | emboss black & white bitmap to openscad object 342 | https://github.com/guyc/scadtrace 343 | * Laser Cutting 344 | https://github.com/bmsleight/lasercut 345 | https://github.com/mbugert/laserscad 346 | 347 | 348 | 349 | # Antenna 350 | https://awesomeopensource.com/project/SmittyHalibut/coax-trap-form 351 | 352 | 353 | # Case & Boxes 354 | https://github.com/larsch/lasercut-box-openscad 355 | https://github.com/ubitux/shimonbox 356 | https://github.com/eclecticc/ParametricCase 357 | https://github.com/cfinke/OpenSCAD-Dovetails 358 | A fully 3D printed stackable seed incubation/sprout growing system 359 | https://github.com/apollo-ng/seedstack 360 | - https://www.thingiverse.com/thing:1355018 361 | 362 | * PCB fixture generator 363 | https://github.com/gskielian/PCB-Fixture-Generator 364 | 365 | https://github.com/schub/basteln 366 | 367 | 368 | https://github.com/apollo-ng/seedstack 369 | https://awesomeopensource.com/project/sebastianrakel/SolderStuffStation 370 | https://github.com/DaveDavenport/SensorBox 371 | 372 | https://github.com/heyspacebuck/parametric-chastity-cage 373 | 374 | # RPI 375 | * https://github.com/RigacciOrg/openscad-rpi-library 376 | * https://github.com/pinae/Raspi3-Airchannel 377 | * + Servos 378 | https://github.com/process1183/openscad-library 379 | 380 | 381 | https://github.com/TomHodson/Raspberry-Pi-OpenSCAD-Model 382 | * openscad -o rpi.png --camera=-30,0,12,41,0,201,620 --imgsize=640,480 --projection=p rpi.scad 383 | 384 | 385 | # Robots 386 | * Verilog 387 | http://staff.ustc.edu.cn/~songch/download/IEEE.1364-2005.pdf 388 | * https://github.com/kikaitachi/naminukas 389 | * DIY Servo 390 | https://github.com/kwatters/DIYServo 391 | 392 | # Personal Utilities 393 | https://github.com/jernst/josl 394 | Horizontal 19" Hanging Rack 395 | https://github.com/cromo/horizontal-rack 396 | * jpeg,png, etc. to STL 397 | https://github.com/Harakan/litho_research 398 | * 399 | https://awesomeopensource.com/project/willdurand/kicad-libs 400 | 401 | # Calendars 402 | * https://chrastecky.dev/3d-printing/open-scad-configurable-calendar-3d-model 403 | 404 | 405 | 406 | ------ LINE OF OBSOLENCE ------ 407 | 408 | # Obsolete (Apparently Unmaintained) 409 | NOTE: anything that doesn't work in the stable 410 | or nightly belongs here 411 | 412 | single arm scara robot 413 | https://github.com/robdobsn/ScaraOn 414 | 415 | https://github.com/drigberg/nerdata 416 | 417 | https://github.com/mtu-most/most-scad-libraries 418 | 419 | https://github.com/sjkelly/Magpie 420 | 421 | https://github.com/chadkirby/BezierScad 422 | 423 | https://github.com/graphscad 424 | 425 | https://cadhub.xyz/ 426 | * round anything library 427 | https://learn.cadhub.xyz/docs/round-anything/api-reference/ 428 | 429 | https://github.com/cznewt/openscad-model-library 430 | 431 | https://github.com/snemetz/OpenSCAD-Modules 432 | 433 | https://github.com/Verkhovskaya/PyCAD 434 | 435 | 436 | https://www.thingiverse.com/thing:689564 437 | https://github.com/hyperair/fan-blades/issues 438 | 439 | https://github.com/revk/PCBCase 440 | https://cults3d.com/en/users/JustinSDK/creations?page=2 441 | https://en.wikibooks.org/wiki/OpenSCAD_Tutorial 442 | https://github.com/rcolyer/smooth-prim 443 | https://github.com/rcolyer/smooth-prim 444 | https://github.com/dzhu/openscad-language-server 445 | https://github.com/Leathong/openscad-LSP 446 | --------------------------------------------------------------------------------