These are the steps for the 3D reconstruction of Biedermeier sofa:
Basement and columns
Lower sitting
Half upper sitting
Armrest
Backrests
Steps
Because the object is symmetrical it was decided to realize only one half of all its components, and then the using of the functions STRUCT and SCALE "STRUCT([halfBiedermeier, S([0])([-1])(halfBiedermeier)])" generates the other half respect to x - axis.
Basement and columns
The basement has been realized through the use of CUBOID function, the columns have been realized thanks to a function CYLINDER which takes in input radius,high and return a cylinder, to which have been added two capitals.
Lower sitting
Have been added two planes obtained by invoking CUBOID.
Half upper sitting
The upper sitting has been realized before drawing the control curves of the symmetry of the figure, then using them to define the corrispondent surface.
To do this have been used BEZIER and CUBIC_HERMITE.
Armrest
Armerest has been reconstructed by th extrusione of a semicircle, obtained by a
RING function.
Backrests
As for the upper sitting, backrests has been realized before drawing the control curves of the symmetry of the figure, then using them to define the corrispondent surface.
To do this have been used BEZIER and CUBIC_HERMITE.
Steps
means steps have been generated simply thanks to CUBOID function.
Rendering
The final result is shown below.
Code Javascript
The code of the implementation in Javascript is available
here.