Pictured: A grid of points has been warped and transformed into a winding path of boxes Last year, I was tasked with building an interactive particle system where each particle was a box. And there were to be hundreds of thousands of these that ran in real time. I've used GLSL shaders for years now to move a lot of visual data at interactive speeds, but never really tried generating new shapes on the GPU. Trying to draw this many cubes in just C++ is nigh on impossible, even if the cube geometry is already on the video card in the form of a vertex buffer object (VBO). By adding a geometry shader to the pipeline, I can create a single VBO of points and then makes my boxes on the GPU with minimal to no frame rate loss. In speaking with a colleague of mine, Joshua Noble , he'd mentioned that he had also developed an interest in geometry shaders not often seen in the creative programming community. We exchanged notes, did some research, and some ideas formed. We put together a few code projects and Josh took up the word and diagram duties. The first part of the result has been published on Creative Applications .