{"name":"Terrain Processor: Area: High-density Cluster","title":"Terrain Processor: Area: High-density Cluster","type":"topic","url":"https://community.bistudio.com/wiki/Terrain_Processor:_Area:_High-density_Cluster","revid":377917,"updated":"2026-01-11T15:23:24Z","aliases":[],"markdown":"#### Task details\n\n**Task name** : Area: Hight-density Cluster\n\n**Dll plugin name** : BITasksPlugin.dll\n\n**Geometry type** : Polygon, PolygonM, PolygonZ\n\n**Heightmap** : No\n\n#### Description\n\nRandom placement of multiple objects inside the polygons specified in the given shapefile.\nFirst step is to create lifegrid.\nLifegrid is 2D table where every cell has information about its Object prototype.\nAlgorithm puts some first seeds. Counts and types of seeds depends on input parameters. Ideal for high density areas like forest.\nSee Example below.\n\n#### Task parameters\n\n- **Random seed** - number used to initialise pseudorandom number generator.\n- **Hectare density** - density of the filling, in number of objects for hectare. For example 100 objects per hectare means an average distance of 10 metres between each object.\n- **Fraction** - initial seeds count for smallest probability object prototype on hectare.\n- **Blend distance** - distance to get object prototype.\n\n#### Object prototype parameters\n\n- **OBJECT** - Object's prototype name\n- **PROB** - Object's probability\n- **MINHEIGHT** - Minimal size in %\n- **MAXHEIGHT** - Maximal size in %\n- **MINDIST** - Minimal distance in metres\n\n#### Usage\n\nUse for areas with high objects density, where particular object types tend to aggregate in groups, e.g. in mixed forests.\n\n#### Algorithm\n\nFor each shape (areal) do:\n\n1. Create and populate \"lifegrid\"\n   1. Find shape bounding.\n   1. Create empty \"lifegrid\" for this area.\n   1. Generate base seeds (for each object prototype)\n      1. seeds_count = HECTARES * CDENSHA\n      1. Randomly generate seeds_count in shape and set this grid item prototype.\n1. instances_count = HECTARES * DENSHA\n1. For instances_count try to find position:\n   1. Random position in bounding box.\n   1. If position is not inside shape, restart\n   1. If minimal distance to other objects is not ok, restart\n   1. Find object prototype - random grid item in radius 50 metres. This grid item has information about object prototype.\n\nIf this loop has no new output for the last 100 attempts, area is considered full and iteration of this shape will end.\n\n#### Example\n\n**Example with **85%** spruce, **10%** pine, **5%** larch**\n\n|  |  |  |  |\n|---|---|---|---|\n| Preview |  |  |  |\n| Fragmentation | 1 | 2 | 5 |\n| Spruce seeds count | 17 | 34 | 85 |\n| Pine seeds count | 2 | 4 | 10 |\n| Larch seeds count | 1 | 2 | 5 |","sections":[{"heading":"Task details","level":4,"markdown":"**Task name** : Area: Hight-density Cluster\n\n**Dll plugin name** : BITasksPlugin.dll\n\n**Geometry type** : Polygon, PolygonM, PolygonZ\n\n**Heightmap** : No"},{"heading":"Description","level":4,"markdown":"Random placement of multiple objects inside the polygons specified in the given shapefile.\nFirst step is to create lifegrid.\nLifegrid is 2D table where every cell has information about its Object prototype.\nAlgorithm puts some first seeds. Counts and types of seeds depends on input parameters. Ideal for high density areas like forest.\nSee Example below."},{"heading":"Task parameters","level":4,"markdown":"- **Random seed** - number used to initialise pseudorandom number generator.\n- **Hectare density** - density of the filling, in number of objects for hectare. For example 100 objects per hectare means an average distance of 10 metres between each object.\n- **Fraction** - initial seeds count for smallest probability object prototype on hectare.\n- **Blend distance** - distance to get object prototype."},{"heading":"Object prototype parameters","level":4,"markdown":"- **OBJECT** - Object's prototype name\n- **PROB** - Object's probability\n- **MINHEIGHT** - Minimal size in %\n- **MAXHEIGHT** - Maximal size in %\n- **MINDIST** - Minimal distance in metres"},{"heading":"Usage","level":4,"markdown":"Use for areas with high objects density, where particular object types tend to aggregate in groups, e.g. in mixed forests."},{"heading":"Algorithm","level":4,"markdown":"For each shape (areal) do:\n\n1. Create and populate \"lifegrid\"\n   1. Find shape bounding.\n   1. Create empty \"lifegrid\" for this area.\n   1. Generate base seeds (for each object prototype)\n      1. seeds_count = HECTARES * CDENSHA\n      1. Randomly generate seeds_count in shape and set this grid item prototype.\n1. instances_count = HECTARES * DENSHA\n1. For instances_count try to find position:\n   1. Random position in bounding box.\n   1. If position is not inside shape, restart\n   1. If minimal distance to other objects is not ok, restart\n   1. Find object prototype - random grid item in radius 50 metres. This grid item has information about object prototype.\n\nIf this loop has no new output for the last 100 attempts, area is considered full and iteration of this shape will end."},{"heading":"Example","level":4,"markdown":"**Example with **85%** spruce, **10%** pine, **5%** larch**\n\n|  |  |  |  |\n|---|---|---|---|\n| Preview |  |  |  |\n| Fragmentation | 1 | 2 | 5 |\n| Spruce seeds count | 17 | 34 | 85 |\n| Pine seeds count | 2 | 4 | 10 |\n| Larch seeds count | 1 | 2 | 5 |"}],"categories":["Terrain Processor Manual"],"groups":["Tools and File Formats"]}