One popular option for RepRap developers is OpenSCAD. This free and open-source 3D modeling program is built and maintained by individuals. OpenSCAD has an ever-expanding and comprehensive array of examples, libraries, and resources. It allows parametric modeling, which allows you to change almost any of a design's dimensions, shapes, or features by altering the appropriate parameters (numbers or formula). With parametric modeling, you can specify a generic model of a shoe insole then enter specific details about your foot, size, shape, and the desired level of comfort (flexibility in the material). The parametric software modifies and produces a new custom-fitted 3D model based on the settings you entered. The down side of this software is that it's complex. Unless you're familiar with programming and have a good mathematical grasp of geometric 3D space, you may struggle to work with this software.
Another popular package is SketchUp Make. This visual modeling tool is a good program to use to experiment with your own designs or alter existing 3D models.
You can use almost any type of 3D-modeling program. Many programs now exist as cloud-based applications that produce customized 3D models (or allow you to make those models easily).
Many more consumer-level software products are specifically designed for 3D printing. All provide easy-to-use applications for modeling objects designed for home, hobby, or business 3D printing. Examples include The output format you require for a 3D printer is Stereo Lithography (STL). This file format is usually available as a standard export option, although some packages require a plug-in. If you've already obtained an STL model file from an object repository or as an export file from your 3D modeling program, check the model to make sure that it works with your software.