text: Title: How to plot Matplotlib's surfaces?
  Body: I'm exploring the possibility to use K3D-Jupyter as a plotting library for [SymPy](https://github.com/sympy/sympy/), instead of relying on Matplotlib which is quite slow in a notebook. However, it seems like there is no function/object capable of using the data format used by [Matplotlib's `plot_surface`](https://matplotlib.org/stable/api/_as_gen/mpl_toolkits.mplot3d.axes3d.Axes3D.html#mpl_toolkits.mplot3d.axes3d.Axes3D.plot_surface), in which `x, y, z` are two dimensional arrays.
  
  I've seen [K3D's `surface`](https://k3d-jupyter.org/k3d.html?highlight=surface#k3d.factory.surface), but I think it assumes a uniform grid spacing between `xmin, xmax` and `ymin, ymax`.
  
  What would be the best way to plot matplotlib's surfaces with K3D? I'm going to drop a couple of example on what I'd like to achieve.
  
  **Example 1:**
  
  ```
  from sympy import *
  from sympy.plotting.plot import plot3d, plot3d_parametric_surface
  var("x, y")
  r = sqrt(x**2 + y**2)
  expr = cos(r) * exp(-r / 10)
  p = plot3d(expr)
  s = p._series[0]
  xx, yy, zz = s.get_meshes()
  ```
  
  Here, `xx, yy, zz` contains the numerical data used by Matplotib to draw the surface. Note that for each `(x, y)` there is one `z`.
  
  ![Figure 2](https://user-images.githubusercontent.com/9921777/115139183-d5c0f880-a030-11eb-9e59-749279ea8210.png)
  
  **Example 2:**
  
  ```
  p = plot3d_parametric_surface(cos(u + v), sin(u - v), u - v, (u, -5, 5), (v, -5, 5))
  s2 = p._series[0]
  xx, yy, zz = s2.get_meshes()
  ```
  
  Note that for each `(x, y)` there could be multiple values for `z`.
  
  ![Figure 1](https://user-images.githubusercontent.com/9921777/115139231-03a63d00-a031-11eb-8712-bad2e20c012f.png)
  