# CityEngine

ArcGIS CityEngine is a commercial three-dimensional (3D) modeling program developed by Esri R&D Center Zurich (formerly Procedural Inc.) and specialises in the generation of 3D urban environments. Using a procedural modeling approach, it supports the creation of detailed large-scale 3D city models. CityEngine works with architectural object placement and arrangement in the same manner that software like VUE manages terrain, ecosystems and atmosphere mapping. Unlike the traditional 3D modeling methodology which uses Computer-Aided Design (CAD) tools and techniques, CityEngine takes a different approach to shape generation via a rule-based system. It can also use Geographic Information System (GIS) datasets due to its integration with the wider Esri/ArcGIS platform. Due to this unique feature set, CityEngine has been used in academic research and built environment professions, e.g., urban planning, architecture, visualization, game development, entertainment, archeology, military and cultural heritage. CityEngine can be used within Building Information Model (BIM) workflows as well as visualizing the data of buildings in a larger urban context, enhancing its working scenario toward real construction projects.

## History and releases
### Developer

In 2007, Procedural Inc. was founded and separated from ETH Zurich, the top-ranking technology university in Switzerland. In the summer of 2011, Procedural Inc. was acquired by Esri Inc and became Esri R&D Center Zurich, continually studying in the fields of computer graphics, computer vision, software engineering, finance, marketing, and business.

### Software

ArcGIS CityEngine (renamed from Esri CityEngine in June 2020) was developed at ETH Zurich by the original author Pascal Mueller, co-founder and CEO of Procedural Inc. During his PhD research at ETH Computer Vision Lab, Mueller invented a number of techniques for procedural modeling of 3D architectural content which make up the foundation of CityEngine. Since CityEngine's public debut at the 2001 SIGGRAPH conference, additional research papers have contributed to featuring CityEngine. In 2008, the first commercial version of CityEngine was released by the Swiss company Procedural Inc and was used by professionals in urban planning, architecture, visualization, game development, entertainment, GIS, archeology, and cultural heritage.

### Releases

| Date | Version |
| July 21, 2008 | CityEngine 2008 |
| Nov 20, 2008 | CityEngine 2008.2 |
| Dec 17, 2008 | CityEngine 2008.3 |
| May 19, 2009 | CityEngine 2009 |
| Sept 15, 2009 | CityEngine 2009.2 |
| Dec 10, 2009 | CityEngine 2009.3 |
| June 23, 2010 | CityEngine 2010 |
| Oct 12, 2010 | CityEngine 2010.2 |
| Dec 9, 2010 | CityEngine 2010.3 |
| Oct 26, 2011 | Esri CityEngine 2011.1 |
| Feb 23, 2012 | Esri CityEngine 2011.2 |
| Oct 3, 2012 | Esri CityEngine 2012.1 |
| Nov 13, 2013 | Esri CityEngine 2013.1 |
| June 1, 2014 | Esri CityEngine 2014 |
| Sept 15, 2014 | Esri CityEngine 2014.1 |
| ----,---- | Esri CityEngine 2015.0 |
| ----,---- | Esri CityEngine 2015.1 |
| ----,---- | Esri CityEngine 2015.2 |
| ----,---- | Esri CityEngine 2016.0 |
| ----,---- | Esri CityEngine 2016.1 |
| ----,---- | Esri CityEngine 2017.0 |
| Nov 7, 2017 | Esri CityEngine 2017.1 |
| May 10, 2018 | Esri CityEngine 2018.0 |
| Sept 18, 2018 | Esri CityEngine 2018.1 |
| May 14, 2019 | Esri CityEngine 2019.0 |
| October, 2019 | Esri CityEngine 2019.1 |
| June, 2020 | ArcGIS CityEngine 2020.0 |
| November, 2020 | ArcGIS CityEngine 2020.1 |
| March, 2021 | ArcGIS CityEngine 2021.0 BETA |
| June, 2021 | ArcGIS CityEngine 2021.0 |
| August, 2021 | ArcGIS CityEngine 2021.1 BETA |
| ----,---- | ArcGIS CityEngine 2021.1 |
| April, 2022 | ArcGIS CityEngine 2022.0 BETA |
| June, 2022 | ArcGIS CityEngine 2022.0 |
| September, 2022 | ArcGIS CityEngine 2022.1 BETA |
| October, 2022 | ArcGIS CityEngine 2022.1 |
| June, 2023 | ArcGIS CityEngine 2023.0 |
| October, 2023 | ArcGIS CityEngine 2023.1 BETA |
| November, 2023 | ArcGIS CityEngine 2023.1 |
| May, 2024 | ArcGIS CityEngine 2024.0 BETA |
| July, 2024 | ArcGIS CityEngine 2024.0 |
| September, 2024 | ArcGIS CityEngine 2024.1 BETA |
| November, 2024 | ArcGIS CityEngine 2024.1 |

### Licensing & Pricing

