Programming with OpenSCAD Front Cover

Programming with OpenSCAD

A Beginner's Guide to Coding 3D-Printable Objects
by Justin Gohde and Marius Kintel
August 2021, 206 pp.

Look Inside!

Programming with OpenSCAD pages 36-37Programming with OpenSCAD pages 40-41Programming with OpenSCAD pages 44-45

Download Chapter 1: 3D DRAWING WITH OPENSCAD

OpenSCAD is freely available open source software that enables nondesigners to easily create 3D designs using a text-based programming language. It’s a great language for beginners because the instant 3D visualization gives you immediate feedback on the results of your code. This book channels OpenSCAD’s visual benefits and user-friendliness into a STEAM-focused, project-based tutorial that teaches the basics of coding, 3D printing, and computational thinking while you develop your spatial reasoning by creating 3D designs with OpenSCAD.

Presuming no prior experience with either programming or 3D design, each chapter builds a scaffolded understanding of core concepts. You’ll start by defining, drawing and displaying geometric primitives with text-based code, then expand your creative toolbox with transformation operations – like rotating, reflecting, scaling, and combining shapes.

As the projects become more sophisticated, so will your programming skills; you’ll use loops for replicating objects, if statements for differentiating your designs, and parameterized, self-contained modules to divide longer scripts into separate files. Along the way, you'll learn 3D printing tips so that you can produce physical mementos of your progress and get physical feedback that lets you correct mistakes in real time. In addition, the book provides hands-on and accessible design exercises at the end of each chapter so that you can practice applying new concepts immediately after they are introduced.

You’ll learn:

  • Programming basics like working with variables, loops, conditional statements, and parameterized modules
  • Transformation operations, such as rotate, reflect, and scale, to create complex shapes
  • Extrusion techniques for turning 2D shapes into elaborate 3D designs
  • Computational-thinking concepts, including decomposition, abstraction, and pattern recognition
  • OpenSCAD’s Boolean, Minkowski and hull operations for combining multiple 3D shapes into one
  • 3D design fundamentals, like navigating the xyz-axis, orthogonal vs. perspective views, and constructive solid geometry
  • Organizing bigger designs into separate files to make code more readable and collaborative

Accessibly written for a wide audience (advanced middle schoolers, high school students, college students, artists, makers and lifelong-learners alike), this is the perfect guide to becoming proficient at programming in general and 3D modeling in particular.

Author Bio 

Justin Gohde has been teaching Math and Computer Science for more than 20 years. He is the Head of Computer Science at Trinity School in Manhattan, New York where he oversees the Computer Science curriculum and programs, including a Design Lab makerspace with a wide collection of rapid prototyping tools for supporting Computer Science, Robotics, and other STEAM-focused projects.

Marius Kintel is the primary author and maintainer of OpenSCAD. He is a software engineer with more than 20 years of professional experience in diverse fields such as 3D visualization, physical computing, manufacturing automation, and cloud computing. In 2007, he became involved in the RepRap project out of an interest in learning electronics and the opportunity to transfer his knowledge of 3D graphics into the creation of tangible objects. Together with the rest of the local RepRap team at the Metalab hackerspace in Vienna, Austria, OpenSCAD was created out of a need for an open-source multi-platform design tool more suitable for 3D printing. The project was adopted by the maker community at large, and has since grown to become one of the most popular open-source 3D modeling tools for 3D printing.

Table of contents 

Chapter 1: 3D Drawing with OpenSCAD
Chapter 2: More Ways to Transform Shapes
Chapter 3: 2D Shapes
Chapter 4: Using Loops and Variables
Chapter 5: Modules
Chapter 6: Dynamic Designs with if Statements
Chapter 7: Designing Big Projects
Appendix A: OpenSCAD Language Reference
Appendix B: OpenSCAD Visual Reference

View the Copyright Page
View the detailed Table of Contents
View the Index


"An excellent resource for anyone looking to learn the powerful OpenSCAD language."
—Ben Lutkevich, TechTarget

"The 3D CAD program, OpenSCAD, is a natural tool to learn programming. OpenSCAD lets you see the structures you are creating, thus giving instant visual feedback. This book is a concise but thorough foundation in OpenSCAD in particular and coding in general. And how better to learn than from the primary developer of the system plus an educator? Grab the book and make something cool today."
—Joan Horvath, author and co-founder Nonscriptum LLC

"Programming with OpenSCAD is a fast and clear reference for coders and designers who want to create parametric, customizable 3D models with OpenSCAD. Wait - you’ve never ever coded before? This book is for you too!! Everything is covered from the ground up in simple, friendly terms. OpenSCAD is a great entry point for coding and 3D modeling, and this book is an excellent guide and reference."
—Dr. Laura Taalman (mathgrrl), 3D designer and professor of mathematics at James Madison University

"Programming with OpenSCAD is a great way to get started designing objects to be made with a 3D printer using OpenSCAD. It introduces each new concept in a clear and concise way, always avoiding using language features ahead of explaining them, and requires no previous programming experience. Each chapter has exercises to reinforce learning and these soon become interesting objects to print on a 3D printer, so it is also a great beginner's introduction to 3D printing."
—Chris "Nop Head" Palmer, author of NopSCADlib, RepRap Core Team member

"This book opens up OpenSCAD to new audiences (students, teachers, makers), by being a systematic introduction into using OpenSCAD with well thought out 'design time' and 'big project' practices. With the knowledge gained, readers can create their own 3D-Objects, which they then can print and share. While doing so, students learn to think in 3D-Space and the concepts of computers programming, while always having a concrete visual representation of the end result in mind, making the learning concrete."
—Michael Frey, OpenSCAD Contributor

"A new language can be daunting, but this book gives you the fundamentals of 3D design and the techniques to easily create complex designs."
—Michael “...AtOz” Marx, OpenSCAD Forum & Mailing-list Administrator

"The book is built to provide everyone at any level of proficiency a great introduction to 3D design using OpenSCAD. If you’re considering learning OpenSCAD, this book could provide the guidance necessary to get up to speed in short order."
—Kerry Stevenson, Fabbaloo

"Highly recommended. A well-written, quick read that will get you going in no time!"
—Electronut Labs, @electronutLabs

"If you’re a complete newbie to using OpenSCAD, this would be a great book for you."
—Pete Prodoehl,

Extra Stuff 

Check out Justin Gohde's interview with the Trinity School NYC Podmissum.