View on GitHub

Final-project

Michele Galli

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

P4 CATILINA (Code Link)

The P4 CATILINA is a chair in metallic brown iron, brown gloss-lacquered seat, cushion in expanded polyurethane covered in Azucena leather.

The first thing i have made was the structure of the chair. I made the semicircular base, the legs and the base support for the pillow, using some ad-hoc bezier functions.

p4catilina-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
}

curve1_base = BEZIER(S1)([[0.6,-1,0],[1,-0.9,0],[1,0,0],[1,0.9,0],[-1,0.9,0],[-1,0,0],[-1,-0.9,0],[-0.6,-1,0]])
curve2_base = BEZIER(S1)([[0.6,-1.12,0],[1.1,-1,0],[1.2,0,0],[1.2,1.1,0],[-1.2,1.1,0],[-1.2,0,0],[-1.1,-1,0],[-0.6,-1.12,0]])
[..]
curve1a_leg = semicircle_a(0.06,0.04,0.02,0,0,0,0)
curve1b_leg = semicircle_b(0.06,0.04,0.02,0,0,0,0)
[..]
curve1a_basepillow = semicircle_a(1.78,1.04,0.845,0,0,0,0)
curve1b_basepillow = semicircle_b(1.78,1.04,0.845,0,0,0,0)
[..]
map1_basepillow = MAP(BEZIER(S2)([curve1a_basepillow,curve2a_basepillow,curve3a_basepillow]))(domain2)
map2_basepillow = MAP(BEZIER(S2)([curve1b_basepillow,curve2b_basepillow,curve3b_basepillow]))(domain2)
[..]
basepillow = STRUCT([map1_basepillow,..,map8_basepillow])
leg = STRUCT([map1_leg,..,map3_leg])
support = STRUCT([map1_support,map2_support])
base = STRUCT([map1_base,..,map4_base])



Then i have drew the pillow of the chair.

p4catilina-js

curve1a_pillow = semicircle_a(1.75,1,0.9,0,0,0,0)
curve1b_pillow = semicircle_b(1.75,1,0.9,0,0,0,0)
[..]
map1_pillow = MAP(BEZIER(S2)([curve7a_pillow,curve5a_pillow,curve1a_pillow]))(domain2)
map2_pillow = MAP(BEZIER(S2)([curve7b_pillow,curve5b_pillow,curve1b_pillow]))(domain2)
[..]
pillow = STRUCT([map1_pillow,..,map5_pillow])


Finally i drew the armrest. it was the most challenging part of the chair to obtain the right shape

p4catilina-js

curve1_armrest = BEZIER(S1)([[1,-0.8,0],[1,0,0],[1,0.8,0.2],[-1,0.8,0.2],[-1,0,0],[-1,-0.8,0]])
curve2_armrest = BEZIER(S1)([[1.13,-0.8,0],[1.15,0,0],[1.2,0.8,0.45],[-1.2,0.8,0.45],[-1.15,0,0],[-1.13,-0.8,0]])
[..]
map1_armrest = MAP(BEZIER(S2)([curve1_armrest,curve2_armrest]))(domain2)
map2_armrest = MAP(BEZIER(S2)([curve3_armrest,curve4_armrest]))(domain2)
[..]
armrest = COLOR(darkwood_color)(STRUCT([map1_armrest,..,map12_armrest]))


These are the final P4 Catilina model and the original model.