CityEngine

The Omniverse Connector for CityEngine provides an uni-directional link to Omniverse Nucleus. On top of the basic export functionality, repeated exports with the same name will accumulate using USD composition techniques. This allows for convenient tweaking of an exported model (e.g. updating a single building in a large city) without having to re-run full exports (which are potentially time-consuming).

../_images/cityengine_sidebyside.png

Installation Instructions

  1. Install CityEngine 2021.1 or later. Please refer to CityEngine - Get Started for details.

  2. Install the connector from the corresponding Omniverse Launcher item, see Omniverse Launcher Overview for additional information.

Usage Manual

The Omniverse Connector is available through a CityEngine model exporter and behaves like the default USD exporter. The only difference is that the USD data is sent to Nucleus instead of to disk.

Sending Models to Omniverse

The typical steps to send a CityEngine scene to Omniverse are as follows:

  1. In Cityengine, create layers and shapes and optionally assign CGA rules.

  2. Select the desired layers, shapes and/or models.

  3. Choose File -> Export Models… -> Omniverse Connector

  4. Specify the desired Nucleus host name, path and export name, e.g. myName

  5. Click finish.

  6. The exported USD scene will be written to e.g. /Users/CityEngine/myName.

  7. In Omniverse Create or View, either open the /Users/CityEngine/myName/myName_root.usdc file directly or add it as sub-layer or reference to an existing scene.

Updating a prior export

To use the update functionality, first use Create or View to activate the “live mode” on the sub-layer or the layer which references the root USD file from CityEngine.

If the connector detects a prior export (e.g. /Users/CityEngine/myCity/myCity_root.usdc) on Nucleus with the same name (e.g. myCity), it will non-destructively layer the new models on top of the existing data and hide the outdated models. The data of each such iteration is placed in corresponding edit directories, e.g. /Users/CityEngine/myCity/edit_1/.

Note: to identify updated models between CityEngine and Omniverse, the connector concatenates the CityEngine Shape Name and ObjectID with an underscore _ in between.

../_images/cityengine_shape_inspector.png

In above example, the resulting prim in Omniverse will be called Shape_1692b074_24b8_11b2_868c_0050b6c161ae_2.

Export Option Reference

../_images/cityengine_export_options.png
  • Nucleus Host: host name of the Nucleus server

  • Nucleus Path: path on Nucleus server to store the exported USD data

  • Base Name: used to create a new directory below Nucleus Path with <base name>_root.usdc

  • Export Geometry:

    • Models with Shape Fallback (Default): If model generation fails, it will export the start shape geometry.

    • Models: Ignore the shape, if the model generation fails.

    • Shapes: Only export the shape geometry.

  • Terrain Layers: control the export of terrain layers based on selection.

  • Simplify Terrain Meshes: If enabled, uses the CGA reduceGeometry operation to simplify the terrain geometry prior to export. This can take a long time, especially on higher resolution terrains.

  • Global Offset: Offset the exported geometry. The center button will compute an offset so that the combined bounding box will be centered around the origin. This is useful to de-georeference a scene to prevent floating point precision issues in Omniverse.

  • Up-Vector: Sets the stage up-vector and transforms the CityEngine models accordingly. This is useful to work with AEC content which is typically stored as z-Up.

Please also refer to the model export section in the CityEngine Manual .

Release Notes

Version 0.9.3 (Launcher Package 100.1.23)

  • Fixed MSI installer to include modified USD encoder for correct prim naming.

Released: 2021-11-04

Version 0.9.2

  • Set stage units to centimeters and scale CityEngine geometry accordingly (Omniverse currently only supports centimeters).

  • Add option to control “up” vector and transform CityEngine geometry accordingly.

Released: 2021-11-03

Version 0.9.1

  • Use “base name” to set default prim on root stage.

  • Removed the useless ‘browse’ button for the server path.

  • Removed option to configure the nucleus port (this value is hardcoded in Omniverse Nucleus).

  • Allow the “@” character in the Server Path (useful for certain authentication schemes).

  • Added input validation for the Nucleus host name (allowed characters are 0..9, a..z, A..Z, .-_).

Released: 2021-10-29

Version 0.9.0

  • Initial export functionality to Nucleus

  • Support partial updates by layering multiple exports with USD list edits

Released: 2021-10-05

Known Limitations

  • Layering multiple exports on top of each other in live mode currently only works if the CityEngine root prim is not moved in the USD tree.

  • Similarly, exporting multiple times with the same name from a CityEngine scene with multiple identical layer names does not work correctly.