View on GitHub

Final-project

Michele Galli

Download this project as a .zip file Download this project as a tar.gz file

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.

lp26bonda-js

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

lp26bonda-js

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.