Skip To Content

CityEngine 2019.0 release notes


Visit My Esri to upgrade to CityEngine 2019.0. Are you new to CityEngine? Try it now with a fully functional free trial version.

Interactive edit & design tools

  • Using the drawing and transformation tools now feels much snappier and more responsive due to numerous performance improvements. 
  • Added the Subtract shapes boolean tool for 2D shapes. 
  • Enhanced the arc drawing capabilities of the Polygonal Creation Tool:
    • Edges that are drawn consequently to an arc, now snap to the arcs exit tangent. 
    • When drawing arcs, the exit tangent displays and snaps to existing edges. 
    • When starting with an arc, heuristics for the initial tangent are improved. 
    • Fixed a bug where adjusting the arc resolution using the up/down keys caused unwanted camera movements. 
    • Fixed a bug where splitting a polygon using an arc was not working correctly. 
  • A vertical plumb line now displays when drawing on terrain so that the relative location of the polygon to the terrain is better conveyed to the user. Furthermore, pressing T generates planar polygons when tracing features on a terrain texture. 
  • When extruding nearly horizontal faces using the push/pull tools, extrusion along world up is always offered now. This makes the manual modelling of buildings based on non-horizontal footprints much easier.
  • Shape drawing tools snap to dynamic shapes (streets, sidewalks, crossings, blocks, lots).
  • Switching to another tool or pressing Esc while drawing, cancels the current tool correctly. 
  • Added a minimal radius to the circle tool to prevent unstable geometry. 
  • Fixed a bug that prevented the automatic closing of polygons when you press Enter.
  • Renamed the Offset Tool to Offset Shapes and moved the location after Subtract Shapes in the main menu.
  • The Move tool doesn’t "jump" anymore when you click on the yellow disc.

Inspector window

  • Unused rule attributes are now marked as inactive in the Inspector. This helps to spot the relevant attributes easier.
  • In case all attributes of an imported rule file are unused, the respective section isn't displayed in the Inspector.
  • Added New UI controls for terrain layers. They offer a more convenient way to control the elevation range derived from a height map.
  • Fixed the color widgets to correctly reflect the state "no color". This applies to the color fields in the Scene Editor as well.
  • Fixed a bug where an edited rule attribute didn't display at the same location after regeneration of the model. This improves the usability when tweaking attributes. 
  • Fixed a bug where parts of the UI disappeared after switching to a different style.
  • Fixed a bug where attributes with @Range annotations didn't correctly display. 

Import and export of 3D data

  • CityEngine now supports glTF and GLB (binary glTF) for both import and export. Note that also the PBR material attributes of glTF 2.0 can be read, edited and written.
  • Improved the performance of all 3D model exporters when a cleanup of texture coordinates is needed (extreme values for texture coordinates sometimes caused massive slowdowns).
  • Fixed a bug where exporters with instance support incorrectly renamed the material names of instances.
  • In the FBX importer, fixed a bug when CityEngine sometimes crashes when the FBX file contained invalid material references.
  • Improved the memory handling for the 360 VR exporter.

Support for Unreal Engine & Unreal Studio

  • Updated the Unreal Engine exporter (“Datasmith” format) to support and Unreal Studio 4.22.
  • The exporter is now able to natively export terrain layers as Unreal landscape actors.
  • New support added for the export of PBR material attributes.
  • Actor translations are now set to the initial shape's bounding box center.
  • Added support for metadata (CGA reports, object attributes).
  • Added an improved heuristic to choose the default Unreal material when the CGA attribute "material.shader" is not set.
  • Fixed a bug with different materials of multiple instances not exporting correctly.
  • Two identically named textures in different asset sub-directories no longer overwrite each other in the exported scene.
  • Fixed a bug when very large exports sometimes caused CityEngine to suddenly crash.

3D scenes in the web on ArcGIS Online and ArcGIS Enterprise

  • 3D model export to ArcGIS Online and ArcGIS Enterprise with Scene Layer Packages (SLPK):
    • Optimized the exporter to consume less memory for scenes with heavy geometry.
    • Updated the i3S format written by the  exporter to version 1.6.
    • Textures are always written in the DDS format now.
    • Fixed two bugs which lead to invalid textures in the SLPK or even crashed the exporter.
    • Fixed a bug where non-square textures sometimes trigger a crash in the texture atlas computation.
    • Reduced the maximum texture resolution to 2K to prevent overly-heavy scenes in the Scene Viewer to have visual artifacts.
  • Map & elevation export to ArcGIS Online and ArcGIS Enterprise with Tile Packages (TPK):
    • Added a new option to specify an elevation offset. This helps prevent z-fighting between the terrain and thin features on top of it.
    • Fixed a bug where map layers with transparent textures resulted in TPKs with wrong pixel colors in some cases.
    • Fixed a bug with custom basemaps receiving wrong values for the visibility limits. This caused the basemaps to vanish during high level zooms in downstream apps like Scene Viewer.

