Based on the work I did last year using ws2812b lights. I created a very simple hack in order to enable the lights of a Christmas tree to be painted.
I made use of Flask (a Python Web framework) along with the Flask socket.io library, in order to enable touch events from pressing a HTML5
canvas to be sent to my Pi Zero, which controls the setting of the lights.
The position of the lights which are used by the web application, where obtained through a calibration phase which is documented in the above link.
For some reason I’ve found these lights rather temperamental, with the first light in the chain occasionally breaking, despite using a capacitor
to help protect against in-rush current. I was able to fix these broken chains, by cutting the first LED off and soldering the power & data lines onto the next light.
Occasionally the lights ‘glitch’ and random colours appear, I assume this is due to the Pi being used for controlling the lights, which it’s not really designed for, I may make use of an MCU/FPGA next time for the generating of timing signals.