Title: Procedural Modeling of Buildings
1Procedural Modelingof Buildings
- Pascal Müller ETH Zürich
- Peter Wonka Arizona State University
- Simon Haegler ETH Zürich
- Andreas Ulmer Virtual Entertainment
Productions - Luc Van Gool ETH Zürich / K.U. Leuven
2Presentation Outline
- IntroductionContribution, examples, motivation
and background - CGA ShapeA shape grammar for CG architecture
- Mass modelingAssembling solids and shape
interaction - ResultsImplementation, rendered animations and
outlook
3Contribution
- CGA Shape, a novel shape grammar for the
procedural modeling of CG architecture.
- Human-readable rules (notation like L-systems)
- Consistent design of mass models and facades
- Not restricted to axis aligned shapes
- Context sensitive rules to specify shape
interactions
4Example Semper-Observatory
5Example Pompeii
6Example Modern Architecture
7Example Mayan Architecture
8Motivation
- Encoding the structural, spatial and functional
complexity of buildings for CG - Efficient creation of detailed building models at
low cost (resulting in billion polygon cities) - Many applications in entertainment, simulation,
archaeology and architecture
9Related Work
- Shape Grammars (Stiny Gips, 1971)
- Analysis / creation of architectural designs
- Derivation usually done manually
- Procedural Modeling of Cities (Parish Müller,
SG 2001) - Large-scale city layout tool
- Crude building generation using L-systems
- Instant Architecture (Wonka et. al., SG 2003)
- Split grammar and control grammar
- Shape-based rules restricted in configuration
10CGA Shape
- Production process
- Rule-driven modification replacement of shapes
- Iteratively evolve a design by creating more and
more details - Sequential application (like Chomsky grammars)
11Shape Rules
- Notation
- A shape consists of
- Symbol (string)
- Geometry (geometric attributes)
- Oriented bounding box called scope (numeric
attributes)
id predecessor condition ? successor prob
12Basic Shape Operations
- Insertion I(objId)
- Transformations T(tx,ty,tz), S(sx,sy,sz),
Rx(a).. - Branching ...
- Simple example
- 1 A ? T(0,0,6) S(8,10,18) I(cube)
- T(6,0,0) S(7,13,18) I(cube)
- T(0,0,16) S(8,15,8) I(cylinder)
13The Subdivision Split
- Example
- 1 facade ? Subdiv(Y,3.5,0.3,3,3,3) floor
ledge floor floor floor
14The Subdivision Split (Scaled)
- 1 facade ? Subdiv(Y,3.5,0.3,1r,1r,1r)
floor ledge floor floor floor - 2 floor ? Subdiv(X,2,1r,1r,2) B A A
B
15The Repeat Split
- Example1 floor ? Repeat(X,2) window
- Create as many window elements of
approximatesize 2 as there is space
16The Component Split
- Formatid A ? Comp(type,params) B C ...
Z - Example1 solid ? Comp(sidefaces) facade
?
17Mass Modeling
- Building mass models are most naturally
constructed as an assembling of simple solids - Basic building blocks L, H, U, T
- Basic roof typesGable, hip, mansard...
18Assembling Solids Example
- Starting with the building lot as axiom
- Stochastic variationsof mass models
- Generated with four rules only
19Shape Interaction Motivation
- Problem The volumes are not aware of each
other ? unwanted intersections
20Shape Interaction Motivation
- Solution Test the spatial overlap and align
elements to important lines
21Shape Interaction Occlusion
- Example1 tile Shape.occ(all) none ?
door - Label can be a shape symbol or a flag (all)
- Return values are either none, partial or
full - Shape-geometries or scope-boxes can be queried
22Occlusion Example
- 6 tile Shape.occ(noparent) none ?
window - 7 tile Shape.occ(noparent) part ?
wall - 8 tile Shape.occ(noparent) full ? e
23Occlusion Example
- 6 tile Shape.occ(noparent) none ?
window - 7 tile Shape.occ(noparent) part ?
wall - 8 tile Shape.occ(noparent) full ? e
24Shape Interaction Snapping
- Snap lines can be generated manually by the user
- .. and are created automatically on intersections
25Shape Interaction Snapping
- Subdivision split1 floor ?
Subdiv(X,1r,1r,1r,1r,1r) B B B B B - Repeat split1 floor ? Repeat(X,0.2r) B
26Shape Interaction Snapping
- Subdivision split1 floor ?
Subdiv(XS,1r,1r,1r,1r,1r) B B B B B - Repeat split1 floor ? Repeat(XS,0.2r) B
27Snapping Example
- Main application are office and high-rise
buildings
28Implementation
- Integrated in the CityEngine framework (C)
- Computation of a model with 50K polygons takes
about one second - User interface
- Text editor for rules
- OpenGL with manydifferent view modes
- GIS viewer
- Interactive editing
29Results Petronas Tower
30Results Shape Interaction
31Results Procedural Pompeii
32Results Suburbia
33Future Work
- Pushing the CityEngine towards architecture
- Functional shapes for simulation
- Interior design
- Real-time visualization
- Automatic Level-of-Detail generation
- Derivation on demand
- Extracting semantics automatically
- Employ shape grammars for shape understanding
- Methods from computer vision and machine learning
34Acknowledgments
- Tijl Vereenooghe (Center for Archaeological
Sciences, KU Leuven) - Robbie Müller (3D-Freelancer, Zurich)
- EC IST Network of Excellence EPOCH
- EC IST Project CyberWalk
- NGA grant HM1582-05-1-2004
- Pixar
- Greenworks