Volume renderings in Lightning


In [1]:
from lightning import Lightning

from colorsys import hsv_to_rgb
from numpy import ndarray, linspace

Connect to server

In [2]:
lgn = Lightning(ipython=True, host='http://public.lightning-viz.org')
Lightning initialized
Connected to server at http://public.lightning-viz.org

Color cubes

Volume rendering lets you render a sequence of images as a 3D volume.
Lightining currently assumes isotropic images, so the sampling in x,y, and z should be comparable.
Visualizing color spaces is a fun way to explore volume rendering. We'll generate RGB and HSV cubes.

In [3]:
nx, ny, nz = (50, 50, 50)
rgb = ndarray((nx,ny,nz,3))
hsv = ndarray((nx,ny,nz,3))
for i, ii in enumerate(linspace(0,1,nx)):
    for j, jj in enumerate(linspace(0,1,ny)):
        for k, kk in enumerate(linspace(0,1,nz)):
            position = (i, j, k)
            rgb[position] = (kk, jj, ii)
            hsv[position] = hsv_to_rgb(jj, ii, kk)

Render RGB cube

In [4]:
lgn.volume([x for x in rgb])

Render HSV cube

In [5]:
lgn.volume([x for x in hsv])