Asymptote is definitely a tool to look at, it can do nut just parametric surfaces, but graphs of functions, and I believe even isosurfaces, although I am not sure.
Take a look at sketch. It does not seem to be great at surfaces, though.
Metapost can do pretty interesting things, take a look at these examples.
This is an example taken directly from the pgf manual:
\pgfmathsetseed{1}
\foreach \col in {black,red,green,blue}
{
\begin{tikzpicture}[x=10pt,y=10pt,ultra thick,baseline,line cap=round]
\coordinate (current point) at (0,0);
\coordinate (old velocity) at (0,0);
\coordinate (new velocity) at (rand,rand);
\foreach \i in {0,1,...,100}
{
\draw[\col!\i] (current point)
.. controls ++([scale=-1]old velocity) and
++(new velocity) .. ++(rand,rand)
coordinate (current point);
\coordinate (old velocity) at (new velocity);
\coordinate (new velocity) at (rand,rand);
}
\end{tikzpicture}
}
It is at the beginning of the Part VI: Mathematical and Object Oriented Engines. The whole section on mathematical engine is what you want to read if you want to do random drawing in tikz.
Best Answer
One way is to use
tikz
matrix
,