Software

OpenSCAD

OpenScad describes geometric objects mathematically similarly than computer algebra systems. There are two articles in the book introducing OpenScad. The modeller can do things which computer algebra systems can not do well, like taking intersections of objects. Here is code which writes a OpenSCAD file from Mathematica:
A=PolyhedronData["GreatRhombicosidodecahedron","Faces"];
points=10*A[[1]];  triangles = A[[2,1]]-1;
triangulate[a_]:=Table[{a[[1]],a[[k]],a[[k+1]]},{k,2,Length[a]-1}];
triangles=Map[triangulate,triangles];
newtriangles=Table[
WriteString["example.scad","polyhedron("];
WriteString["example.scad","points = "]; Write["example.scad",N[points]];
WriteString["example.scad",","];
WriteString["example.scad","triangles = "]; Write["example.scad",triangles];
WriteString["example.scad",");"]
Run["cat example.scad |tr "{" "["|tr "}" "]" >tmp; mv tmp example.scad"]
And here is Mathematica code which generates all the semiregular polytopes in OpenScad:
Archimedean[k_]:=Module[{a,s,n,c,S,M,rr},  c=5.0;
If[k<14,m=k;   a=PolyhedronData["Archimedean"];        s=PolyhedronData[a[[m]],"Faces"],
        m=k-13;a=PolyhedronData["Archimedean","Dual"]; s=PolyhedronData[a[[m]],"Faces"]];
points=10*s[[1]];  triangles = s[[2,1]]-1;
triangulate[a_]:=Table[{a[[1]],a[[l]],a[[l+1]]},{l,2,Length[a]-1}];
triangles=Map[triangulate,triangles]; triangles=Partition[Flatten[triangles],3];
{points,triangles}];
FN[n_]:=FromCharacterCode[Join[ToCharacterCode["polyhedron"],IntegerDigits[n]+48,ToCharacterCode[".scad"]]];
ExportOpenScad[kk_]:=Module[{}, file=FN[100+kk];
{points,triangles}=Archimedean[kk];
WriteString[file,"polyhedron("];
WriteString[file,"points = "]; Write[file,N[points]];
WriteString[file,","];
WriteString[file,"triangles = "]; Write[file,triangles];
WriteString[file,");"] ];
Do[ExportOpenScad[mm],{mm,26}]
We just have then to change brackets for all the files:
for i in *.scad; do
cat  |tr "{" "["|tr "}" "]" >tmp; mv tmp ; 
done
Png23D is an application which converts PNG images into OpenScad files is "png23d". Here is an example:
png23d -t x -f surface -o stl -l 25 -d 20 -w 100 h.png h.stl
produces from a heights map a STL file, seen here in meshlab.

FreeCAD

Meshlab