Terrain Synthesis from Digital Elevation Models
Terrain Synthesis from Digital Elevation Models
4, JULY/AUGUST 2007
Abstract—In this paper, we present an example-based system for terrain synthesis. In our approach, patches from a sample terrain
(represented by a height field) are used to generate a new terrain. The synthesis is guided by a user-sketched feature map that
specifies where terrain features occur in the resulting synthetic terrain. Our system emphasizes large-scale curvilinear features (ridges
and valleys) because such features are the dominant visual elements in most terrains. Both the example height field and user’s sketch
map are analyzed using a technique from the field of geomorphology. The system finds patches from the example data that match the
features found in the user’s sketch. Patches are joined together using graph cuts and Poisson editing. The order in which patches are
placed in the synthesized terrain is determined by breadth-first traversal of a feature tree and this generates improved results over
standard raster-scan placement orders. Our technique supports user-controlled terrain synthesis in a wide variety of styles, based
upon the visual richness of real-world terrain data.
Index Terms—Terrain synthesis, Digital Elevation Models, terrain analysis, texture synthesis.
1 INTRODUCTION
simulation approaches into a single framework. Recent 1) search in a sample texture for neighborhoods most
physical erosion techniques, exemplified by [12], [13], [14], similar to a context region and 2) merge a patch or a pixel
[15], and [16], have focused on improving both the physical with the (partially) synthesized output texture. Dynamic
modeling aspect and computational efficiency. With appro- programming [24] and graph cuts [26] have been used to
priately tuned parameters, these techniques can generate a optimize the patch merging stage. We employ a related
realistic-appearing terrain. search-and-merge strategy that addresses the unique
Both fractal and physical erosion techniques add terrain characteristics of terrain data.
details through procedural refinement, which often involves Recently, Zhang et al. [32] introduced feature-based
nonintuitive parameter tuning. Recently, Brosz et al. [17] warping and blending techniques to synthesize progressively
attempted to extract high-resolution terrain details from variant texture on arbitrary surfaces. In their work, the feature
existing DEM data and applied it to a lower resolution terrain texton masks were manually extracted. Wu and Yu [27] use
through multiresolution analysis. In practice, their method edges extracted from the input texture as high-level features
requires both the source and target terrain to be fairly detailed to guide patch-based texture synthesis. We build on this
and does not grant the user freedom to create an arbitrary earlier work in two ways. First, we employ curvilinear
terrain. features to support the user sketching of the desired terrain
To provide the user with more intuitive control over the features and efficient search for matching patches in large
synthesized terrain, image-based alternatives were proposed terrain data sets. Second, we introduce a feature analysis
by Lewis [18] and Perlin and Velho [19]. In these works, technique that can reliably extract global terrain character-
terrain was viewed as a type of texture and user control was istics such as ridges and valleys from large DEMs in a wide
provided through direct manipulation of the texture. The range of styles. We demonstrate that standard edge-finding
result was then interpreted as a height field to create a variety methods are inappropriate for this task.
of terrain types. However, because it is difficult for a user to The image analogies framework introduced by Hertz-
draw a realistic natural height field by hand, these methods mann et al. [25] can be used to synthesize terrain images
typically suffer from a lack of realistic detail. through a texture-by-numbers approach. This work does
2.1 Commercial Software not directly synthesize novel terrain height fields. Its
application to height-field synthesis is hampered by the
We are not aware of any existing commercial software for
difficulty of guaranteeing that the local-neighborhood
terrain synthesis that employs an approach that is similar to
matching approach would preserve the extended structures
ours. We briefly review four major commercial systems,
such as ridges and valleys that characterize terrain style.
Mojoworld, Terragen, World Machine, and Bryce, which
The GPU-based texture synthesis method presented in [30]
are representative of the current state of the art. Mojoworld
includes drag-and-drop features and synthesis magnifica-
and Terragen both have fractal synthesis engines that
tion. These techniques were used to relocate mountains on a
generate terrain procedurally. The resulting models are
terrain height map. In contrast to this work, our focus is to
very compact because they are generated on the fly. World
automatically generate a complete terrain image in a
Machine, on the other hand, offers geological erosion on top
particular style by matching extended terrain features with
of its procedural shape and noise generator to synthesize a
a desired user sketch. We therefore support fully automatic
realistic-appealing terrain. In all of these systems, control
feature extraction and matching.
over the synthesis result is obtained by changing the global
Although our example-based approach to terrain synth-
parameters in the generation process. It is, however,
esis is inspired by the recent success of patch-based
difficult to set these parameters so as to generate distinctive
methods, terrain synthesis is not simply texture synthesis
realistic terrain types. Moreover, these systems do not
support the user-specified placement of major terrain on height fields. The terrain generation problem can be
features. Bryce, in addition to having both fractal and distinguished from conventional texture synthesis in three
erosion synthesis engines, also accepts as input a direct main ways. First, a wide variety of terrain types can be
specification of the height field by the user using a painting characterized by a combination of global features (such as
approach (essentially the method in [18] with the addition ridges and valleys), which can be reliably extracted from
of fractal noise). Figs. 2c and 2d are example terrains input terrain maps. In contrast, no such easily identifiable
generated by such commercial systems. None of these global features exist for general image textures. Second,
products, however, make it possible to synthesize terrain in terrain synthesis must be globally controllable in order to be
a specific style such as the style of the Grand Canyon. useful for a wide range of applications and large terrain
data sets (often a gigapixel or more) must be searched in
2.2 Texture Synthesis order to meet the users’ constraints. This stands in contrast
Image-based texture synthesis is the process of creating an to the canonical texture synthesis problem of “growing” a
arbitrarily large patch of texture by drawing pixels from a small input patch of texture into a larger output image with
given example image. During the past few decades, a the same local intensity structure. We demonstrate that
steady improvement in the quality of synthesized textures, feature-based terrain matching can address both of these
both 2D and volumetric, has been achieved through an concerns. Third, many recent cut-and-merge techniques for
evolution from pixel-based methods [20] to nonparametric texture synthesis exploit the fact that image textures contain
neighborhood-based methods [21], [22], [23]. The most many natural boundaries that provide good seams along
recent patch-based techniques, exemplified by [24], [25], which to merge texture elements. In contrast, there are no
[26], [27], [28], [29], [30], and [31], have two common stages: natural seams in terrain data. Moreover, any mismatch
ZHOU ET AL.: TERRAIN SYNTHESIS FROM DIGITAL ELEVATION MODELS 837
Fig. 5. Examples of terrain patches for each feature type. (a), (b), and
(c) Branch point, endpoint, and path patch, respectively. (d), (e), and
(f) Corresponding patches after feature extraction. Border colors identify
feature types in Fig. 6b.
Fig. 6. Illustration of patch placement order. (a) Sample sketch map.
The first stage, feature matching and placement, locates (b) Tree structure returned by PPA analysis. Branch-point features and
both isolated features, branch points and endpoints, and endpoint features are connected by curvilinear path features. (c) The
root patch is placed first. (d) Breadth-first traversal guides the placement
nonisolated features, curvilinear features (paths) in the of additional patches. (e) Once tree traversal is complete, begin placing
sketch map. See Fig. 5 for examples of each of these feature nonfeature patches. (f) Final result.
types. Patches are found that match these features and these
patches are placed in the output height field. 4.1.1 Branch Points
If we treat the isolated features extracted by the PPA as For branch-point matching, the degree (or valence) of the
nodes, and curvilinear features (paths) as edges of a graph, branch points must match and the angles of the outgoing
then this graph is guaranteed to be acyclic. Our algorithm segment chains must be similar. For determining the quality
follows a breadth-first search order to match and align the of angle matching, only d possible alignments have to be
patch regions. It first picks an isolated feature (usually a considered for a degree d branch point. For instance, as
branch if it is present) as the root, it then traverses down shown in Fig. 5d, the degree 3 branch patch would have
through the graph one edge at a time until every edge three alignments ð1; 2; 3Þ ! ð1; 2; 3Þ; ð2; 3; 1Þ; ð3; 1; 2Þ (the
reachable from the root is covered. This process is mirror image of this patch is treated as a new patch and
illustrated in Figs. 6c, 6d, and 6e. Note that this is a its alignment is a separate process). Because there are
departure from traditional texture synthesis methods that typically not many such branch points in a given example
follow a rigid patch placement order (for example, left to height field, testing against all candidate matches is
right and top down). extremely fast.
Finally, all the as-yet unfilled regions in the output height To perform warping of a candidate patch to fit the user’s
field are filled using regions from the input that do not contain sketch, first a set of control points fPi g must be identified
any strong features. The final result is depicted in Fig. 6f. In for the patch. These control points consist of the location of
both stages, several candidate patches are considered for
the branch point itself, plus those places where each
placement and the patch that is selected for use is the one that
outgoing path intersects a circle that is inscribed in the
gives the least cost in terms of its match with the user’s sketch
patch (see Fig. 5d). For instance, a patch with a three-way
and its overlap with already placed patches. (Patch placement
branch will have a total of four control points. Correspond-
invokes a graph-cut algorithm to select which pixels should
ing control points fPi0 g are also defined for the patch from
be deposited in the output height field and this will be
the sketch map. Now, we desire a continuous coordinate
described in Section 5.1). In Sections 4.1 and 4.2, we describe
transformation that maps the control points fPi g to fPi0 g
these matching and placement operations in more detail.
and that gives the minimal amount of distortion. We use a
4.1 Feature Patch Matching and Placement thin-plate spline (TPS) interpolant [33] for this purpose
As described above, isolated features in the user’s sketch because it works well with few constraints and it introduces
are either branch points or endpoints in the segment graph. minimal distortion as measured by the integral bending
Fig. 6b contains three branch points and five endpoints. The norm. We use two separate TPS functions to form a
system analyzes the user’s sketch map and identifies all coordinate transformation that maps any position in the
such isolated features. One by one, each such isolated original height field to its interpolated location in the
feature is examined and a list of candidate matches is warped height field. The best k branch-point patches with
formed from the isolated features in the example height the lowest deformation energy are the candidates for
field. We will consider branch points and endpoints in turn. further matching.
ZHOU ET AL.: TERRAIN SYNTHESIS FROM DIGITAL ELEVATION MODELS 839
Fig. 9. Illustration of patch placement and seam removal. (a) Matching patches are identified via graph cut. (b) Patch placement results in a seam.
(c) Poisson seam remover yields the final output.
according to the area of the overlapping region with the to artificially set gradient values at the seams. We do this by
already synthesized height field. solving a Poisson equation similar to the manner in which
The system looks for a high-quality match between such a Pérez et al. perform pixel matching across seams in a color
patch and the already synthesized height field based on the image [37].
SSD of the overlapping regions and selects k candidates. It Our elevation adjustment stage first translates the
then finds the best match according to the combination of the elevation values in the overlap region (typically one-third
SSD score and the graph-cut cost in merging. The best patch is of the patch size) into gradient values. Then, the gradient
placed and the system continues traversing the output height values across the seam are artificially set to zero. Finally, a
field looking for overlaps. The process terminates when all Poisson equation is solved to find the best fit set of
pixels in the output map have been filled. elevations to these adjusted gradient values. The result of
The SSD-based search to find the patch that best matches this process is a new set of elevations that is much smoother
the already synthesized output height field can be acceler- at the seam (Fig. 9c). Our system performs such elevation
ated using Fast Fourier Transforms (FFTs) [34], [35]. Using adjustments locally, invoking the method one time per
the FFT-based approach, the matching cost can be com- placed patch. Performing elevation adjustment locally
puted in Oðn logðnÞÞ time, where n is the number of pixels avoids the challenge of solving huge matrix equations. For
in the source height field. This is in comparison to Oðn2 Þ more details, we refer the reader to Appendix B.
time for a naive SSD implementation.
6 TERRAIN SYNTHESIS RESULTS
5 PATCH MERGING We used DEMs from the US Geological Survey terrain data
Our system combines two techniques to assure smooth for the results shown in Figs. 1, 10, 11, 12, 13, and 15. The
transitions between patches that are placed in the output origin, resolution, and size of the data are listed in Table 1.
height field. The first of these is the graph-cut technique Our example height fields range from 1,200 1,200 to
[26], [36], which finds good seams between already placed 4,097 4,097 samples at a height resolution of 16 bits. These
pixels and the pixels from a region that is in the process of large terrain maps pose significant search problems for a
being placed. The second procedure solves a discrete traditional texture synthesis approach. At our patch size of
Poisson equation [37] to create more gentle transitions 80 80 pixels, there are approximately 16 million possible
between the existing pixel elevations and the pixels from a matches in a given 4,000 4,000 map. However, as a result
newly placed patch. of our feature-based analysis, we can filter this total set
down to approximately 600 match evaluations for a given
5.1 Graph-Cut Optimal Seam Finder candidate position to be filled, which dramatically reduces
The graph-cut algorithm finds a seam in the overlapping the computational cost. Our method can synthesize a
region between patches that determines which pixels will representative terrain in approximately 5 to 6 minutes on
be kept in the final image. This is accomplished by solving a an Intel Pentium 4 2.0 GHz processor with a 2 Gbyte
max-flow/min-cut graph problem that minimizes the cost memory. All of the results are rendered using Planetside’s
of mismatched elevations across the cut. Edges in the graph Terragen terrain rendering system with procedural textures
represent connections between adjacent pixels and they are (determined by height and slope) overlaid on top of the
given weights based on elevation differences. For some terrain geometry.
patches, we want to insist that particular groups of pixels Figs. 10 and 11 illustrate the variation in output that can
from a given patch should be included, such as the central be obtained from the same sketch using our terrain
pixels in a branch feature patch. This is accomplished by synthesis approach. Fig. 10d shows the synthesis result
setting some of the edge weights infinitely high. (1,000 1,000) for the Mount Jackson terrain, and the sketch
As mentioned earlier, the cost of the final seam from the map for this example is shown in Fig. 10a. Although this
graph-cut algorithm is used by the system to select among result was created from many patches, both the interior
candidate patches for representing a given feature. Details and the outer circle are formed by unbroken mountain
on the use of the graph-cut algorithm for seam finding can ridges. Also note the characteristic curtainlike folds in the
be found in [26]. sides of the mountains. Fig. 10h shows the synthesis results
(2,000 2,000) using the Grand Canyon terrain. The sketch
5.2 Poisson Seam Remover map in Fig. 10e used for this example is the inverse of that
After the system has placed a new patch into the output in Fig. 10a so that valleys are selected instead of mountains.
map using graph cut, a discontinuity may still be visible Here, the and the circle are formed from joined pieces of
along the seam (Fig. 9b). We further improve elevation the Colorado River, yet the seam locations cannot be
matching across a seam by adjusting the heights according detected. Although guided by the user’s sketch, this terrain
ZHOU ET AL.: TERRAIN SYNTHESIS FROM DIGITAL ELEVATION MODELS 841
Fig. 10. Multiple terrain synthesis results with the sketched half-life symbol. (a) User sketch. (b) Mount Jackson. (c) Synthesis result. (d) Rendered
terrain synthesized from an elevation map of Mount Jackson, Colorado. (e) User sketch. (f) Grand Canyon. (g) Synthesis result. (h) Rendered terrain
synthesized from an elevation map of the Grand Canyon.
retains the rich water-carved features of the original data. results illustrate the ability of our system to work with a
Fig. 11d shows the synthesis result (1,000 1,000) for the wide variety of terrain types with very different character-
Mount Vernon terrain, and Fig. 11h shows the synthesis istics while maintaining the salient features of the input
results (2,000 2,000) using the DEM from Flathead sketch map. Fig. 15 provides close-up views of the Grand
National Forest mountain region. Fig. 12d shows the Canyon and Flathead range synthesis results. Fig. 13a
synthesis result (1,000 800) for the Mount Vernon terrain shows a rendering of the Grand Canyon height map. We
with a user sketched Chinese character for “water.” These extract the canyon feature from this map using PPA to
842 IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS, VOL. 13, NO. 4, JULY/AUGUST 2007
Fig. 11. Multiple terrain synthesis results with the sketched half-life symbol. (a) User sketch. (b) Mount Vernon. (c) Synthesis result. (d) Rendered
terrain synthesized from an elevation map of Mount Vernon, Kentucky. (e) User sketch. (f) Flathead range. (g) Synthesis result. (h) Rendered terrain
synthesized from an elevation map of Flathead National Forest mountain range, Montana.
obtain a sketch map. By synthesizing the sketch in the style styles. A simple sketch map (Fig. 14b) was created by the user
of the Puget Sound DEM, we obtain a “mountain” version from an artist rendering of the map of Middle Earth (Fig. 14a).
(4,000 2,000) of the Grand Canyon, illustrated in Fig. 13b. The user assigned different terrain styles to each part of the
sketch map (Table 2). In this example, the user first placed
6.1 Synthesis with Multiple Terrain Styles Mount St. Helen at the location of Mount Doom in Mordor (a
A larger example, illustrated in Fig. 14, shows the generation localized feature). Our system then synthesized the rest of the
of a 3D map of Middle Earth using several different terrain terrain (3,470 2,996) automatically and merged it seamlessly
ZHOU ET AL.: TERRAIN SYNTHESIS FROM DIGITAL ELEVATION MODELS 843
Fig. 12. Terrain synthesis result with the sketched Chinese character for “water.” (a) User sketch. (b) Mount Vernon. (c) Synthesis result.
(d) Rendered terrain synthesized from an elevation map of Mount Vernon, Kentucky.
with Mount Doom. Note that the user sketch includes both a system to make full use of an example-based approach in
variety of mountain ranges and a river valley (the Dead the domain of terrain synthesis.
Marshes, near the northwest corner of Mordor). The coast, Our method suffers from the same limitations as all
lakes, and rivers were created using a simple mask, which was example-based methods. In particular, the quality of the
extracted from the original map. The synthesized height map final synthesis depends upon the richness of the available
(Fig. 14c) was rendered using Planetside’s Terragen terrain terrain data. If the terrain features desired by the user
rendering system with both procedural and masked textures cannot be found in the example height field, then it will not
to give it an artistic feel. This example illustrates the ability of be possible to produce the desired result. For instance, our
our system to combine multiple terrain styles into one method will perform poorly if the terrain data is from a
synthesized terrain and to blend seamlessly among them. desert region where few significant curvilinear features are
Please view the movie (DivX encoded) that accom- present. The method can also perform poorly when the
panies this paper at http://www.computer.org/tvcg/ curvilinear feature pattern is extremely complicated. An
archives.htm. Additional results may be found at http:// additional issue is the need to specify the patch size, which
www.cc.gatech.edu/howardz/terrain. depends in turn upon the resolution and scale of the
example terrain.
We plan to extend our current method in several ways.
7 CONCLUSION First, it would be interesting to give the user greater control
We have demonstrated that example-based texture synth- over the synthesized terrain by incorporating additional
esis methods can be successfully adapted to the domain of constraints into the sketch map. For example, we plan to
terrain synthesis. The result is a new level of visual realism provide the ability to specify a desired elevation at a specific
in a user-controllable synthesized terrain. Our approach position. This could be accomplished by constraining the
leverages the fact that useful terrain features can be Poisson solver in conjunction with the matcher. We are also
extracted from height fields using analysis techniques from investigating the enforcement of C 1 continuity in addition
the geomorphology community. to our current enforcement of C 0 continuity. We intend to
We have introduced a tree-ordered patch placement explore the joint synthesis of elevation and texture maps for
algorithm that is based on a breadth-first traversal of a rendering and the interactive control of terrain synthesis.
feature tree. Our results demonstrate that this placement
method is superior to standard raster-scan placement orders. APPENDIX A
We have demonstrated the ability to synthesize terrain in
widely differing styles while retaining control over the GRAPH-CUT SEAM FINDING
positioning of major terrain features. Our system is based The graph-cut algorithm finds the minimum cost seam
on an intuitive sketch-based interface for specifying the (according to some matching quality measure) in the
desired terrain characteristics. We believe ours is the first overlapping region between patches that determines which
844 IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS, VOL. 13, NO. 4, JULY/AUGUST 2007
Fig. 13. The Grand Canyon turned into a mountain range. Features extracted from the Grand Canyon DEM are used as the user sketch to
synthesize a mountain range following the structure of the Grand Canyon from an elevation map of the Puget-Sound-style mountain range.
pixels will be kept in the final image. We choose the nodes A and B to represent the old and new patches. The
matching quality measure defined in [26], which is a edges that connect pixels in and nodes A and B are set to
measure of intensity (elevation) difference between the have infinitely high weights indicating that these pixels are
pairs of pixels. For example, in Fig. 16, let s and t be two constrained to come from one particular patch. In Fig. 16,
adjacent pixel positions in the overlap region between pixels 1, 2, and 3 have to come from patch A and pixels 7, 8,
patch A and B. Let aðsÞ and bðsÞ be the elevation at the and 9 from B. To determine which patch each of the pixels 4, 5,
position of the patches, respectively. Then, the matching and 6 will come from, we solve a max-flow/min-cut graph
quality measure M between the two adjacent pixels at problem that minimizes the cost of mismatched elevations
position s and t from patches A and B is defined to be across the cut. The red line shows the minimum cut (the
elevation difference between the two patches along the cut is
Mðs; t; A; BÞ ¼ jaðsÞ bðsÞj þ jaðtÞ bðtÞj: ð1Þ minimum). In the overlap region, pixels 5 and 6 will be copied
The graph shown in Fig. 16 has one node per pixel in the from the old patch B since they are still connected to node B.
overlap region between patches. The weight of the edge Likewise, pixel 4 will be copied from A. The cost cg of the
connecting the adjacent pixel nodes s and t is set to equal the minimum cut C is defined in terms of the matching quality
matching quality cost Mðs; t; A; BÞ. We use two additional measure as
X
cg ¼ Mðs; t; A; BÞ: ð2Þ
<s;t> 2 C
TABLE 1 s;t 2
Fig. 14. A 3D map of Middle Earth synthesized from multiple elevation maps. (a) Map of Middle Earth. (b) User sketch with masked water system.
(c) Synthesis result. (d) Rendered terrain synthesized from multiple elevation maps.
Fig. 15. Close-up views of synthesized terrain from the Grand Canyon (top images) and Flathead National Forest mountain range (bottom images).
ZHOU ET AL.: TERRAIN SYNTHESIS FROM DIGITAL ELEVATION MODELS 847
[31] S. Lefebvre and H. Hoppe, “Appearance-Space Texture Synth- Greg Turk received the PhD degree in computer
esis,” ACM Trans. Graphics, Proc. 33rd Int’l Conf. Computer Graphics science from the University of North Carolina,
and Interactive Techniques (SIGGRAPH ’06), vol. 25, no. 3, pp. 541- Chapel Hill, in 1992. He is currently an associate
548, 2006. professor at the Georgia Institute of Technology,
[32] J. Zhang, K. Zhou, L. Velho, B. Guo, and H.-Y. Shum, “Synthesis where he is a member of the College of
of Progressively-Variant Textures on Arbitrary Surfaces,” ACM Computing and the Graphics, Visualization, and
Trans. Graphics, vol. 22, no. 3, pp. 295-302, 2003. Usability Center. His research interests include
[33] F.L. Bookstein, “Principal Warps: Thin-Plate Splines and the computer graphics, computer vision, and scien-
Decomposition of Deformations,” IEEE Trans. Pattern Analysis and tific visualization. He is a member of the IEEE and
Machine Intelligence, vol. 11, no. 6, pp. 567-585, 1989. the IEEE Computer Society.
[34] C. Soler, M.-P. Cani, and A. Angelidis, “Hierarchical Pattern
Mapping,” ACM Trans. Graphics, vol. 21, no. 3, pp. 673-680, July
2002. James M. Rehg received the PhD degree in
[35] S.L. Kilthau, M.S. Drew, and T. Möller, “Full Search Content electrical and computer engineering from the
Independent Block Matching Based on the Fast Fourier Trans- Carnegie Mellon University. He is an associate
form,” Proc. IEEE Int’l Conf. Image Processing (ICIP ’02), pp. 669- professor in the College of Computing, Georgia
672, 2002. Institute of Technology. He is a member of the
[36] Y. Boykov, O. Veksler, and R. Zabih, “Fast Approximate Energy Graphics, Visualization, and Usability Center
Minimization via Graph Cuts,” IEEE Trans. Pattern Analysis and and codirects the Computational Perception
Machine Intelligence, vol. 23, no. 11, pp. 1222-1239, Nov. 2001. Laboratory. His research interests are computer
[37] P. Pérez, M. Gangnet, and A. Blake, “Poisson Image Editing,” vision, computer graphics, machine learning,
ACM Trans. Graphics, Proc. 30th Int’l Conf. Computer Graphics and and robotics. He is a member of the IEEE and
Interactive Techniques (SIGGRAPH ’03), vol. 22, no. 3, pp. 313-318, the IEEE Computer Society.
2003.