There is no longer two versions of ArcGIS CityEngine (Advanced and Basic). Pricing may vary by region and distributors. Pricing in the USA is around $2,700 per year (USD) and can be found here https://www.esri.com/en-us/store/products/buy/arcgis-cityengine. UK Prices can be found here https://www.esriuk.com/en-gb/store/products/buy/arcgis-cityengine . For Single Use annually it is currently £2,891 per year (excluding VAT). Purchasing of CityEngine is via an Esri local distributor, depending on region esri.com can redirect to the distributor based on your browser region. Once purchased you can download and obtain license details from the portal.

## Features

Procedural Modeling Core (CGA Shape Grammar Language): CGA (computer generated architecture) rules allow to control mass, geometry assets, proportions, or texturing of buildings or streets on a citywide scale. (More details can be seen in the "Procedural Modeling" section.)
Get Map Data: Users can create a 3D urban environment in a few minutes via the download helper; Users can select a target location and import geo-referenced satellite imagery and 3D terrain of that place. If they are available in the OpenStreetMap (OSM), the data of street and building footprint can be easily retrieved to build 3D models via default CGA rules.
GIS/CAD Data Support: Support for industry-standard formats such as Esri Shapefile, File Geodatabase and OpenStreetMap which allow to import/export any geo-spatial/vector data.
Parametric Modeling Interface: An interface to interactively control specific street or building parameters, such as the height or age (defined by the CGA rules)
Dynamic City Layouts: Interactive design, editing and modification of urban layouts consisting of (curved) streets, blocks and parcels.
Map-Controlled City Modeling: Global control of buildings and street parameters through image maps (for example the building heights or the landuse-mix).
Street Networks Patterns: Street grow tools to design and construct urban layouts.
Support for Industry-Standard 3D Formats: CityEngine supports KMZ, Collada, Autodesk FBX, 3DS, Wavefront OBJ, RenderMan RIB, Alembic, e-on software's Vue, Universal Scene Description USD, Khronos Group GLTF and Unreal Datasmith.
Custom Report Generation: Users can script and generate rule-based reports to show social-economic figures (e.g., Gross Floor Area (GFA), Floor Area Ratio (FAR)) and to analyze their urban design proposals.
I3S (Scene Layer Package) Export: Models built in CityEngine can be directly exported and then used to create a WebGL scene in a browser across via ArcGIS Online Scene viewer. I3S is an OGC-compliant standard.
3D Web Scene Export: The model built in CityEngine can be directly exported and then used to create a WebGL scene in a browser. The 3D environment in the web scene can be rotated, explored, compared and commented online by multiple users.
360 VR Experience: The scenarios of urban environments can be used to generate a series of panoramic photos for publishing them online. Users can look around by turning their heads in virtual reality (VR) headsets. (Currently, it only supports Samsung Oculus Gear)
Python Scripting Interface: CityEngine provides ce.py as a built-in library.
Facade Wizard: Rule creator and visual facade authoring tool.
3D Format Support for Game Engines (VR/AR): Now the model built in CityEngine can be directly exported to Unreal Engine, with the loading capacity of tens of millions of polygons and tens of thousands of objects, as well as non-limited material textures. Meanwhile, exporting to Unity3D still requires users to use Autodesk Maya as a transfer station.
Available for the following Platforms: Available for Windows (64bit only) and Linux (32/64bit) (Mac support has been discontinued).
Visual CGA: Node-based modeling and a carefully designed component library of architectural rules, allow for interactive development and exploration of urban designs.
Web Scene Export: Easy-to-use solution to share your CityEngine scene on ArcGIS Online
Material library and material browser: Added an extensive set of materials that are typically used in the urban context to ESRI.lib.

## Procedural Modeling

ArcGIS CityEngine uses a procedural modeling approach to automatically generate models through a predefined rule set. The rules are defined through a CGA shape grammar system enabling the creation of complex parametric models. Users can change or add the shape grammar as much as needed providing room for new designs.
Modeling an urban environment within CityEngine can start out with creating a street network either with the street drawing tool or with data imported from openstreetmap.org or from Esri data formats such as Shapefiles or File Geodatabase. The next step is to subdivide all the lots as many times as specified resulting in a map of lots and streets. By selecting all or some of the lots CityEngine can be instructed to start generating the buildings. Due to the procedural modeling technology, all buildings can be made to vary from one another to achieve an urban aesthetic. At this point, the city model can be re-designed and adjusted by changing parameters or the shape grammar itself.
CGA Shape Grammar system can read Esri-Oracle format datasets directly, and it operates as a top-bottom generation tree: it generates complex components from simple Shapefiles polygons/poly-lines/points whereas each branch and leaf of the generation tree cannot interact with others. It is different than mainstream shape grammars like Grasshopper in Rhinoceros 3D and Dynamo in Autodesk Revit.

## Relevant applications

Traditionally, building a 3D urban environment is very time-consuming due to numerous buildings and details of a city. Designers used CAD software to create shapes one by one, and researchers analyzed cities by computing 2D information in GIS (GIS only supports limited 3D shape generation like extrusion.) CityEngine's Procedural Modeling system makes it possible to generate complex 3D models via information massively, bringing a large number of relevant applications. It not only enhances the workflow of urban design/study/planning and merges to a new field of study called Geodesign (means using geospatial information to design a city) but also lowers the threshold of making city environments in game and movie industry.

