import Blender
from Blender import NMesh
import math
from math import *

me=NMesh.GetRaw()

i=0
j=0

maxvert=32.0**2

n=sqrt(maxvert)

for i in range(0,n):
  for j in range(0,n):
    s1=sin(j*pi*2/(n-1))
    c2=cos(-pi/2+i*pi/(n-1))
    c1=cos(j*pi*2/(n-1))
    s2=sin(-pi/2+i*pi/(n-1))

    x=s1*(1-c2)*2
    y=c1*c2*2
    z=x*y
    z=z*z
        
    v=NMesh.Vert(x,y,z)
    me.verts.append(v)

n0=int(n)

for i in range(0,n-1):  
    for j in range(0,n-1):  
        f=NMesh.Face()  

        f.v.append(me.verts[i*n0+j])  
        f.v.append(me.verts[i*n0+j+1])
        f.v.append(me.verts[(i+1)*n0+j+1])
        f.v.append(me.verts[(i+1)*n0+j])
        #on l'adoucit
        f.smooth=1 
        me.faces.append(f) 

NMesh.PutRaw(me,"plane",1)  
Blender.Redraw()