import perlin3D from mayavi.scripts import mayavi2 from tvtk.api import tvtk from mayavivoxels import voxels @mayavi2.standalone def view(mesh): '''Stellt ein tvtk.Polydata mesh im mayavi2 Standalone dar.''' from mayavi.sources.vtk_data_source import VTKDataSource from mayavi.modules.surface import Surface mayavi.new_scene() src = VTKDataSource(data=mesh) mayavi.add_source(src) s = Surface() mayavi.add_module(s) terrain = [] counter = 1 for i in range(50): tempmap1 = [] for j in range(50): tempmap2=[] for k in range(50): tempmap2.append(perlin3D.perlinnoise(i, j, k, 0.03125, 0.5, 0.3)) tempmap1.append(tempmap2) terrain.append(tempmap1) points = [] for n, i in enumerate(terrain): for m, j in enumerate(i): for o, k in enumerate(j): if k > 0: points.append((n*0.05, o*0.05, m*0.05)) print "Terrain finished calculating" cube = voxels(points) view(cube.createmesh(0.05))