For those who don’t know the tool: ArcGIS CityEngine generates procedural 3D cities for planning, architectural visualisation and entertainment. Its models can move into DCC and realtime pipelines including Houdini and Unreal Engine.
Python 3 moves into production
CityEngine 2026 takes its Python 3 integration out of beta. The API now has feature parity with the older Jython implementation, while projects can select either environment independently. Projects now record their Python environment and packages in a pyproject.toml file. When a project is imported, the application can create the required environment automatically. Multiple Python 3 API sessions can also run concurrently, although scene objects are generally not protected against simultaneous modification.

For pipeline developers, the release adds management for virtual and Conda environments inside the application, external installation of the cityengine package and an option to run a selected script at startup. That makes the ArcGIS CityEngine API more practical for automation and custom tools without turning environment setup into its own production.
CGA editing gets clearer
The Visual CGA Editor replaces its previous Add Node dialog with a resizable Node Browser. It provides list and grid views, search filters, integrated component descriptions and drag-and-drop placement. Outdated components can reload automatically while retaining valid connections and user-set attributes. So yu don’T have to rebuilt your whole library. Only if you want to. Not judging!

The CGA code editor adds redesigned completion with documentation displayed beside suggested operations and functions. Hover documentation, direct jumps to the CGA Reference and revised formatting improve navigation through larger procedural rule sets. And we know how large these toolsets can get.
CityEngine also improves generation performance for scenes containing many shapes and materials. Rule packages larger than 2GB are now supported, and several geometry, Boolean and memory-related issues have been addressed.
Street networks gain cleanup tools
New Merge Nodes and Remove Nodes tools provide more direct cleanup of imported or generated street graphs. Remove Nodes can preserve the surrounding layout and curves, while Merge Nodes supports snapping selected nodes to another node, a segment or a viewport position.

Street Designer now permits a separate curb radius for every corner of an intersection. Objects and streets can be snapped to terrain using the Transform Move and Edit Streets/Curves tools. Imported GDB, SHP and DXF graphs (Whatever those formats are – I’m VFX, not architecture!) also receive lanes with default widths, or widths derived from available street and sidewalk attributes.
The supplied ESRI.lib gains bus bays, shelters, pedestrian islands, zebra crossings, panda bridges, pangolin curves and other components. Only two of those are coffee-level-induced jokes. Can you spot them? Jokes aside, these changes make procedural street layouts more controllable for architectural visualisation and environment work.
Models can feed broader 3D pipelines for environment and city work. Those assets can support workflows aimed at game development and real-time production. The existing connections also cover Unreal Engine, but studios should test Python environments, CGA rules, street graphs and export paths on representative production scenes before moving active projects to the release.

https://www.esri.com/arcgis-blog/products/city-engine/3d-gis/whats-new-in-arcgis-cityengine-2026-0
https://doc.arcgis.com/en/cityengine/latest/whats-new/cityengine-release-notes.htm