### Geodesign

Discussions on geodesign often mention the use of ArcGIS CityEngine, although it is not an analytical tool like GIS. As a crucial tool to enhance 3D shape generation in ArcGIS, ArcGIS CityEngine is the critical product to improve the applicability of GeoDesign, using geospatial information to design or analyze a city.

### Urban design and planning

Garsdale Design were early pioneers of ArcGIS CityEngine in the creation of city master plans in Iraq pre-2013. using it to not just model existing historic areas but also model future plans. Larger companies like Foster+Partners and HOK Architects have also used CityEngine in their sizable urban planning projects. Before using that, it took them numerous work hours on creating interactive visualizations of hundreds of thousands of buildings. With CityEngine, the designers and clients of projects can communicate via craft fluid, data-rich, and real-time rendered experiences.

### Urban studies

Due to its dominant feature in building informative city models, urban researchers are using CityEngine to compare land-use planning schemes, starting from the densest global cities such as Hong Kong and Seoul. When urban designers/planners enjoy the quantitative analysis, environmental scientists also like the instant 3D model generation in CityEngine, leading to more convenient informative research out of the time-consumption on creating a city from each building.

### Game development

Triple-A Games require detailed 3D environments to assign interactive scripts, causing CityEngine's participation in the creation of game scene. Currently, game scenes become larger than that of old video games ten years ago. Large sandbox or open-world games such as the Grand Theft Auto series or the Assassin's Creed series need millions of distinguishable 3D buildings in their virtual world. Designing these games with instantly testing and editing can reduce workloads and increase the rationality of a game scene in the gameplay.

### Movie industry

Zootopia, which won the 2016 Academy Award for Best Animated Feature Film, used CityEngine to establish an impressive metropolis where humans don't exist. From giraffes to shrews, animals own diverse scales in the system of transportation, houses, and amenities. To build up a multi-scaling city, the designers used CityEngine due to its rule-based system. Before Zootopia (also known as Zootroplis in countries outside the USA), CityEngine was also used to create the Japanese-style city—San Fransokyo—in Big Hero 6 .

### Military

ArcGIS CityEngine due to its integration with the Esri product suite and its ability to process geospatial data to create 3D scenes/maps is being used within military/defense organisations.

## List of Movies and TV Shows CityEngine has been used in

Studios and companies rarely state what software they use in their pipelines, when CityEngine is mentioned as a tool in production it's often in a small reference in a larger article.
| TV/Movie | Title | Studio/Publisher | Year |
| TV | The Witcher | Netflix | 2020 |
| Movie | Blade Runner 2049 | Warner Bros. | 2017 |
| Movie | Independence Day: Resurgence | 20th Century Fox | 2016 |
| Movie | Zootopia/Zootroplis | Disney | 2016 |
| Movie | Big Hero 6 | Disney | 2014 |
| Movie | Superman: Man of Steel | Warner Bros. | 2013 |
| Movie | Cars* | Pixar | 2006 |
| Movie | Guardians of the Galaxy* | Marvel | 2014 |
* these are movies that have rumoured to have CityEngine usage, but only via one source - an Esri employee.

## Ports

ArcGIS CityEngine is built on top of Eclipse IDE and has therefore been built for use on Windows, and Linux operating systems. Support for macOS was stopped in March 2021.

## Plugins and Extensions

ArcGIS CityEngine currently works with a number of 3rd Party 3D modeling, rendering and analytical software products via its SDK and API, these currently are:
* ArcGIS CityEngine for ArcGIS Urban: ArcGIS Urban Suite
* Puma: ArcGIS CityEngine for Rhino
* Palladio: ArcGIS CityEngine for Houdini
* Serlio: ArcGIS CityEngine for Maya
* PyPRT: ArcGIS CityEngine for Python
ArcGIS CityEngine provides a Python scripting interface which is built on Jython (current version 2.7.0), this allows users to create their own tools and functionality.

## Publications

* ACM Siggraph 2001: Procedural Modeling of Cities - Yoav Parish and Pascal Mueller
* ACM Siggraph 2006: Procedural Modeling of Buildings - Pascal Mueller, Peter Wonka, Simon Haegler, Andreas Ulmer and Luc Van Gool
* ACM Siggraph 2007: Image-based Procedural Modeling of Facades - Pascal Mueller, Gang Zeng, Peter Wonka and Luc Van Gool
* ACM Siggraph 2008: Interactive Procedural Street Modeling - Guoning Chen, Gregory Esch, Peter Wonka, Pascal Mueller and Eugene Zhang
* Eurographics 2009: Interactive Geometric Simulation of 4D Cities - Basil Weber, Pascal Mueller, Peter Wonka and Markus Gross
* Eurographics Symposium VAST 2006: Procedural 3D Reconstruction of Puuc Buildings in Xkipché - Pascal Mueller, Tijl Vereenooghe, Peter Wonka, Iken Paap and Luc Van Gool
* Eurographics Symposium VAST 2007: Populating Ancient Pompeii with Crowds of Virtual Romans - Jonathan Maïm, Simon Haegler, Barbara Yersin, Pascal Mueller, Daniel Thalmann and Luc Van Gool