Procedural Modeling of Structurally-Sound Masonry Buildings Emily Whiting John Ochsendorf Frédo Durand Massachusetts Institute Of Technology, USA 2 architectural models virtual environments • models require visual realism • important to interact physically with surroundings state of the art • simple models • or react in scripted ways 3 architectural models structurally stable • will look more realistic • suitable for physical simulations – react to external forces our result 4 architectural models structurally stable • will look more realistic • suitable for physical simulations – react to external forces our result 5 earthquake simulation goal Generate models that are structurally sound • Inverse Statics • Procedural modeling quickly generates complex architectural models • Masonry material unstable input stable output 6 related work procedural modeling Focus is on visual realism, mainly for detail in façades Parish et al. [2001] Wonka et al. [2003] Müller et al. [2006] Müller et al. [2007] Lipp et al. [2008] [Muller et al. 2006] our contribution: introduce physical constraints 7 related work structural analysis elastic material Elastic Finite Element analysis wrong physical model for masonry not deformable stress profile output is visualization solves forward problem not inverse [http://www.csiberkeley.com/] 8 related work structural analysis elastic material analyze material stress wrong physical model for masonry not deformable vs. masonry geometric configuration rigid block assemblage [Heyman 1995] linear constraint formulation [Livesley 1978, 1992; RING software] 9 related work design by optimization Non-Structural • Architectural free-form surfaces [Pottmann et al. 2008] • Variational surface modeling [Welch and Witkin 1992] • Layout design [Harada et al. 1995] [Pottmannet al. 2008] Structural • Structure optimization [Smith et al. 2002; Block et al. 2006] • Tree modeling [Hart et al. 2003] • Posing characters [Shi et al. 2007] 10 [Smith et al. 2002] overview procedural building generation analysis method for masonry inverse problem 11 procedural modeling production rule input shape production type (parameters) {output shapes} 12 [Muller et al. 2006] procedural modeling production rule input shape production type (parameters) {output shapes} library of primitives 13 procedural modeling production rule input shape production type (parameters) {output shapes} library of primitives production • subdivision, scale, translation, … 14 procedural modeling production rule input shape production type (parameters) {output shapes} library of primitives production • subdivision, scale, translation, … typical parameters • • • • height thickness of columns, walls, arches window size angle of flying buttresses 15 procedural modeling A C Subdiv(“y”){D|”arch”} A Repeat(“x”,0.2){B} B Subdiv(“y”) {“wall”|C|”wall”} D Subdiv(“x”){E} E S(0.2,1,1){“wall”} 16 procedural modeling Output • blocks: mass • interfaces: contact surfaces between blocks 17 overview procedural building generation analysis method for masonry inverse problem 18 analysis overview conditions for stability • static equilibrium forces 0 torques 0 for each block • masonry compression-only analysis overview conditions for stability • static equilibrium forces 0 torques 0 requires tension for each block • masonry compression-only feasible 20 static equilibrium f i+1 fi linear system of equations forces 0 torques 0 each block weight, wj Aeq· f + w = 0 geometry coefficients forces weights, torques 21 masonry compression-only normal force f i n positive normal forces f 0 i n no “glue” holding blocks together 22 friction cone normal force linearized as pyramid i t1 f , f i t2 f i n f i n friction force f i t1 f t i2 23 summary model of feasibility Aeq· f + w = 0 static equilibrium fni ≥ 0 compression Afr· f ≤ 0 friction Stable Unstable unknown forces, f solution exists no solution exists 24 summary model of feasibility Problem binary,solution f exists yes/no Aeq· f + w = 0 static equilibrium fni ≥ 0 compression Afr· f ≤ 0 friction Stable Unstable unknown forces, f solution exists no solution exists 25 summary model of feasibility Problem binary,solution f exists yes/no Aeq· f + w = 0 static equilibrium fni ≥ 0 compression Afr· f ≤ 0 friction Our Solution measure infeasibility tension required to stand how much “glue” 26 measure of infeasibility Our Solution measure infeasibility min tension f Aeq· f + w = 0 static equilibrium fni ≥ 0 compression Afr· f ≤ 0 friction tension required to stand how much “glue” relax constraint 27 normal force variable transformation f ni split into positive, negative components compression tension fni = fni+ – fnie.g. for compression forces where fni+ ≥ 0 fni- ≥ 0 i+ fn > 0 ifn = 0 28 measure of infeasibility Quadratic program min f i 2 ( f n) s.t. Aeq· f +w = 0 static equilibrium fni+ ≥ 0, fni-≥ 0 allow tension Afr· f ≤ 0 friction 29 measure of infeasibility Quadratic program min f i 2 ( f n) s.t. Aeq· f +w = 0 scalar output y static equilibrium fni+ ≥ 0, fni-≥ 0 allow tension Afr· f ≤ 0 friction 30 measure of infeasibility Quadratic program min f i 2 ( f n) s.t. Aeq· f +w = 0 scalar output y static equilibrium fni+ ≥ 0, fni-≥ 0 allow tension Afr· f ≤ 0 friction y = 0 feasible y > 0 measure of infeasibility 31 measure of infeasibility 32 overview procedural building generation analysis method for masonry inverse problem 33 optimization loop parameters Update Parameters Procedural Model Analysis feasible? model from output parameters 34 nested optimizations parameters pi+1 Procedural Model quadratic program minimum tension at parameters pi Update Parameters feasible? model from output parameters 35 nested optimizations pi+1 quadratic program update parameters y(pi) minimum tension at parameters pi 36 nested optimizations find parameters for feasible structure, want y(p*) = 0 pi+1 quadratic program update parameters y(pi) minimum tension at parameters pi 37 nested optimizations nonlinear program arg minp y(p) find parameters for feasible structure, want y(p*) = 0 pi+1 quadratic program update parameters y(pi) minimum tension at parameters pi MATLAB active-set algorithm, gradients with finite differencing 38 arch example arch thickness 2 ( tension ) p0 column width arch thickness column width feasible region zero tension 39 Results 40 typical parameters • building height • thickness of columns, walls, arches • window size • angle of flying buttresses 41 results sainte chapelle unstable model from input parameters tension forces 42 results sainte chapelle unstable model from input parameters 486 blocks, 17 sec/iter 4 parameter optimization 43 results sainte chapelle unstable model from input parameters 486 blocks 40 sec/iter 10 parameter optimization 44 results Bezier curves unstable model from input parameters 6 parameter optimization 45 results tower unstable model from input parameters 96 blocks,12 sec/iter 32 parameter optimization 46 results tower unstable model from input parameters 96 blocks,12 sec/iter 32 parameter optimization with safety factor 47 usage scenarios exploration • manually modify fixed parameters • re-optimize free parameters to retain stability Example user changes roof span automatically update angle of flying buttress 48 usage scenarios dynamics Load models into dynamic simulation Bullet Physics Engine [http://www.bulletphysics.com/] 49 usage scenarios dynamics ground shake 50 Bullet Physics Engine [http://www.bulletphysics.com/] usage scenarios dynamics projectile 51 Bullet Physics Engine [http://www.bulletphysics.com/] usage scenarios dynamics blocks removed 52 Bullet Physics Engine [http://www.bulletphysics.com/] summary stable buildings • Inverse analysis method • Procedural modeling to specify design parameters • Measure of infeasibility • Optimization scheme to generate stable models 53 thanks... Singapore-MIT Gambit Game Lab NSERC Canada Phillippe Siclait Sylvain Paris Yeuhi Abe Jovan Popovic Eugene Hsu 54 summary stable buildings • Inverse analysis method • Procedural modeling to specify design parameters • Measure of infeasibility • Optimization scheme to generate stable models 55 extra slides 57 usage scenarios dynamics ground shake ∆ ground velocity = 4 m/s time step = 1/60 s model width ~ 10 m Bullet settings: restitution (bounce) = 0.0 friction coefficient = 0.895 58 Bullet Physics Engine [http://www.bulletphysics.com/] performance model #blocks #params #iters time/iter 10 5 4 9 45.7 s 57.3 s 70.0 s 106.6 s Cluny 986 4 5 7 9 arch 10 2 6 0.1 s Sainte Chapelle 486 3 5 7 10 4 9 6 8 12.5 s 26.5 s 29.3 s 40.1 s tower 96 32 6 12.5 s barrel vault 140 1 8 0.659s