/Furniture/NeoLight.foocad
The rose contains a power brick down to 5V. Pointing outwards are multiple "super bright" LEDs glued/soldered to a metal disk. These are powered via a normally open relay (maybe 2 or 3 circuits?), so they all turn on at the beginning.
Control via remote control, and/or via wifi
If the arms are metal, then they can be bent upwards.
So that we don't need to route the data wire back down each arm, use a multiplexer, and write to each arm in turn.
Print the cover using transparent PETG? With consentric circles?
import static uk.co.nickthecoder.foocad.layout.v1.Layout2d.* import static uk.co.nickthecoder.foocad.layout.v1.Layout3d.* class NeoLight : Model { val armSize = Vector3(300, 20, 7) val arms = 12 val radius = 100 val brickSize = Vector3(116, 45, 28 ) fun rose() : Shape3d { val outside = (Circle( radius ) - Circle( radius - 10 )).extrude( 50 ) val brick = Cube( brickSize ).centerXY().color("WhiteSmoke") val cover = Cylinder( 6, radius - 10 ).topTo(outside.top).color( "WhiteSmoke" ).opacity(0.5) return outside + brick + cover } override fun build() : Shape3d { val rose : Shape3d = rose() val arm = Cube( armSize ).centerY() return rose + arm.repeatAroundZ( arms ) } }