OpenSCAD is a 3D modeling tool with a twist: it doesn’t use an interactive 3D interface for its modeling, but a scripting language.
You’ll use text commands to add basic shapes, move and scale them and apply operations to them. This may sound cumbersome, but I’ve found it’s a lot of fun to work with. Changing your model is as easy as going back to your script, editing it and hitting ‘render’. Done!
OpenSCAD uses ‘constructive solid geometric modeling’ – you’ll use operations such as ‘union’, ‘difference’ and ‘intersection’ to combine objects into new ones. And the good part is: your models are always printable! (Well, if the size and wall thickness are ok, that is).
You can load external (STL) objects in your file and work with them, so you can always do the modeling of more complex shapes in other software.
Did I mention yet that OpenSCAD it open source, and free? I’ve added a bunch of links below to get you started. Enjoy!