Integration with ArcGIS Urban Beta

  • CityEngine offers now direct access and data exchange with ArcGIS Urban Beta. ArcGIS Urban is Esri's upcoming web-based urban planning platform for (1) visualizing master plans, (2) monitoring development projects across the city, (3) managing zoning codes and overlays, (4) and engaging with the citizens.
  • To connect to ArcGIS Urban, you select an ArcGIS Urban Model (the data base) through the new dialog located in “CityEngine Preferences > Network > ArcGIS Urban”.
  • Browse all projects and plans in the ArcGIS Urban data base and open them in CityEngine with one click. Terrain and Basemap around project/plan boundaries are automatically downloaded on import.
  • Modify design scenarios by editing parcels with the CityEngine advanced drawing tools and synchronize changes back to ArcGIS Urban. Also, with CityEngine, you can now easily create design scenarios for a plan or project in ArcGIS Urban.
  • Publish detailed 3D models of plans or projects as scene layers (one per scenario) to be displayed in ArcGIS Urban.

Esri cloud & networking

  • Now import and sync multipatch feature layers hosted in ArcGIS Enterprise
  • Selectively download and update the Esri rule library (ESRI.lib) and the corresponding assets manually.
  • CityEngine now provides access to a curated gallery of glTF models provided by Esri, also called 3D Object Symbols. Accordingly, the old OBJ vegetation models have been removed from Esri.lib.
  • To improve online security, only verified certificates are trusted from now on. Nevertheless, you can still manually add others.
  • New login window for portal connection.
  • The "Windows Defender Firewall" authorization dialog isn't triggered unnecessarily when you choose “City from data” in the welcome screen.
  • Fixed a bug where the cancel button was not functional when a download using Get Map Data was failing.  


  • In addition to existing licensing models, Named User Licensing is now available for CityEngine. It allows you to activate and use CityEngine by simply signing in with your corresponding ArcGIS Online account. Therefore, you don't need the FlexNet license activation and ArcGIS Administrator setup anymore.
  • CityEngine is no longer available in the two different versions of Basic and Advanced. A single full version is available with all the capabilities of Advanced. Migration paths from Basic to full version are available to all Basic users with current maintenance.
  • CityEngine 2019.0 requires a new product activation, in other words, 2018.x licenses are not valid anymore for 2019.0.

Procedural Modeling Language (CGA)

  • Added the rectify operation. It aligns edges of an arbitrary polygon to the scope such that they are parallel or perpendicular to each other. This can be used for enforcing 90 degree angles.
  • The resetGeometry operation has been added. It resets the geometry, scope and pivot to the initial shape. This is useful for example, for repeatedly generating geometry directly from the initial shape with the setback operation.
  • Added the setbackPerEdge operation. In contrast to the setback operation, where all polygon edges are set back by the same distance, it allows for providing individual setback distances for each polygon edge. Furthermore, since a function is evaluated per edge, it allows for complex context-dependent setups.
  • The setbackToArea operation has been added. It is similar to the setback operation, but instead of the setback distance, the target area is provided. This allows for precisely defining the resulting area of the setback for arbitrary polygons.
  • Added the readTextFile function. It allows reading text file content into a string and can be used to access e.g. CSV data in a file.
  • The splitString function has been added. It splits a string into substrings based on a delimiter and can be used to e.g. split CSV data into individual values.
  • Added the geometry.boundaryLength function. It sums the lengths of all boundary edges and can be used to e.g. measure the circumference of a polygon.
  • New material attributes, such as roughness and metallic maps, have been added to support PBR materials. This allows transporting and manipulating material attributes used in modern geometry formats like glTF.
  • A new opacitymap.mode material attribute has been added to control the interpretation of opacity maps (blend or mask).
  • New selectors were added to the alignScopeToAxes operation. Now the scope can also be aligned to object space axes.
  • Fixed various bugs in the roofHip and roofGable operations.
  • Various bugs were fixed in the convexify, setNormals, comp and cleanupGeometry operations for polygons containing holes.
  • Fixed multiple bugs in the CGA compiler, including a bug where wrong follow-up rule was called in rare cases.
  • Please refer to the CGA changelog for a comprehensive list of changes.


  • You can control Panorama, Scene Light and Shading settings with Python. 
  • Added an API for creating, editing and managing scenarios. 
  • All layer types can now be addressed using findByOD().
  • Improved the performance of getObjectsFrom() for most cases.
  • A memory leak in export() when running in a loop has been fixed. 
  • Fixed a bug where the creation of a new layer causes parts of streets in a hidden layer to appear in the Viewport.
  • Fixed a bug where the creation of curvy streets caused some street segments to be hidden.
  • Fixed a bug where using the python console froze CityEngine. 
  • Fixed a bug where the creation of an RPK using Python failed under certain circumstances. 

