As preparation for an upcoming hardware-intensive project involving an 8x8x8 LED cube display, We want a way to preview the behavior of the display remotely. Enter voxel-preview: like the intended physical display, the rendered cube listens over UDP for OSC packets and updates the voxels accordingly.



voxel-preview can be downloaded, built, and run with cargo.

$ git clone
$ cd voxel-preview
$ cargo build 


$ cargo run

At this point, an OpenGL window will pop up and show a slowly-revolving rainbow cube; the default dimensions are 8x8x8.

You can send individual packets with send_osc. voxel-preview listens on by default.


The schema is:

//       port  x y z r   g   b
send_osc 1234 /0/2/4 0.0 0.5 1.0

where x, y, and z are the xyz coordinates of the voxel to color, and r, g, and b are the rgb coordinates thereof.

voxel-preview will drop malformed packets within reason (x > CUBE_WIDTH, or r > 1.0, for example), but it’s not that smart.


This isn’t so much a project as a tool. We aim to write a controller which interfaces nicely with something like TouchOSC, which will ultimately serve as a sort of platform for a series of abstract 3D games / toys / visualizations over the coming weeks or months.