Slicer
Slicers create the instructions for the machine(gcode) from a 3d model. The instructions are basically setting temperature, and a path with a rate of flow. How this is generated can in large part effect how the object will come out.
Cura (web, [https://github.com/daid/Cura github)
Kisslicer(not open source)
The page Useful_Software_Packages might also contain useful info.