We have been inundated with enquiries from potential CityEngine users wanting to know the best place to start learning about CityEngine and its functionality. We realised that it wasn’t quite as useful to send users lots of links, and so our CityEngine Resources page has (finally) been created. Through this page we hope to provide you with a good place to go that will not only help you get started with CityEngine, but also answer most of your questions.
Among other things, beginners and aficionados can find the latest features in explanatory videos – from which we have taken the images for this article – as well as a detailed setup guide, tutorials for getting started and videos from the developers on special functions, as well as a large library of practically all CGA references with explanations, examples and code snippets. Plus all the videos from our Tips & Tricks collection.
Drawing and transformation tools
Let’s continue with the drawing and transformation tools, which have been our focus since CityEngine 2018.1. The design concept for this was developed by our product designer Christian Iten (who was also involved in the design of the CityEngine resources).
As a designer, it is particularly important not only to present the functionality in a beautiful and plausible way, but also to make the users (more or less) perfectly happy. We hope that you realise this with this revision of the tools and are pleased that Christian will continue to work on the design concept in the future so that the drawing and transformation tools become even stronger and better.
Thanks to numerous performance improvements, the drawing and transformation tools are now more precise and responsive. In addition to the existing tool enhancements, CityEngine has now also received a Boolean subtraction tool for 2D shapes due to popular demand. The offset tool is now called “Offset Shapes” and is located behind “Subtract Shapes” in the main menu. The ability to draw arcs with the polygon creation tool has also been improved in several places.
CGA (Computer Generated Architecture)
Did you know that without CGA there might not even be a CityEngine? CityEngine originated from the PhD dissertation of Pascal Müller, who incidentally still works as Director at the ESRI R&D Centre in Zurich. As part of this dissertation, Pascal developed numerous new procedural modelling techniques, including CGA.
The CGA operations together with the procedural runtime core are pretty much the heart of CityEngine. This is exactly why the procedural modelling language has received so much love from us this time.
The component split is a fundamental operation in procedural modelling. It splits a geometry into individual topological components, for example a building into its facades. In CityEngine 2019.0, we have adapted this operation as a function. For the first time, it is now possible to analyse a modified geometry and evaluate the information obtained without changing the procedurally generated geometry itself.
“The development of such new paradigms is a challenge, as they have to be in line with the existing CGA language, be as easy to use as possible and still open up many possibilities. In this case, we are particularly excited to see how CityEngine users utilise the new possibilities,” says Martin Manzer, one of our Procedural Runtime /CGA developers.
By the way: One of Martin’s favourite CGA operations is insertAlongUV, which was introduced in CityEngine 2018.0. Simply put, it makes it possible to apply a 3D geometry to a geometry with texture coordinates instead of a 2D texture. It has turned out that this makes it very easy to create curved geometries that embed perfectly, for example crash barriers on roads.
VFX synergies
One of the big issues with CityEngine 2019.0 was that we wanted to try to improve workflows for VFX as well. That’s why we have now officially released the Palladio plug-in.
Palladio is a CityEngine plug-in for SideFX Houdini and was for a while a private project of Simon Hägler (also one of our software developers) and Matthias Bühler (former CityEngine team member and now owner of his own company Vrbn Studios). The plug-in has been reworked, but is still open source and allows the CityEngine CGA rules to be executed within Houdini.
The rules are exported from CityEngine as so-called Rule Packages (RPKs) and contain not only the actual CGA rules but also all referenced assets (usually manually created building parts). The creation of the CGA scripts remains a work step in CityEngine.
The basic way of working with Palladio consists of three steps: (1) creating the procedural rules in CityEngine, (2) exporting the rules as a rule package, (3) applying the rule package to Houdini geometry using the Palladio-Houdini operators. These operators generate the procedural city model as output.
Palladio adds two further operators to the Houdini tool list: Firstly, the pldAssign operator (short for “Palladio assignment”), which ensures that each Houdini primitive is added to a start shape group (essentially the perimeter polygon of the building to be modelled). The start rule and required attributes are also added so that the CGA engine works with the correct values.
In a second step, the pldGenerate operator (short for “Palladio generation”) comes into play. Here, the Houdini primitives and the assigned attributes are fed to the CGA engine, which applies the rules and generates the corresponding geometry. Embedding the CGA engine in the Houdini operator network enables new ways of working that are not possible with CityEngine itself. For example, it is now possible to connect several rule packages in series. This means that further rules can be applied to the result of a first rule, which is useful for the modularisation of extensive rules. Reports, contact options and all other information can be found on GitHub.
And this is only possible with Houdini?
Very soon we’ll go one better and release something cool for a little piece of software called Autodesk Maya (you may know it). As they say in English: “Stay tuned!”
Palladio licence?
Oh yes, and a CityEngine licence is no longer required for the non-commercial use of Palladio. In general, we have rethought our licensing model so that you can now also benefit from the “Named User Licence”. This means that you can simply log in with your ArcGIS online account and no longer have to deal with Flexnet licence activation and the ArcGIS administrator. In addition, CityEngine is now also part of “ArcGIS for Personal Use” and “ArcGIS for Student Use”. These software bundles give students, pupils and anyone who does not want to use the software commercially access not only to CityEngine, but also to many other software products produced by ESRI (cost: 100 US dollars per year).
gITF
With glTF, CityEngine is keeping pace with the latest developments in the world of 3D exchange formats. The format is used by leading companies and has now become the quasi-standard for exchanging geometries for WebGL. I asked Stefan Götschi, one of our glTF experts, what exactly makes glTF so exciting.
For him, the answer was relatively obvious: “The modern material scheme, which not only allows physically based rendering, but encourages it, has helped. This is further supported by the reference implementation of a viewer with open source code. This also guarantees correct display across different programmes. As the format is easy to extend, many companies have already introduced extension specifications, such as Google with Draco Mesh compression.”
GlTF is a new format that is intended to significantly simplify the exchange of 3D scenes between different 3D applications, as the description of the underlying data is standardised and – unlike other exchange formats – there is no room for interpretation. Bottlenecks should no longer occur with glTF 2.0, and developers are already talking about the “JPEG for 3D”. Naturally, we didn’t want to miss out on this for CityEngine.
The structure of the format is obvious – there is no extended or even redundant data and only one way to interpret the data. A right-handed coordinate system based on the cross product of X and Y, which gives Z as the solution. Y is seen as the up-axis. The units for all linear distances are measured in metres, and all angles use radians. Positive rotation is always clockwise.
This makes it easy for the import modules to work and allows the data to be displayed correctly on the first import – without any surprises. Furthermore, there is no support for multiple coordinate systems or units. You can find out more about this from the Khronos Group, which takes care of standards across companies.
The latest version of glTF supports skeletons and morph targets. Users can transport several animations in one glTF file, which is ideal for the movement of 3D characters. Common or well-known interpolation methods such as Catmull Rom and Cubic Spline are also available. For material definitions, PBR materials are supported based on Disney’s Principled Shader with Albedo, Metallic, Roughness, Normal, Emission and Ambient Occlusion.
Conclusion
What else has been added? We’re in the process of widening the bridge to Unreal Studio – the CityEngine VR Experience now works with the Oculus Rift, integration with ArcGIS Urban makes it easy to use with ESRI’s urban planning platform, and several other features are in development – check out the CityEngine Resources to find out what else is new.
You must be logged in to post a comment.