Building Digital Worlds in CityEngine
It took several days and a whole host of ArcGIS software applications before my entry for the recent Esri Canada 2021 Young Scholar Award contest eventually came together. One of the main highlights common to every Esri-based competition I’ve encountered thus far has been the opportunity to learn new things, and the excitement that comes with it. A bit behind the curve, my submission project provided me with my first real foray into ArcGIS Online’s Scene Viewer, which allows you to display and visualize geospatial data in a 3D environment, and the newly revamped ArcGIS StoryMaps, which employs a block palette approach to visual narratives. Playing around with the different styles and embedded content in StoryMaps was particularly fun, as it involves the joy of artistic design inherent to GIS mapping and cartography while allowing for additional interactive and multimedia elements.
I also made use of various non-GIS applications – Powerpoint for my poster, Photopea for imagery effects, and video editing software for my opening clip. However at the heart of the project was the software I relied on the most, Esri’s ArcGIS CityEngine. CityEngine is a powerful 3D modeling system designed to create large, detailed urban environments relatively quickly. To be fair, I was already well familiar with CityEngine for my thesis work, but I certainly had a lot to learn prior to that.
Unlike common urban modeling systems such as CAD and BIM which require extensive user interaction to design each individual building, CityEngine relies on grammar-based procedural modeling techniques, which allows for faster design of large-scale urban environments. Streets generation and block subdivision tools can be used to design city layouts, or specific modeling commands can be carried out through the application of rule scripts. Rule scripts are written using the software’s Computer Generated Architecture (CGA) programing language to divide lots, generate buildings, create intricate facades, model recursively, and much more. The software also regenerates features automatically when parameter values such as street widths are updated. Rules can also be used in tandem with height maps to control the city skyline, or land-use type maps that restrict the types of buildings and building space uses that can be created in that land use type.
CGA is a flexible language that is easy to learn and that can be applied to perform other tasks outside of simply building generation. For my project, I used CGA to not only create 3D residential units for buildings in my study, but to conduct multicriteria evaluation based on factors influencing prospective residents’ home selection. Furthermore, I coded my scripts to display the relative level of suitability of different modeled residential units through a colour symbology scheme, as well as calculate some of the criteria attribute values and the suitability functions used to transform them into criteria scores.
CityEngine also offers polygonal modeling tools, which allows users to more intuitively create buildings through a visual design rather than a coding approach. Users can iteratively extrude, push, or skew shapes to form the building structure.
Once building models are generated, they can be finished with geometry assets (additional complex structural elements like decorative arches) and texture assets to enhance the look and realism of the buildings. Existing or custom texture assets can be applied through rule files, the shape texturing tool, the Mass Texturizer tool built into the CityEngine library, or the Façade Wizard. Vegetation, street features, and other assets can be imported or selected from the CityEngine library to further set the scene.
The features and functions available in CityEngine make it a strong tool for urban planning. Data on land use and zoning areas can be applied to lots to specify the restrictions for any given lot. For instance, restrictions on setbacks and maximum building height from zoning regulations can be entered to display the associated building envelope or zoning volume for potential development. Common planning statistics such as Floor-Area Ratio (FAR) and Gross Floor Area (GFA) can be automatically calculated and updated with parameter modification. Landscaping tools are even provided to model or visualize exterior space designs.
The capabilities offered by CityEngine have led to its use in many professions even outside of urban planning, including archaeology, military, game development, and the entertainment industry for visual effects and fantasy landscapes. Fun fact: CityEngine was actually used to design the futuristic city in Blade Runner 2049, for which the film received an Oscar nomination for Best Visual Effects in 2018. While I’m definitely not using CityEngine at an Oscar-winning level just yet, I am constantly exploring the features and applications of the software to build 3D worlds that advance our understanding of real-world processes.