The strip is modeled as an array of WS2812 modules, where each element is chained to the next, and data is passed via datain() and dataout() calls. Each time a new color value is passed into a module by datain(), it either stores it, or if there is already a color stored, it passes it to the next linked module.
The references to these modules are collected together in an ledstrip object, which has convenience methods for sending color data into the strip (either individually, or a whole buffer at once), clearing the colors, setting the display, etc. There are also colorwheel methods for converting from HSV to RGB.
When the latch() method is called on the first module in the strip, all the modules display their stored colors and clear their buffered color values.
What would really be great is if you could move the leds around. I have customers who use them in all sorts of patterns and then want me to make the patterns.