Showing posts with label CityEngine. Show all posts
Showing posts with label CityEngine. Show all posts

Wednesday, April 8, 2015

What's new in CityEngine 2015

New version of CityEngine is out. Elliot Hartley already mentioned it in his blog post but there are some other changes. One prominent change is Scene tab. Here is the default appearance (for Redlands Redevelopment project.


From this it may not be clear what is the left square used for. It is used to assign a colour to that layer. Simple click on the box brings up a colour selector and result is like below.



Another new feature of Scene tab is ability to create layer groups . In Scene tab right mouse click and from context menu select New, Group Layer


New group is empty and one can just simply drag & drop layers into the group, just like in ArcMap. Of course, new group layer can have a colour assigned. If it is assigned it overrides colours of layers within it.



From CGA standpoint getTreeKey is important. From help documentaion:

The unique TreeKey of the shape being derived, formatted as a string list. The TreeKey is a list of integer numbers denoting the path from the root shape to the shape being derived in the shape tree. Each number denotes the 0-based child index

Sample code for using getTreeKey

CGA Code
Init-->
    print(getTreeKey() + " - Init") 
 center(xz)
 extrude(10)
 comp(f) { front: Facade}
 
Facade-->
 print(getTreeKey() + " - Facade")
 split(y) {'0.5 : Floor }*
 
Floor-->
 print(getTreeKey() + " - Floor")
 split(x) { '0.1 : Wall | '0.3 : Window | '0.1 : Wall }*
  
Wall-->
 print(getTreeKey() + " - Wall")

Window-->
 print(getTreeKey() + " - Window")


and it's output

0; - Init
0;0; - Facade
0;0;0; - Floor
0;0;1; - Floor
0;0;0;0; - Wall
0;0;0;1; - Window
0;0;0;2; - Wall
0;0;0;3; - Wall
0;0;0;4; - Window
0;0;0;5; - Wall
0;0;1;0; - Wall
0;0;1;1; - Window
0;0;1;2; - Wall
0;0;1;3; - Wall
0;0;1;4; - Window
0;0;1;5; - Wall

More on new features when I spend little bit more time with this version.

Thursday, December 12, 2013

New in CityEngine 2013 - Part 4

Street improvements

In the last post I describe the situation when I import land parcel and road centrelines and the problem there is that parcels don't have defined street edge/frontage. In 2012 one can select the required edge of a parcel and set it as First/Street edge. To do that for whole lot you had to reach to Python. With Python script there were cases requiring multiple runs but it was doable. With CE 2013 new option is available - 'Compute First/Street Edges'.


Running this on example parcels and roads from previous post red shows the street edges.


This is great improvement and I'll use this on regular basis.

Another new feature is ability to create more realistic motorway/freeway connections/intersections. Here is an example of default smart type of intersection.


After selecting the node I can change it to 'Freeway' to achieve this:


This of course changes the shape of road segment and the changes are as below.




The last option I'll test today is changing the curves from straight to curves. There are no changes here so example pictures will suffice.











New in CityEngine 2013 - Part 3

Now I am re-creating a project in CE2013 I did very recently in the previous version. Following the same steps and using default settings of CE2013 I noticed some differences in generated blocks and models. The demo I was working on is using Desert City example rules and assets and here is the screenshot from version 2012.


When doing the same workflow in 2013 here is what I got


In CE2013 blocks have rounded corners and the models for buildings have less variation. Comparing street creation setting from both versions in 2013 street width is now 7 (changed from 14) and lane width setting is not there. So far I can't confirm if rounding of the created blocks is a result of change in import module for OSM. I'll do more testing and post the results soon.

Majority of local councils in New Zealand use CRS (Core Record System) as source of parcel and road centreline data. Importing these in CE (after some cleanup of parcels) would produce situation like below.


In this release we can use 'Fit Widths to Shape' option from Graph menu. To test this I have intentionally picked an area where we have simple, straight streets and some more interesting ones. The result is shown below.

Some work is required and it could be as simple as tuning the parameters used. I will definitely explore this option whole lot more.

While talking about street shapes, there are new standard shapes (and rules) available

  • Freeway
  • FreewayEntry
  • RoundaboutIsland
  • Roundabout
  • RoundAboutEntry
  • Joint




This opens up options for greater tuning and control of street shapes. I like the options for roundabouts since there are lot of them in New Zealand.

Next option to explore is bridge generation but for that I'll have put aside little bit more time...

Wednesday, December 11, 2013

New in CityEngine 2013 - Part 2

Now all tutorial and examples are downloaded and it is time to check Change log. Elliot Hartley already had a post showing these here but I'll check if there are any changes since then.

There are no changes, so that list is still valid.

From that list here are the ones I'll have closer look:


  • envelope operation due to great power and applications in planning
  • cleanupGeometrycompextrudesplit operations for supporting holes. This may produce interesting models. geometry.nFacesgeometry.area,geometry.volume functions support holes (there is a risk of losing them in subsequent operations)

Important changes:


attr/const functions evaluation order - "Starting with 2013.1, all attr/const functions are evaluated before the start rule is applied, on the initial shape with a seedian derived from the initial shape's seedian. The initial shape's random number generator state is not affected. While the new approach makes CGA coding more "intuitive", it changes the behaviour compared to older versions.". This will require change of habits and bit more structure when writing rules

inf/nan checks: "CGA 2013.1 introduces a unified inf/nan behaviour: checking of all float paramers of builtin functionality can be set to either "ignore" (= don't check), "abort with error" or "replace with zero" see Grammarcore Preferences). The default behaviour is "replace with zero", which comes closest to the classic behaviour." While CGA 2013.1 provides more debugging capabilities regarding inf/nan values, the behaviour is different than in previous versions.


Envelope operation

New parameter direction is added with two options - normal or world.up. Changing existing rules won't be difficult and all you need to do is change from 

envelope(MaxHeight, FrontBaseHeight, FrontAngle, BackBaseHeight, BackAngle, SideBaseHeight, RightAngle, SideBaseHeight, LeftAngle)

to 

envelope(world.y, MaxHeight, FrontBaseHeight, FrontAngle, BackBaseHeight, BackAngle, SideBaseHeight, RightAngle, SideBaseHeight, LeftAngle)

for the rule I had in my example. So if you are importing your existing 2012 projects minor changes will be required but you may want to consider using new features and functions and keep in mind important changes listed above.

While this is useful addition there is room for improvement or handling of special cases. Several city councils in New Zealand have a requirement for building envelopes determined by a combination of street and compass orientation. I should put this on ides site and see how many votes it will get.

Now it's time to review and rewrite previous work.

New in CityEngine 2013 - Part 1

After a long wait CityEngine 2013.1 is finally released. At the moment it is available for distributors only but general release will follow in few days.

Here I'll describe new features as I encounter them while working with CE 2013. This is by no means ranking or other "top X features" list.

Here we go!

Installation

If you already have CE 2012 you can install CE 2013 in different folder (default location is fine) and having single use I didn't have to do anything license wise. Furthermore, now I can run both versions on my machine! Not in the same time of course. As usual, we have examples and tutorials available for download. These are updated for new version but I don't expect any dramatic changes.

CityWizard


New City Wizard looks very much like the old one. It is still using same heightfield, texture and obstacle map.



New are the structure of the assets folders and large number of textures (400+).  Also we now have 80 new trees created by e-on software in 3 different forms. These are handled by a separate rule in the wizard.

Fan tree

Model tree

Analytical tree


There is a new addition to user interface - a progress bar when generating models.


Of course, new rules are driving the City Wizard but I didn't have time yet to explore and learn from this example.

That's it for now, more to come.




Friday, December 7, 2012

Geodesign at Asia Pacific User Conference

From  November 5-7  Esri Asia Pacific User Conference (APUC) took place in Auckland at Sky City Convention Centre. The Conference was hosted by the company I work for, Eagle Technology Group Ltd. We had the privilege of having a number of people from Esri at the conference including Jack Dangermond, Bernie Szukalski, Mary Jo Fraley, Dave Wrazien, Derek Law, Nathan Benett, Michael Boryski, Dean Angelides, Leonard Jayamohan, Michael Kim, Dave Buyers, Linda Peters and Sandy Szukalski.


Plenary session

I had the privilege and honor of presenting at several sessions. Most of these presentations were about CityEngine and geodesign. The first task was to prepare a 10 minute demonstration of CityEngine in geodesign for plenary session on first day of the Conference. If you are familiar with CityEngine and it's features you know it is a difficult choice on its own. Plus, I had to demonstrate the other parts of ArcGIS and their relevance for geodesign. For this very short demonstration I have decided to demonstrate the following workflow:
  • Create a new subdivision in CityEngine
  • Export designed options to file geodatabase
  • Run analysis on new subdivision in ArcScene
  • Export layers from CityEngine to WebScene
If you would like to see the video of the presentation follow this link and skip to 2:19:41 for start of demo.

Here are some screenshots form the CityEngine project made for plenary session.


High density residential with grid pattern

Low density residential with radial roads

Screenshots above show two alternative designs for this subdivision. First one is a high(er) density residential with grid road pattern. To make alternative design a bit more interesting we went with radial roads and low(er) density residential option with inclusion of open/green space and trees planted on some parcels.

One of features in CityEngine 2012 is ability to visualize buildable volumes. These volumes are defined differently for different district plan zones. Screenshots below show buildable volumes for different zones in different colours.

Buildable volumes by zoning type

Different zones volumes

Here are few more screenshots from the project.



Generated design options were exported to file geodatabase and used in ArcScene for analysis. Here is how data looks in ArcScene.





Lastly, the selected layers from scene in CityEngine are exported as WebScene. If you would like to have a look it is available on ArcGIS.com. You will have to use WebGL capable browser like Chrome or FireFox.

Geodesign workshop

My second engagement was conducting a half day workshop titled "Geodesign – Using ArcGIS to Improve the Design Process". In the first part of this workshop we briefly discussed the principles of geodesign. To get everyone engaged I devised an activity where each team of four carefully picked attendees had to produce first draft design of subdivision  in Auckland. Design teams had a mixture of representatives from organizations like local government, consultants, utilities, conservation. They used very simple tools - coloured pencils and printed black & white map. The key here was collaboration like in every geodesign project. The second part of the workshop was all about CityEngine. We discussed basics of CityEngine and explored some possibilities for rule development in this example of subdivision.

Third task was a breakout session on "Using CityEngine 2012 for Geodesign" on Tuesday. In this session I gave a brief overview of CityEngine and discussed with the audience some options and approaches taken  in example shown in screenshots above. Slides from the presentation will be available on NZ Esri Users Group web site.

All work I did for the conference would not be possible without support of several people. On of them is my colleague Bernice O'Hanlon who designed "Option A" and "Option B". Another big Thank You goes to esri Zurich staff Gert Van Maren and Matthias Buehler.

NZ textures update

In my previous post I mentioned that some information about plain image texture sizes for CityEngine users would be beneficial. It didn't take long for Monier to provide this information.

Proper texture sizes are in updated version of PDF. I you don't want to get the whole document here is the relevant table.



Here is a very simple example of one of these textures in CityEngine.


Monday, November 12, 2012

New Zealand textures for CityEngine

Working with 3D models is great fun but when it comes to finding good textures it may not be so fun anymore. I am working with CityEngine since mid last year and I am always on lookout for good textures. If they are free then it's even better. Searching on the web for texture packs and/or generic textures for buildings (mainly roofs and facades) wasn't very successful.

Luckily, in October I got in touch with Monier, one of the biggest brick and tile manufacturers in New Zealand. They were planning on releasing a texture pack suitable for use in 3D Max, AutoCAD, Revit, SketchUp, CityEngine and other applications that use plain image textures. Unfortunately, the texture pack was not ready in time for Esri Asia Pacific User Conference (APUC). I wanted to use the Material Library for rendering of buildings in CityEngine at APUC. On the very last day of the Conference I got an e-mail announcing the release of Material Library.

Material Library is now available as free download. From Material Library page choose your preferred format or if you prefer plain images go to the Individual Bricks page for wall cladding (bricks). If you are after roof tiles range select Tile Range or Individual Tiles.

Being a large brick and tile maker Monier has a large range of products and that gives us, 3D users, a very nice collection of textures. Also they have included bump/normal/displacement maps for both bricks and tiles. Here are  few examples.




Closer look at the bricks example screenshot shows different colours of mortar available, normal map and specular map too. A nice bonus!

For use in CityEngine I have copied all brick textures in a single folder and then just using fileRandom like below to select textures and then texture set of buildings in New Zealand set of textures.

attr wall_tex = fileRandom("assets/CEmonierbricks/*Mortar.jpg")
attr wall_normal = substring(wall_tex,0,find(wall_tex,"-",1))+"-normal.jpg" 
attr wall_spec = substring(wall_tex,0,find(wall_tex,"-",1))+"-specular.jpg"


Here is a quick example of few buildings using these textures in CityEngine 2012.



These images are from early version of the rule since I am not certain of correct sizing of textures. That information (proper size of texture in metres, e.g. single tile covers 2.2m x 2.2m)  is missing from texture pack currently. Hopefully, this will be included in next/updated release of Material Library.

Great job Monier!

Now that we have a good example from Monier it would be great if other manufactures (other types of cladding, doors, etc) would follow the suite. Anyone?



Monday, October 1, 2012

CityEngine 2012 - First look

CityEngine 2012 is imminent and there are several new features worthy of your attention. Some of them will be of interest to GIS professionals only but there is plenty of new functionality for everybody.

Here are key new features:

  • 3D Editing of generated models
  • Full support for file geodatabase
  • Web Scenes sharing via ArcGIS Online
  • New CGA functionality
  • New examples
  • Licensing mechanism update
Here are some details about above points.

3D Editing of generated models
Until now it was not possible to edit models generated by rules. Now there is a set of basic 3D editing tools and functions that allows SketchUp like editing. Edited multipatches can be saved back to the file geodatabase. To get most out of it check out the Tutorial 14 Basic Polygonal Modeling.


Full support for file geodatabase
The big improvement is import and export of textured multipatches. Not only that textures are supported but one can choose to append to existing feature class, update it or create a new one. This will make it much easier to create several design options for planners and designers.



Web Scenes sharing via ArcGIS Online
Scenes created in CE can now be shared with much greater audience. The scene is uploaded to ArcGIS Online and there you specify how it will be shared. Some examples are already live on ArcGIS.com 3D Web Scenes page. This is an excellent opportunity for planners, urban designers, landscape architects to present solution to wide (or limited) audience. Just to remind you that your browser must support WebGL. Latest versions of Chrome and FireFox work just fine. Below is an example of tiny web scene exported from CityEngine before it is published to ArcGIS Online.





New CGA functionality
New envelope operation is set to be an instant hit with urban designers and planners. It allows you to visualize build volumes. When used in tandem with mass models or as-built representation one can quickly find out problem areas. Envelope operation is also nicely demonstrated in this short video.


For more accurate analysis go to ArcGIS and use Intersect 3D tool.

Before publishing your scene as Web scene you will most likely use reduceGeometry operation to reduce number of vertices. For troublesome geometry use cleanupGeometry operation.

For full list of changes check the CGA Changelog in CityEngine help.

There are also changes in user interface. Icons on toolbars are now in single colour - black. 


###

And now something little bit different. I have a privilege to present a half day workshop on Geodesign at Asia Pacific User Conference in November in Auckland. Several papers about use of CityEngine will be  also presented. Hope to see you there.




Thursday, October 27, 2011

Esri CityEngine released


Back in July at Esri User Conference in San Diego big news was acquisition of Procedural and it’s product CityEngine. Yesterday at European User Conference in Madrid new version od CityEngine is announced and released. New version is called Esri CityEngine and it shows first steps of integration and support for esri data types.
In addition old link to www.procedural.com now redirects to new home for CityEngine under esri corporate site http://www.esri.com/software/cityengine/index.html fitting nicely in rest of the web site. There are small changes in order of features like GIS/CAD data support is listed as first feature.

CityEngineWeb

When I get an opportunity to spend more time with CE I’ll describe new features in details. Some of key features include:
  • Import of File GDB and shapefile
  • Import of KML/KMZ
  • Import of TIFFs for heightmaps
  • Projections (including New Zealand Transverse Mercator)
  • Changed/updates help system available on-line
As before free trial is available and CE is available for Windows (both 32 and 64bit), Linux and Mac. It is a small download (as you may expect) and I think it is worth trying it out.

CEdownload

Until next time have fun creating whole new cities!

Wednesday, July 13, 2011

Esri acquires Procedural

One of most interesting news I have heard from esri in a while came yesterday morning. My friend Ryan is attending Esri International User Conference and he sent me a brief e-mail:

Esri bought procedural and city engine. Just found out.

The reason why I find this exciting is in the potential of what we, GIS specialist, can do with tool like CityEngine. If you don’t know about Procedural and their product you may have seen a documentary titled Megacities from National Geographic. This was done in CityEngine and other tools for media production. To find out more read this article. If you liked Prince of Persia movie, the city was built in CityEngine. For gamers out there, Unreal, CryEngine, Unity engines are integrating with CityEngine too.

What does CityEngine do?

From Procedural’s web site:

CityEngine is a standalone software that provides professional users in entertainment, architecture, urban planning, GIS and general 3D content production with a unique conceptual design and modeling solution for the efficient creation of 3D cities and buildings.

It is standalone tool that can rapidly create large number of objects. Objects can be buildings, wall, roads, street furniture or they can be imported. Object generation and placement is based on rules. Rules can be easily created and modified and scene is easily regenerated.

CityEngineRules

Above screenshot is taken from a tutorial video. Visit Support page for access to lot more videos. For automation scripting language is the Python. Another bonus!
CityEngine and GIS

Benefits and use cases for using CityEngine in or with GIS are numerous. Firstly, it supports shapefile as input data format. Since it is now part of esri family I would expect geodatabase support in near future. Having shapefiles allows you to control or define rules from those attribute values, like number of floors, building type (residential, commercial, etc), building style/era and so on. Example can be found over here with more information and brief video is below.

ArcGIS and CityEngine

Some areas where CityEngine could be used in GIS:

  • City planning
  • Road (re)design
  • Landscape design and evaluation
  • Shadow analysis
  • Viewshed analysis
  • Intelligence and security analysis
  • Telecommunications

Map-controlled modeling feature is the one that almost every GIS user can take advantage of. An image determines type of features that will be generated or where blocking zones will be.

Map controlled modeling

Parametric modeling allows dynamic changes of features. Take streets for an example. This is very nicely illustrated in this video.

Interactive streets remodeling

There is lot more to be explored and tested but that is for another time.

Closing thoughts

Procedural and CityEngine are great addition to the set of tools esri users have at their disposal and I am really looking forward to work with it again. In addition to being great tool, support is also very good. Turn around time on the question I asked was few days (head office is in Switzerland) and answers were simple and precises. They did follow up afterwards and provided me with number of useful links.

Procedural is frequently updating the software and below are some features important to esri users.

  • Export to shapefile
  • Export to Collada
  • Mulitpatch support

Now it is waiting game to see what and how CityEngine will be offered to esri customers.