(scroll down for videos)
This is a modular lamp using Neopixel Rings (32 and 16 pixels). The shades of the lamp are interchangeable, and you can mount them in a number of different ways (see the drawing pdfs for examples). Right now I've only made a couple of shade designs, but I might post more in the future.
Printing / Assembly Instructions
For printing, print all the shade parts in clear filament, I used clear ABS, but clear PLA will work. White might also work, but I have not tested it. Everything prints without supports except the Base_top, which needs a bit for the USB door hinge.
Assembly should be straight forward, everything pretty much stacks together. Use the drawings as a guide. M3 screws are used to join the top and bottom parts of the base together. Glue is not needed except between a few parts (the caps for the classic shades, the base parts for the crystal shades, and the bolt covers for the base). Note that for the crystal shades the base parts are only separate to avoid needing supports. If you don't care about the supports, and don't want to glue, you could meshmix the base parts onto the crystal shades.
NOTE: There are a few different models of Neopixel ring available. The outer diameters the rings I used are 110mm and 70mm. Only this type will fit into the shades. They are available here: https://tinyurl.com/yd4ffubr , but you may be able to find the rings individually on Ebay. They are distinguished by capacitors that are on the inner edge of the rings next to each pixel.
I have left the electronics open ended. The base has enough room to house a variety of micro-controllers and sensors, and includes mounts for two 70 point breadboards back-to-back. The assembled lamp can be re-programmed easily via the USB door. I also provide mounts for a slide switch (https://www.sparkfun.com/products/14330) , and a female DC jack (https://tinyurl.com/ycd9loaq). I recommend powering the lamp via a 5V, 2A wall adapter (https://www.sparkfun.com/products/12889). I'm using an Arduino Nano as my micro-controller, most others will work fine.
I'm not going to post a detailed wiring diagram; just wire the live and ground to both the micro-controller and the rings, then run a wires from a digital pin to the outer ring's DIN and from the outer ring's DOUT to the inner's DIN. You may want to keep the rings separable by connecting them to a central distribution board in the shade (see pics)
I also recommend reading Adafruit's guide to Neopixels : https://learn.adafruit.com/adafruit-neopixel-uberguide/the-magic-of-neopixels
My code for the lamp is still a WIP, but I will post it when it is more finished. For now, you may have to write code yourself, but you can find some things by googling. I recommend checking out the Adafruit guide above, or the fast_LED library for driving the pixels. Another resource is https://www.tweaking4all.com/hardware/arduino/adruino-led-strip-effects/.