#!/usr/bin/env python # coding: utf-8 # In[ ]: from k3d import K3D from math import sqrt, sin, cos width = height = length = 100 def r(x, y, z): r = sqrt((x - width / 2) * (x - width / 2) + (y - height / 2) * (y - height / 2) + (z - length / 2) * (z - length / 2)) r += sin(x / 2) * 3 r += cos(y / 10) * 5 return r def f(x, y, z): return 0 if r(x, y, z) > width / 2 else 1 if y + sin(x / 20) * 10 > height / 2 else 2 color_map = (0xffff00, 0xff0000) voxels = [[[f(x, y, z) for z in range(length)] for y in range(height)] for x in range(width)] plot = K3D() plot += K3D.voxels(voxels, color_map) plot.display()