OpenSCAD is an awesome parametric 3D CAD modeling software that focuses on allowing you to describe the model in a scripting language and renders the output onscreen. Because the model is described in code rather than objects, it can easily be changed, updated and parameterized. The part can be customized without changing much in the code, rather defined variables can be adjusted to get the desired size and shape. For electronic components, this is very useful. Think about some simple 3d model for pin headers. If you have a model for 2.54mm pitch header, you only need to change the pin size and pitch to generate 1.27mm pitch header (or just pitch if pin size is calculated from pitch), and that way much time can be saved and code reused. Even more interesting, a parameter for number of rows and columns can be used to generate any pin header from single row, dual row, one with 2 positions as a jumper to a 40-pin header for board to board connection. You can also have a parameter for straight versus angled header. Variables are also help in openscad when it comes to having parameters at the beginning of code which can be used to select what to render in case several modules exist in one project. The limit is your imagination and math with OpenSCAD. To demonstrate this, look at the files on this thingyverse thing
To get the model on KiCAD, first we have to render the model by pressing F6, then export STL file. We can then import the STL file into Wings3D and add colors and materials on different parts to represent realistic visualization and export as VRML file which can be set as the 3D file for a component in pcbnew in the footprint editor window. STL file format has no units, so in case the model is larger in KiCAD, you can through the settings scale it as required.