Our approach extends procedural modeling methods
to generate structurally feasible masonry buildings.
Here, a procedural model is generated from a set
of grammatical rules.
Using our method, we can automatically
find rule parameters that make the model structurally sound.
The user can declare free parameters to be optimized.
In this example, we optimized the height.
Here, we show a real-time capture of our optimization
as it iteratively finds parameters.
The ceiling is automatically lowered,
so the thin columns can resist outward forces from the arches.
Now, we fixed the height and optimized the column width.
And now, we optimize height and column width simultaneously.
A second usage scenario is interactive editing
Here, the angle of the flying buttresses
is optimized to make the structure stable.
Next, the user decides to increase
the span of the ceiling.
Our system then automatically updates the buttress angle
to maintain stability.
A core motivation for stable models
is for interaction in physically simulated environments.
In this tower of stacked blocks, the structure
is unstable and collapses.
This stable structure was generated
from a 20-parameter optimization that
adjusted the horizontal position of each block.
After a few ground shakes, the structure collapses.
In this stacking arrangement, a 20% factor of safety was used.
After small ground shakes, the structure
settles back to a stable position.
Larger perturbations caused the tower to collapse.
Here, we visualize a stable structure
collapsing after the user removes blocks from the model.
In this simulation, the ground shakes
and the structure collapses.
And finally, a projectile is launched at an aqueduct.