Introduction to CityEngine
CityEngine’s primary concept revolves around a procedural approach to efficient modeling. This approach involves providing the computer with a code-based procedure comprising geometric modeling commands, which are then executed. Unlike traditional manual interventions, where users interact directly with the model to create 3D geometries, tasks are described abstractly in a rule file.
CityEngine Features
Procedural Modeling Core
CityEngine’s CGA shape grammar includes commands like extrude, split, and texture, which are commonly recognized in most 3D applications. These commands can be adapted to create complex architectural forms.
Dynamic City Layouts
CityEngine allows the creation of dynamic city layouts, enabling the design of interactive street networks that update in real-time. Streets, sidewalks, and entire blocks adapt efficiently to user inputs, allowing for the design of complete cities. Geometries dependent on the dynamic city layout are updated on the fly, with buildings being rebuilt as surrounding street widths are edited.
Customizable UI
CityEngine’s user interface can be adapted to various tasks, such as rule creation, street network work, attribute editing with real-time feedback, or analyzing statistical reports of city development. Python scripting can be used to control repetitive tasks, generate formatted reports, or automate specific actions, further streamlining the workflow.
Data Interoperability
CityEngine supports widely used formats for both import and export, allowing for the transportation of line data, shape data (footprints), and 3D geometry. This interoperability is beneficial across industries, including urban planning, architecture, entertainment, and simulation.
CityEngine Modeling Pipeline
Modeling an urban environment in CityEngine typically involves several stages, described in the modeling pipeline. The pipeline comprises procedural modeling tools for generating large-scale urban layouts and applying CGA rules to create detailed building models. The street network is usually created first, followed by the subdivision of resulting blocks into lots. Finally, CGA rules are applied to generate 3D building models.
CityEngine scenes are stored as layers representing different stages of the modeling process. The flexible pipeline allows for entry at various stages, including the import and further processing of street blocks or building masses.
Generate Large-Scale Urban Layouts
CityEngine offers procedural and interactive tools for laying out street networks and aligning and subdividing shapes. Streets can be grown according to patterns and edited interactively, while tools for lot shapes allow for alignment to terrain. The layered organization of scenes facilitates practical handling of massive datasets, with the option to create and manage variations by duplicating layers.
Grammar-Based Modeling
Grammar-based modeling, or procedural modeling, is applied when many design iterations or objects need to be created following standardized rules. This approach automates modeling tasks, saving significant time compared to traditional manual modeling. Unique objects, like landmark buildings, are typically modeled by hand, as automation may not be applicable.
Computer Generated Architecture
CityEngine’s CGA shape grammar is a unique programming language for generating architectural 3D content. Grammar-based modeling involves defining rules that iteratively refine designs by adding details to shapes, which consist of geometry within locally oriented bounding boxes.
The CGA shape grammar workflow in CityEngine includes:
- Creation or import of building lots or mass models.
- Application of rule files (.cga) to the shapes, either uniformly or on a per-building basis.
- Execution of rules on selected shapes, with start rules present in the rule file.
- Exploration and editing of generated models in the 3D viewer, with options to alter rules, rule parameters, and random seeds.
- Exporting finalized designs to a hard disk, including textures.
Note
there are no memory constraints in the exporting mode.
Supported Operating Systems
CityEngine 2024.1 supports the following operating systems:
Operating System | Latest Update or Service Pack Tested |
---|---|
Windows | |
Windows 11 Pro and Enterprise | September 2024 update |
Windows 10 Pro and Enterprise | September 2024 update |
Windows Server 2022 Standard and Datacenter | September 2024 update |
Windows Server 2019 Standard and Datacenter | September 2024 update |
Windows Server 2016 Standard and Datacenter | September 2024 update |
Linux | |
Red Hat Enterprise Linux Server 9 | Update 4 |
Red Hat Enterprise Linux Server 8 | Update 10 |
AlmaLinux 9 | Update 4 |
AlmaLinux 8 | Update 10 |
Rocky Linux 9 | Update 4 |
Rocky Linux 8 | Update 10 |
Notes:
- Esri does not provide support for products installed on developer releases of an operating system.
- CityEngine is only supported on 64-bit CPUs with x86-64 architecture.
- Prior and future updates or service packs for these operating system versions are supported unless otherwise stated. The operating system version and updates must be supported by the operating system provider.
Hardware Requirements
The following table summarizes the hardware requirements for CityEngine 2024.1:
Requirement | Minimal | Recommended |
---|---|---|
CPU | Intel/AMD compatible (x86_64) quad-core | Intel i5 (10th Gen) 8-core or AMD Ryzen 5 (3rd Gen) 8-core or higher |
Memory | 16 GB | 32 GB or more |
Disk Space | 4 GB | 32 GB or more |
GPU ¹ | Intel ² HD Graphics 500 Series | NVIDIA GTX 1080, Quadro P5000 or newer |
NVIDIA Geforce GTX 950 or Quadro M2000 | AMD RX 5700 XT or newer | |
AMD RX 500 Series | ||
AMD ² Radeon Graphics (Ryzen CPU) | ||
GPU Memory | 2 GB | 8 GB or more |
OpenGL | 4.1 | Latest |
Screen Resolution | 1280×720 | 1920×1200 (or higher) |
Network | Internet connection | 100 Mbps (or higher) internet connection |
Notes:
- ¹ It is recommended that you use the latest GPU drivers.
- ² Integrated GPUs are only supported on Windows.
Software Requirements
CityEngine 2024.1 requires the following software:
Operating System | Software |
---|---|
Windows | Unreal Exporter – Install the Epic Games Launcher from www.unrealengine.com |
Linux | – Install the “Workstation” group (both Gnome and KDE environments are supported). |
– For RHEL 8, AlmaLinux 8, Rocky Linux 8, install the “redhat-lsb” package. | |
– Install the “mesa-libGLU” package. | |
– Make sure the desktop environment starts in “X11/Xorg” mode (Wayland is not currently supported). |
Virtualization
CityEngine utilizes the OpenGL graphics API for rendering city scenes in its viewports. Software-based virtualized GPUs do not provide the necessary performance for CityEngine. Therefore, desktop virtualization products like VMware Workstation and VirtualBox are not supported. However, enterprise-grade and cloud-based virtualization solutions offer options to virtualize GPUs (NVIDIA vGPU, AMD MxGPU) or provide dedicated GPUs through pass-through, ensuring the required graphics performance for CityEngine.
To install and run CityEngine on cloud-based environments, Esri does not offer technical support or troubleshooting due to the vast number of virtual machine and operating system combinations. Consult cloud provider documentation if issues arise.
Refer to the hardware requirements section for more details.
Virtualization Requirements for CityEngine 2024.1:
On-Premises Virtual Desktop Infrastructure (VDI) | Notes |
---|---|
VMware vSphere | NVIDIA vGPU enabled virtual machines |
GPU | Minimum: NVIDIA M-Series, AMD FirePro S7150 |
Recommended: NVIDIA RTX 6000 or later | |
Virtual Disk Size ³ ⁴ | Minimum: 65 GB |
Recommended: 90 GB or more | |
Virtual GPU Memory ⁵ | Minimum: 2 GB |
Recommended: 8 GB or more |
Notes:
- ³ Disk size includes space for the base OS installation plus space for CityEngine projects, examples, and tutorials.
- ⁴ Importing and exporting different file formats in CityEngine can be computationally intensive. Using an SSD-based direct-attached storage system is recommended if your workflow involves frequent import and export steps.
- ⁵ Refer to the GPU vendor’s documentation on how to partition the graphics card.
Limitations
The following are known limitations:
- CityEngine does not support all roaming profile features.
- NTLM proxies are not supported.