Title: a beginner's guide to coding 3D-printable objects
Description: Programming with OpenSCAD is a STEM-focused, learn-to-code book for beginners that introduces core computational thinking concepts through the design of 3D-printable objects. Develop coding skills as you build increasingly complex 3D models and print them into fun games, puzzles, and more.

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.