LP26B ONDA (Code Link)
The LP26B ONDA is a wall light formed by a single strip of electro-coloured steel scarab-beetle colour and chrome-plated studs The structure of the light is similar to a wave and that is why is called "ONDA".
First of all i draw the green wave structure. For this purpose i used Bezier curves.
curve1_lamp = BEZIER(S1)([[0,0,0],[1,0,0],[3,3,0],[4,3,0],[4,0,0],[4.5,0,0]]) curve2_lamp = BEZIER(S1)([[-2,0,-0.1],[-2,0,0],[0,0,0]]) curve3_lamp = BEZIER(S1)([[4.5,0,0],[5.5,0,0],[5.5,0,-0.1]]) curve4_lamp = BEZIER(S1)([[0,0,-1.5],[1,0,-1.5],[3,3,-1.5],[4,3,-1.5],[4,0,-1.5],[4.5,0,-1.5]]) [..] map1_lamp = MAP(BEZIER(S2)([curve1_lamp,curve4_lamp]))(domain2) map2_lamp = MAP(BEZIER(S2)([curve2_lamp,curve5_lamp]))(domain2) map3_lamp = MAP(BEZIER(S2)([curve3_lamp,curve6_lamp]))(domain2) map4_lamp = MAP(BEZIER(S2)([curve4_lamp,curve10_lamp]))(domain2) [..] lamp_structure = STRUCT([map1_lamp,..,map12_lamp])
Then i draw the bulb light. I wrote some Bezier-based function to help me with this object. The glass of thebulb is realized with a 'SEMISPHERE' function

semicircle_a = function(x1,y1,z,tx,ty,tz1,tz2){
semix = x1/2
semia = BEZIER(S1)([[tx+semix,ty,z+tz1],[tx+semix,ty+y1,z+tz2],[tx-semix,ty+y1,z+tz2],[tx-semix,ty,z+tz1]])
return semia
}
semicircle_b = function(x1,y1,z,tx,ty,tz1,tz2){
semix = x1/2
semib = BEZIER(S1)([[tx+semix,ty,z+tz1],[tx+semix,-y1+ty,z+tz2],[tx-semix,-y1+ty,z+tz2],[tx-semix,ty,z+tz1]])
return semib
}
var SEMISPHERE = function (r) {
var domain = DOMAIN([[0, PI], [0, PI]])([50,50]);
var mapping = function (v) {
var a = v[0];
var b = v[1];
return [r*SIN(a)*COS(b), r/2*SIN(a)*SIN(b), r*COS(a)];
};
var model = MAP(mapping)(domain);
return model;
};
[..]
curve1a_light = semicircle_a(1.2,0.85,0.1,0,0,0,0)
curve1b_light = semicircle_b(1.2,0.85,0.1,0,0,0,0)
curve2a_light = semicircle_a(1.2,0.85,0.15,0,0,0,0)
curve2b_light = semicircle_b(1.2,0.85,0.15,0,0,0,0)
curve3a_light = semicircle_a(1.1,0.75,0.15,0,0,0,0)
curve3b_light = semicircle_b(1.1,0.75,0.15,0,0,0,0)
[..]
map1_light = COLOR([255/255,255/255,0/255])(MAP(BEZIER(S2)([curve1a_light,curve1b_light]))(domaininv))
map2_light = COLOR([61/255,61/255,61/255])(MAP(BEZIER(S2)([curve2a_light,curve2b_light]))(domain2))
map3_light = COLOR([61/255,61/255,61/255])(MAP(BEZIER(S2)([curve1a_light,curve2a_light]))(domain2))
[..]
light = STRUCT([map1_light,..,map14_light])
glass_light = SEMISPHERE(0.64);
Finally i added the studs.
This is the final LP26B ONDA model.
This is the original model.