Bruno Munari

Industrial Design

Abitacolo Code

      		






/** * @author Alessio Ciccarelli */ // function to create a tube function tube(r, h) { var domaint = DOMAIN([[0,1],[0,2*PI]])([16, 16]); var tube = CYL_SURFACE([r,h])(16); var basetmp = BEZIER(S0)([[r, 0, 0], [r, 0, 0], [0, 0, 0]]); var mappingbase = ROTATIONAL_SURFACE(basetmp); var base = MAP(mappingbase)(domaint) var baset = T([2])([h])(base); return STRUCT([tube, base, baset]); } // function to create a tube function tubeLittle(r, h) { var domaint = DOMAIN([[0,1],[0,2*PI]])([8, 8]); var tube = CYL_SURFACE([r,h])(8); var basetmp = BEZIER(S0)([[r, 0, 0], [r, 0, 0], [0, 0, 0]]); var mappingbase = ROTATIONAL_SURFACE(basetmp); var base = MAP(mappingbase)(domaint) var baset = T([2])([h])(base); return STRUCT([tube, base, baset]); } // function to create a triangle function triangle(w, h) { var t1 = tube(w, h); var t1R = ROTATE([2,0])(PI*(1/5))(t1); var t2 = ROTATE([2,0])(PI*(-6/5))(t1); var t2R = T([0,2])([0.75,1])(t2); return STRUCT([t1R, t2R]); } // function to create a rod function rod() { var gommino = COLOR([0,0,0])(tube(0.12, 0.1)); var rod = T([2])([0.1])(tube(0.1, 10.2)) return STRUCT([rod, gommino]); } // function to create a basket function basket() { var base = CUBOID([1, 1, 0.1]); var rodsbase = T([0,1])([0.02,0.02])(STRUCT(REPLICA(7)([tubeLittle(0.02, 0.9), T([0])([0.16])]))); var rodsVtmp = ROTATE([2,0])(PI/2)(tubeLittle(0.02, 1)); var rodsbase2 = T([1,2])([0.02,0.24])(STRUCT(REPLICA(5)([rodsVtmp, T([2])([0.16])]))); var rods1 = STRUCT([rodsbase, rodsbase2]); var rods2 = T([1])([0.96])(rods1); var rods3 = T([0])([0.04])(ROTATE([0,1])(PI/2)(rods1)); var rods4 = T([0])([0.96])(rods3); return STRUCT([base, rodsbase, rods1, rods2, rods3, rods4]); } // creating the X STRUCTURE var rod = rod(); var rod2 = T([0])([1])(rod); var rod3 = T([0])([8])(rod); var rod4 = T([0])([9])(rod); var c = tube(0.1, 1); var c2 = tube(0.1, 9); var cRotated = ROTATE([2,0])(PI/2)(c); var c2Rotated = ROTATE([2,0])(PI/2)(c2); var verticalrod1 = T([2])([0.1])(cRotated); var verticalrod2 = T([2])([1.1])(c2Rotated); var verticalrod3 = T([2])([2.1])(c2Rotated); var other = T([2])([3.1])(STRUCT(REPLICA(5)([cRotated, T([2])([1])]))); var verticalrod4 = T([2])([8.1])(c2Rotated); var verticalrod5 = T([2])([9.1])(c2Rotated); var verticalrod6 = T([2])([10.1])(cRotated); var shortrod = STRUCT([verticalrod1, other]); var firstLine = STRUCT([rod, rod2, rod3, rod4, verticalrod2, verticalrod3, verticalrod4, verticalrod5, verticalrod6, shortrod, T([0])([8])(shortrod), T([0])([8])(verticalrod6)]); var secondLine = T([1])([3])(firstLine); var xSurface = STRUCT([firstLine, secondLine]); //creating the Y STRUCTURE var horizontalrod1 = T([1])([1])(rod); var hotizontalrod2 = T([1])([2])(rod); var ch = tube(0.1, 3); var chorizontal = ROTATE([2,1])(PI*(3/2))(ch); var otherhorizontal = T([2])([0.1])(STRUCT(REPLICA(11)([chorizontal, T([2])([1])]))); var horizontal1 = STRUCT([horizontalrod1, hotizontalrod2, otherhorizontal]); var horizontal2 = T([0])([9])(horizontal1); var ySurface = STRUCT([horizontal1, horizontal2]); // creating other rods var st = triangle(0.05, 1.2); var triangleList = T([0,2])([1.5,1.1])(STRUCT(REPLICA(4)([st, T([0])([1.5])]))); var triangleList2 = T([1])([3])(triangleList); var triangleList3 = T([0,2])([1.5,8.1])(STRUCT(REPLICA(4)([st, T([0])([1.5])]))); var triangleList4 = T([1])([3])(triangleList3); var AllTriangle = STRUCT([triangleList, triangleList2, triangleList3, triangleList4]); var rodbedTmp = ROTATE([2,0])(PI/2)(tube(0.05, 9)); var rodsbedHorizontal = T([1,2])([0.5,2.1])(STRUCT(REPLICA(5)([rodbedTmp, T([1])([0.5])]))); var rodbedTmp2 = ROTATE([2,1])(PI*(3/2))(tube(0.05, 3)); var rodsbedVertical = T([0,2])([0.5,2.1])(STRUCT(REPLICA(16)([rodbedTmp2, T([0])([0.5])]))); var rodsbedTmp = STRUCT([rodsbedHorizontal, rodsbedVertical]) var rodsbed = STRUCT([rodsbedTmp, T([2])([7])(rodsbedTmp)]); //creating the shelves var shelfTmp = CUBOID([1, 3, 0.1]); var rodshelf = T([0,1,2])([0.05,0.04,0.05])(ROTATE([2,0])(PI*(1/4))(tube(0.05, 1.5))); var shelfWithrods = STRUCT([shelfTmp, rodshelf, T([1])([2.91])(rodshelf)]); var shelf = T([0,2])([-1,0.1])(shelfWithrods); var shelf1 = T([2])([6.1])(shelf); var shelf2 = T([2])([8.1])(shelf); var shelf3 = T([0])([9])(ROTATE([0,0])(PI)(shelf1)); var shelf4 = T([0])([9])(ROTATE([0,0])(PI)(shelf2)); var shelfTmp2 = CUBOID([1.5, 3, 0.1]); var shelf5 = T([0,2])([9,4.1])(shelfTmp2); var rodshelf2 = T([0,1,2])([9.05,0.04,3.15])(ROTATE([2,0])(PI*(1/4))(tube(0.05, 1.4))); var shelfUnder = STRUCT([shelf5, rodshelf2, T([1])([2.91])(rodshelf2)]); var shelves = STRUCT([shelf1, shelf2, shelf3, shelf4, shelfUnder]); //creatinf the baskets var basket = basket(); var basket1 = T([0,2])([-1,3])(basket); var basket2 = T([0,1,2])([-1,2,3])(basket); var baskets = STRUCT([basket1, basket2]); //creating the bed var bed = COLOR([255,255,255])(T([0,1,2])([0.1,0.1,2.2])(CUBOID([8.8, 2.8, 0.8]))); //creating the box var box = COLOR([0.8,0.51,0.4])(T([0,1])([0.25,0.5])(CUBOID([1.5, 2, 0.6]))); var cap = COLOR([0.8,0.51,0.4])(T([0,1,2])([0.15,0.4,0.6])(CUBOID([1.7, 2.2, 0.2]))); var scc = STRUCT([box, cap]); var scct = T([2])([9.2])(scc); // creating books var book1 = COLOR([0,0,0])(CUBOID([0.6, 0.3, 1])); var book2 = T([1])([0.3])(COLOR([255,0,0])(CUBOID([0.6, 0.3, 0.8]))); var book3 = T([1])([0.6])(COLOR([0,0,255])(CUBOID([0.6, 0.3, 0.9]))); var books = T([0,1,2])([9.2,1.7,6.3])(STRUCT([book1, book2, book3])); var model = STRUCT([xSurface, ySurface, AllTriangle, rodsbed, shelves, baskets, bed, scct, books]); DRAW(model);