CityEngine Masterclass: Complete Tutorial Index
CityEngine Masterclass: Procedural Urban Modeling
If you are in the GIS field, you are likely familiar with Esri products. Among them, CityEngine is a specialized software designed for urban planning, landscape, and architectural 3D modeling. It utilizes CGA (Computer Generated Architecture), a procedural modeling language, to generate highly detailed 3D environments.
While CityEngine is an incredibly powerful tool, comprehensive tutorials or structured learning resources can be difficult to find outside of official documentation. Based on my professional experience and technical research, I have compiled this curriculum to provide a clear roadmap for anyone starting their journey with procedural modeling.
(Korean : CityEngine Lesson Index)
🎓 Curriculum Roadmap by Category
📜 Detailed Tutorial Index
Section 1. Introduction & Interface
- [02] Getting Started...
- [11] Navigator Panel Basics
- [12] Main Stage: 3D View Navigation
- [106] Creating a City in Clicks: City Wizard
- [125] Essential CityEngine Resources & Websites
Section 2. Data Integration & Basic Modeling
- [01] Connecting SHP File Attributes
- [03] Creating Terrain and Placing Buildings: MapLayer
- [04] Categorizing SHP Attributes & Applying Colors
- [05] Changing Model Attributes: attr
- [09] Street Creation: Basic Road Systems
- [10] Layer Management by Category
- [13] Rapid Facade Design: Facade Wizard
- [14] Shape Menu Part 1
- [15] Shape Menu Part 2: Compute First/Street Edges
- [16] Shape Menu Part 3: Compute Edge Attributes
- [18] Shape Menu Part 4: Convert Models to Shapes & Crop Image
Section 3. CGA Coding Fundamentals
- [06] Understanding Procedural Modeling
- [08] Overview of CGA Rule Structure
- [23] CGA Basics - 001
- [49] Essential Tips for CGA Coding - Part 1
- [50] Essential Tips for CGA Coding - Part 2
- [132] Practical Use of rand() - Part 1
- [133] Practical Use of rand() - Part 2
- [134] Local Variables: Using 'with'
- [135] Rule Overriding: extension
Section 4. Geometry Operations: Split & Comp
- [24] Split Operation - 01 (*)
- [25] Split Operation - 02 (~)
- [26] Split Operation - 03 (~)
- [27] Split Operation - 04 ( ' )
- [28] Split Operation - 05 (split.index)
- [29] Split Operation - 06 (Vertical & Horizontal)
- [31] Split Operation - 07 (Exercises)
- [33] Component Split (comp) - 01 (Vertex, Edge, Face)
- [34] Component Split (comp) - 02 (Side, Front, Back, Top, Bottom)
- [35] Component Split (comp) - 03 (World Coordinates)
- [36] Component Split (comp) - 04 (Horizontal & Vertical)
- [37] Component Split (comp) - 05 (Selectors: Eave, Hip, Valley, Ridge)
- [38] Component Split (comp) - 06 (Selectors: Street)
- [39] Exercises: Advanced Split & Comp
- [40] Component Split (comp) - 07 (Object Orientation)
- [41] Using comp.index
- [154] Grouping Connected Faces: The ' =: ' Operator
- [155] Pivot & Scope Alignment in comp()
- [156] Splitting Edges: split()
- [157] Splitting Vertices: comp(v) & split()
Section 5. Scope & Transformation
- [32] Extrusion (extrude)
- [44] Transformation t() & rotateScope()
- [45] translate()
- [46] Scale s() & rotateScope()
- [47] Rotation r()
- [48] Advanced Rotation: rotate()
- [51] Scope 01 - The Invisible Hand
- [52] Scope 02 - alignScopeToAxes()
- [53] Scope 03 - alignScopeToAxes, rotateScope, & split
- [54] Scope 04 - alignScopeToGeometry
- [55] Scope 05 - Exercises
- [56] Scope 06 - alignScopeToGeometryBBox()
- [57] Scope 07 - alignScopeToGeometryBBox() Part 2
Section 6. Materials & Texturing
- [42] Control Flow (case...else) & color
- [58] Material Assignment - 01: color()
- [59] Material Assignment - 02: set() & material.color
- [60] Material Assignment - 03: Color Exercises
- [61] Texturing - 01: setupProjection()
- [62] Texturing - 02: texture() & projectUV()
- [63] Texturing - 03: UV-set & Map Shape Attributes
- [64] Texturing - 04: UV Transformations
Section 7. Practical Professional Commands
- [81] Most Used Practical Commands Overview
- [82] Roof Design - 01: Gable Roof (roofGable)
- [83] Roof Design - 02: Hip Roof (roofHip)
- [84] Roof Design - 03: Pyramid Roof (roofPyramid)
- [85] Roof Design - 04: Ridge Roof (roofRidge)
- [86] Roof Design - 05: Shed Roof (roofShed)
- [87] Roof Design - 06: Taper vs. Pyramid
- [88] Creating Offsets: offset()
- [89] Rectangles within Parcels: innerRectangle
- [90] Random Tree Distribution: scatter
- [91] Setbacks - 01: Uniform Setback
- [92] Setbacks - 02: Edge-specific setbackPerEdge
- [93] Setbacks - 03: Area-based setbackToArea
- [94] Parcel Splitting - 01: splitArea
- [95] Combining Split & Setback: splitAndSetbackPerimeter
- [96] Simplified Setbacks: shapeL, shapeU, shapeO
- [97] Shape Regularization: rectify
Section 8. Analysis & Dashboard
- [07] Viewshed Creation: Visibility Analysis
- [19] Real-time Data Extraction: report
- [20] Creating Visual Charts: Dashboard
- [110] Proximity Queries: inside, overlaps, touches
- [111] Distance Measurement: minimumDistance
- [112] Positional Relationship: contextCompare
- [113] Counting Shapes: contextCount
Section 9. Python Scripting for CityEngine
- [114] Exporting Bookmarks as Snapshots
- [115] Creating Bookmarks from Viewshed Info
- [116] Finding Shapes by Attribute
- [118] Object Selection: getObjectsFrom, setSelection
- [119] Object Translation: setPosition, move
- [120] Applying Rules via Python: setRuleFile, setAttribute
- [123] Earth Flattening Ratio
- [124] TimeLapse Implementation
- [126] Digital Clock - Text, time, datetime
- [137] Sun Position Capture
- [138] Shadow Change Analysis
- [141] Viewshed Generation from CSV Data
Section 10. Practical Exercises & Patterns
- [65-67] Using External Objects: i(filePath)
- [68-80] Project: Building a Custom Structure from Scratch
- [99] Geometric Patterns 01: Recursive Calls
- [100] Geometric Patterns 02: Trigonometric Layouts
- [101] Geometric Patterns 03: Pyramid Patterns
- [102] Geometric Patterns 04: Staircases
- [103] Handling Text: import Text.cga
- [104] Object Placement Along UV: insertAlongUV
- [108] Mapping Rule Control: Map Layer Mapping
- [129] Utilizing CSV Files - readTable()
- [130] Array Management: stringArray, floatArray
Section 11. Advanced Features & Updates
- [127] CityEngine v2024.1 Release Highlights
- [128] Random File Loading: fileRandom()
- [142] CityEngine v2025.0 News
- [143] Boolean Operations: Union, Subtract, Intersect
- [144-153] Mastering Geometry Tagging
- [140] Exporting to Twinmotion
- [159-163] Precise Control: modify Series
I hope this curriculum serves as a valuable guide for beginners and professionals alike looking to master the art of procedural urban modeling.
Comments
Post a Comment