A superficie que se representa é \[ \left\{ \begin{array}{lcl} x & = & [1.25 + 2.6 \cos(v)] e^{0.18 u} \cos(u) \\ y & = & [1.25 + 2.6 \cos(v)] e^{0.18 u} \sin(u) \\ z & = & [-2.8 + 2.4 \sin(v)] e^{0.18 u} \end{array} \right. \] con \(u \in [-20, 1]\) e \(v \in [0, 2 \pi]\).

Obxectos da escea:



	function surfaceFunction( u, v ) {
	  var x,y,z;  
	  var umin = -20.0, umax = 1.0 ;
	  // Si u in [m,M], u2 = (M-m)*u+m
	  var u2 = (umax - umin) * u + umin;
	  v2 = 2*Math.PI * v;
      
	  x = Math.exp(0.18 * u2) * (1.25 + 2.6 * Math.cos(v2)) * Math.cos(u2);
	  y = Math.exp(0.18 * u2) * (1.25 + 2.6 * Math.cos(v2)) * Math.sin(u2);
	  z = Math.exp(0.18 * u2) * (-2.8 + 2.4 * Math.sin(v2));
	  return new THREE.Vector3( x, y, z );  }

	var surfaceGeometry = new THREE.ParametricGeometry(surfaceFunction, 100, 100);

	var material = new THREE.MeshPhongMaterial({
				color: "white",
				side: THREE.DoubleSide
				});
    
	var surface = new THREE.Mesh( surfaceGeometry, material );
	scene.add(surface);