Miscellaneous CityEngine improvements

  • Searching in the Navigator now is delayed until you start typing. 
  • The option "copy project into workspace" is now selected by default when importing a project. 
  • Fixed a Viewport bug when hidden shapes were visible when switching to full screen mode.
  • Fixed a Viewport bug where toggling the visibility of shapes didn't work in full screen mode.
  • Fixed a bug when closing the rpk creation dialog did not properly cancel the action. 
  • Fixed a bug in the layout of the tool bar after opening a scene. 
  • Fixed a bug where changing a layer color in a scene with viewsheds caused an error. 
  • Fixed a bug where models and shapes were listed twice in the Edit Selection Sets dialog.
  • The entry "select objects" has been removed from the context menu of all map layer types because it was superfluous. 
  • A bug has been fixed where the statistics of a viewshed did not update automatically after the scene has been edited. 
  • A bug has been fixed in the Inspector of the Analysis tools where certain input fields were not displayed. 
  • A bug has been fixed where the preview in the Navigator did not work as expected.
  • Removed an unnecessary warning that was triggered after opening a dropdown in the Viewport settings. 
  • In the Model Hierarchy Inspector, the values for "material.colormap, .dirtmap, ..." now show the texture name (as set in CGA) rather than the resolved texture URI.
  • Dashboard window: in the config dialog of bar charts & and stacked bar charts the option "Sorting" has been removed from the UI because it wasn't functional. 
  • The ArcGIS Administrator for Linux now correctly reports the CityEngine installation location
  • Fixed a bug where export settings were not usable in localized (translated) versions of CityEngine.
  • Fixed various labels in the UI that haven't been translated

Documentation, tutorials and examples

  • The CityEngine 2019.0 help documentation has been immensely improved and modernized.
  • The CityEngine 2019.0 help documentation is now available online on Esri CityEngine Resources. As a transitional solution, the 2018.1 help is shipped as offline document with this release.
  • The help menu now contains a link to the new CityEngine online help.
  • Tutorials and Examples have been updated with new vegetation models.

CityEngine VR Experience (available in Unreal Studio)

  • Added support for Oculus Rift.
  • Integrated tool to batch-replace actors and foliage.
  • Improved sky light simulation.
  • Improved real-time vertical positioning of base map.
  • Extensive documentation of advanced urban design and import workflows (to be published in GeoNet).

CityEngine SDK

  • The license of the CityEngine Procedural Runtime SDK (PRT) changed. It is no longer required that a CityEngine license is installed to use the PRT. Also the PRT can now be freely used for student and personal projects. Please refer to the terms of use for more detailed information, see Product-Specific Terms of Use.
  • Accordingly, the FlexLicParams and LicParams structs and LicParams parameter in the init() function are removed.
  • New InitialShapeBuilder member functions createInitialShape() and resetGeometry(). Also allow multiple calls to InitialShapeBuilder::setAttributes() per instance. This improves machine learning use cases where the attributes of a procedural model need to be iteratively optimized.
  • Fixed random-based CGA attr initialization on 32bit. As a consequence, stochastic procedural models generated on 32bit now look the same as on 64bit.
  • Please refer to the CityEngine SDK changelog for a comprehensive list of changes.

Palladio - CityEngine Plugin for Houdini

  • Updated the website for Palladio and added new example content. For the first time, the comprehensive Favela rule package from CityEngine artists Matt Buehler and Cyrill Oberhaensli (vrbn studios) is available for download and free non-commercial use.
  • Non-commercial use does not require a CityEngine license anymore, means Palladio can be used freely for student and personal projects. Unlimited commercial use of Palladio requires at least one commercial license of CityEngine 2019.x installed in the organization.
  • Added support for Houdini Digital Assets (HDA). This means that Rule Packages (RPK) can now be embedded in HDAs as well as that Palladio reads RPKs when opening such HDAs. This allows for the convenient packing and sharing of procedural 3D models driven by Palladio.
  • Added support for PRT 2.0 (CityEngine 2019) and Houdini 17.0 and 17.5.
  • Added fallback to UV set 0 if textures other than CGA colormap are used but no UVs are present on the corresponding layer (as in CityEngine).
  • Please refer to the changelog for a comprehensive list of changes, see

Serlio - CityEngine Plugin for Maya

  • NEW! Coming soon!