There are all-the-way open source ones --- blender, bricad, k3d come to mind. For 2D a number of cad packages are available but naturally their use is very limited. Most are available for various linux distributions. If you're thinking about "free" instead of open source, academic / "non-profit" versions of the "big ones" are an alternative, since I at least haven't really found the open source ones to compete with the commercial ones, unfortunately. Have been trying to work with blender for 3D modeling applications but so far once the problems have become more complicated have "lost it" and started over typically with pro/e.