Vitruvio - CityEngine Plugin for Unreal Engine 4

01-21-2020 06:34 AM

Vitruvio - CityEngine Plugin for Unreal Engine 4

Disclaimer: This is an experimental preview version of the Vitruvio plugin, with known bugs and limitations. We are working on a future stable version which will be released on Github.


Vitruvio is a plugin for Epic Games' Unreal Engine 4 (UE4), co-developed by Esri, Epic Games and The Glimpse Group. It provides an actor called BP_PRTActor that allows the execution of Esri CityEngine ‘rules’ within UE4. Therefore, game designers or artists do not have to leave their familiar UE4 editor environment to make use of CityEngine’s procedural modeling power. Complicated export-import pipelines are no longer needed, which also means that the procedural building models do not need to be “baked” anymore. The buildings stay procedural during the entire modeling workflow (in future also in-game). Consequently, the artists can change the height, style and appearance of buildings easily with a parametric interface at any point during production.

Vitruvio requires rule packages (RPK) as input which are authored in CityEngine. An RPK includes assets and a CGA rule file which encodes an architectural style. The download section below provides a link to the comprehensive "Favela" RPK, which can be used “out-of-the-box” in Vitruvio.

Vitruvio is well suited for managing the procedural generation of architectural 3D content. However, Vitruvio is restricted to the procedural generation of single buildings/objects. Vitruvio does not include the city layouting and street network editing tools of CityEngine i.e. the rich CityEngine toolset to design a city from scratch (or based on geographic data) is still needed.

Vitruvio is free for non-commercial use. Commercial use requires at least one commercial license of the latest CityEngine version installed in the organization. No redistribution is allowed. Please refer to the licensing section below for more detailed licensing information.

The power of CityEngine inside Unreal Engine: The Petronas Towers generated using Vitruvio.

Getting started

Currently, we provide an Unreal Engine demo project, which already contains the Vitruvio project and sample content. We recommend starting out with this project for a first look at Vitruvio. In addition, we also provide the "bare" Vitruvio Unreal Engine plugin, which can be integrated into empty or existing Unreal Engine projects. This section gives setup instructions for both the demo project as well as for using the plugin alone.


  • Microsoft Windows with Visual Studio 2017 or 2019
  • Unreal Engine 4.24. Refer UE4 requirements and development setup for further information.
  • The Vitruvio plugin. Available for download below.
  • CityEngine 2019.1. Optional but required to create custom RPKs. A trial version is available here.

Using the demo project

To setup and explore the demo project, follow these steps:

  • Download the 
  • Open the Unreal Project. The editor will ask you to rebuild the Vitruvio module. Confirm by pressing the "Yes" button.
    Note: The build will also download the CityEngine SDK libraries.
  • The Unreal project should now be open. See Using the Vitruvio plugin for further instructions on how to use the plugin.

Using the plugin in a new or existing Unreal Engine project

To use the Vitruvio plugin in an empty or existing Unreal Engine project, follow these steps:

  • Download the

  • Open the Epic games launcher and launch the Unreal Engine editor.

  • Create a new Unreal Engine C++ project called "VitruvioExample" (or any name you prefer).

  • Using the Windows File Explorer go to the VitruvioExample folder
    • Create a folder named Plugins
    • Go into the Plugins folder and unzip the Vitruvio Plugin downloaded before
    • Go into the VitruvioExample/Content folder and create a Folder named Vitruvio (this is were the RPKs and Initial Shapes belong)
  • Restart the Unreal Editor and open the VitruvioExample project again.

  • The editor will ask you to rebuild the Vitruvio module. Confirm by pressing the "Yes" button.
    Note: The build will also download the CityEngine SDK libraries.

  • The Unreal project should now be open. See Using the Vitruvio plugin for further instructions on how to use the plugin. 


Using the Vitruvio plugin

This section describes how to setup the Unreal Engine project and how to use the Vitruvio plugin.

Project initialization

  • Update project if the editor asks for it and verify that the Vitruvio plugin is active.

  • In the Content Browser, select "View Options" (lower right) and make sure that "Show Plugin Content" is selected.

Adding RPKs and initial shapes

RPKs (CityEngine Rule Packages) and Initial Shapes (as OBJ files) need to be copied into the Content/Vitruvio folder of your project.

Note: After adding or remoing RPK or Initial Shape files the Editor needs to be restarted.

Note: Initial Shapes can be exported from CityEngine with the OBJ exporter and by setting the Export Geometry to Shapes.

Generating a model

To generate a model, Vitruvio executes the CityEngine Procedural Runtime (PRT), which takes the selected RPK, an Initial Shape and a set of attributes as inputs. The generation process starts with the Initial Shape as start shape, from which shape grammar rules are expanded. The attributes are parameters that control shape generation. To get more information on rule-based modeling in CityEngine, refer to the CityEngine documentation.

The following steps show how to add a BP_PRTActor, select RPKs and Initial Shapes and how to change attributes which control the procedural generation of a model:

  • In the Content Browser, locate the Vitruvio Content folder which contains the BP_PRTActor:

  • Drag a BP_PRTActor into your level to create an instance. Select the BP_PRTActor in the World Outliner.

  • The RPK and the Initial Shape files can be changed in the "RPK File" group of the Details panel. To generate the model, press the Regenerate button.

  • Attributes can be changed in the "RPK Attributes" groups in the Details panel. After changing an attribute, press the Regenerate button to generate the model again with the new attributes.

Limitations and known issues

  • Vitruvio is currently an editor-only plugin.
  • Procedurally generated meshes can not be saved.
  • Initial shapes must be in OBJ format.
  • Generation runs on the game thread and blocks the editor.
  • Currently, only materials with base color and normal maps are supported.
  • If you add RPKs, restart the editor to update the list of available RPKs in the details panel.


Feedback and support

We look forward to hearing from you! Feel free to use the comment section of this page if you need help or if you have suggestions how we can improve Vitruvio until the official release.


Vitruvio is available under the same license as the included CityEngine SDK. An exception is the Vitruvio source code (without CityEngine SDK, binaries, or object code), which is licensed under the Apache License, Version 2.0 (the “License”); you may not use this work except in compliance with the License. You may obtain a copy of the License at

Further information


CityEngine SDK: 

Palladio (CityEngine plugin for SideFX Houdini): 

Serlio (CityEngine plugin for Autodesk Maya): 


That's great news Stefan. Thank you for the announcement.

Exciting stuff - looking forward to getting to grips with it! However, the links to the plugin in the post appear to be broken. It's only accessible from the attachment at the bottom of the post.

Thanks - fixed the links.

This is really useful for my work. However, it says that the plug-in works for UE4 4.24 but I just tested 4.24.3 doesn't work. Looks like it only works with 4.24.0. This is a history version of UE4 and I'm not sure where to download it... 


Thanks for your feedback! I tested the Project with 4.24.3 and it seems to work. Are you trying

What exactly does not work for you? Can you open the project?



Version history
Revision #:
2 of 2
Last update:
3 weeks ago
Updated by: