boulders¶
Boulders scattered over the ground from a size distribution, in patches and around fresh craters, as relief or 3D models.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
coverage |
number | 0.02 |
(0, 1) | Golombek-Rapp k, the fraction of the ground covered by boulders, between 0 and 1; used with golombek_rapp sizes, where higher values give more boulders. | |
qa |
number | 1.79 |
1/m | Constant term of the Golombek-Rapp q = qa + qb / k, per metre; a larger q leaves fewer large boulders. Also used for golombek_rapp ejecta. | |
qb |
number | 0.152 |
1/m | Term of the Golombek-Rapp q = qa + qb / k divided by the coverage k, per metre. | |
min_diameter |
number | 0.1 |
(0, inf) | m | Smallest boulder generated, in metres; lower values add many more small boulders. |
max_diameter |
number | 4.0 |
(0, inf) | m | Largest boulder generated, in metres, exclusive; above the smallest. |
sizes |
boulder sizes | {"type": "golombek_rapp", ...} |
Size distribution of the boulders between craters, per m^2; patches and bedrock scale its density. | ||
seed |
integer | 1 |
Seed of the boulders, their attributes and the patches; changing it gives a different boulder field of the same statistics. | ||
ejecta_sizes |
boulder sizes | {"type": "golombek_rapp", ...} |
Size distribution of the blocks at the rim of a fresh crater, per m^2; golombek_rapp uses the ejecta's coverage with qa and qb. | ||
extrapolate |
boolean | false |
Lets the size distributions be evaluated outside their valid diameters, such as beyond a table's published ones; otherwise they must cover the boulder sizes. | ||
bedrock_abundance |
number | 3.0 |
(0, inf) | Boulder abundance on bedrock over that on soil, and in between in proportion; used with the exposure field. | |
exposure_spacing |
number | 1.0 |
(0, inf) | m | Spacing in metres the ground is read at for the exposure field, fixed so that which boulders exist does not depend on the level of detail. |
bedrock_mean_size |
number | 1000.0 |
(0, inf) | m | With a density map, the side in metres of the squares bedrock is held to the map's mean over, so it gathers boulders without adding any; a GeoTIFF map uses its own cells. |
min_height_ratio |
number | 0.4 |
(0, inf) | Smallest boulder height over diameter; each boulder's is drawn uniformly between the two ratios. | |
max_height_ratio |
number | 0.6 |
(0, inf) | Largest boulder height over diameter; at least the smallest. | |
min_burial |
number | 0.1 |
[0, 1) | Smallest buried share of a boulder's height; each boulder's is drawn uniformly between the two shares. | |
max_burial |
number | 0.4 |
[0, 1) | Largest buried share of a boulder's height, below 1; more burial leaves less of the boulder exposed. | |
max_lean |
number | 0.26 |
[0, inf) | rad | Largest tilt of a boulder from the vertical, in radians. |
side_share |
number | 0.0 |
[0, 1] | Share of boulders resting on a side, their intermediate axis up, rather than on their broadest face. | |
end_share |
number | 0.0 |
[0, 1] | Share of boulders standing on an end, their long axis up; with side_share, at most 1. | |
max_tilt |
number | 0.0 |
[0, 3.14159] | rad | Largest tilt of a boulder's up axis from the vertical in a random direction, after its lean, in radians; tilts are spread evenly over that cap of directions. |
follow_slope |
boolean | false |
Settles each boulder on the slope of the ground beneath it before its tilt. | ||
settle |
boolean | true |
Tips each boulder model over until it rests stably on a face, its centre of mass over what it stands on, rather than balanced on an edge or corner. | ||
max_slope |
number, optional | null |
(0, 1.5708) | rad | Steepest ground, across a boulder's diameter, that boulders stay on, in radians; steeper ground has none, models and drawn boulders alike. Unset keeps boulders on any slope. |
roll_distance |
number, optional | null |
(0, inf) | m | With max_slope, boulders on steeper ground roll down it and rest where it is gentle enough, gathering at the foot of slopes; those that would roll farther than this many metres are left out. Unset leaves out every boulder on steeper ground. |
burial_by_wear |
number | 0.0 |
[0, 1] | How far wear sets burial, from 0 to 1: blocks of fresh craters sit near the smallest burial and those of worn ones sink toward the largest, while boulders between craters span every stage; 0 draws burial uniformly. | |
relief |
one of dome, shape, none |
"dome" |
How the boulders drawn into the heights look there. | ||
shape_files |
list of string | [] |
Rock meshes (.obj with its .mtl, .gltf or .glb) the boulder shapes are drawn from instead of the procedural styles, each boulder picking one by its shape seed; paths relative to the configuration. Empty keeps the procedural shapes. | ||
shape_prototypes |
integer | 64 |
How many shapes the boulders share, so they can be drawn as instances; 0 gives every boulder a shape of its own. |
patches: Patches of richer and poorer boulder cover across the ground.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
spread |
number | 1.0 |
[1, inf) | Boulder abundance varies from 1 / spread to spread times its mean, at least 1; 1 is the same everywhere. | |
size |
number | 200.0 |
(0, inf) | m | Typical width of a patch of richer or poorer boulder cover, in metres. |
clusters: Clusters of the boulders between craters around scattered centres; off unless share is set.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
share |
number | 0.0 |
[0, 1] | Share of the boulders between craters gathered in clusters, from 0 to 1; 0 leaves them scattered. | |
spacing |
number | 50.0 |
(0, inf) | m | Typical distance between cluster centres, in metres; with thomas, one centre per spacing squared on average. |
radius |
number | 5.0 |
(0, inf) | m | Gaussian radius of a cluster, in metres; below the spacing with nearest, at most twice it with thomas. |
model |
one of nearest, thomas |
"nearest" |
How cluster centres are laid out and their clusters combine. |
ejecta: Blocks thrown out by craters of the nearest crater layer before this one that dug into boulder, densest at the rim and thinning outward.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
min_crater_diameter |
number | 0.0 |
[0, inf) | m | Smallest crater, in metres, that throws blocks out; 0 with no regolith thickness disables crater blocks. |
regolith_thickness |
number, optional | null |
(0, inf) | m | Regolith thickness in metres: craters smaller than it over the excavation depth ratio dig no boulder and throw no blocks. Unset ignores the regolith. |
excavation_depth_ratio |
number | 0.1 |
(0, 1] | Depth of excavation over crater diameter, in (0, 1]; with the regolith thickness it sets the smallest crater that throws blocks. | |
coverage |
number | 0.1 |
(0, 1) | Golombek-Rapp k, the fraction of ground covered by blocks at the rim of a fresh crater, between 0 and 1; used with golombek_rapp ejecta sizes. | |
profile |
one of smoothstep, exponential |
"smoothstep" |
How the share of a crater's blocks falls off with distance from its centre. | ||
reach |
number | 3.0 |
(1, inf) | Distance from the crater's centre, in crater radii, beyond which it adds no blocks; over 1. | |
decay_radii |
number | 0.7 |
(0, inf) | With the exponential profile, the e-folding distance of the blocks outside the rim, in crater radii. | |
floor_share |
number | 0.05 |
[0, 1] | With the exponential profile, the crater floor's share of the rim's blocks, from 0 to 1. | |
aging |
one of freshness, age |
"freshness" |
How a crater's blocks wear away with time, so that few are left around old craters. | ||
min_freshness |
number | 0.7 |
[0, 1) | With freshness aging, the freshness (current over fresh depth) at or below which a crater keeps no blocks; from 0 to below 1. | |
lifetime_gyr |
number | 4.0 |
(0, inf) | Gyr | With age aging, the crater age in Gyr at which a crater keeps no blocks. |
aging_exponent |
number | 3.0 |
[0, inf) | With age aging, the exponent of (1 - age / lifetime); higher values strip blocks from craters sooner. | |
gravity |
number, optional | null |
(0, inf) | Surface gravity in m/s^2: with the regolith thickness, it limits how far blocks are thrown, after Bart and Melosh (2010). Unset applies no such limit. |
exposure: Raises the abundance of boulders where the ground beneath is bedrock, judged from its shape; unset disables it.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
reach |
number | 12.0 |
(0, inf) | m | Distance in metres around a point at which its surroundings are read, to tell rises from lows. |
rise_soil |
number | 0.01 |
Height above the surroundings, as a share of the reach, at or below which the ground is soil. | ||
rise_boulder |
number | 0.035 |
Height above the surroundings, as a share of the reach, at or above which the ground is bedrock; above the soil threshold. | ||
slope_soil |
number | 0.2 |
Slope, as rise over run, at or under which soil holds. | ||
slope_boulder |
number | 0.4 |
Slope, as rise over run, at or over which no soil holds and the ground is bedrock; above the soil threshold. | ||
floor_cover |
number | 0.0 |
[0, 1) | Share of level ground that is bedrock too, in noise patches, as on a swept lava floor; from 0 to below 1, and 0 for none. | |
floor_patch |
number | 60.0 |
(0, inf) | m | Width of the bedrock patches on level ground, in metres. |
seed |
integer | 0 |
Seed of the bedrock patches on level ground. |
fillet: Regolith piled against each boulder's base, around relief and models alike; off unless height_share is set.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
height_share |
number | 0.0 |
[0, 1] | Height of the regolith piled against a boulder, as a share of its exposed height, from 0 to 1; 0 draws no fillets. | |
width_ratio |
number | 0.3 |
(0, inf) | How far the fillet reaches beyond the boulder's edge, over its diameter; it falls to nothing there. |
ventifacts: Windward facets planed on boulders by sand-laden wind, from wear; off unless share is set.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
share |
number | 0.0 |
[0, 1] | Share of boulders with a windward facet planed by sand-laden wind, from 0 to 1; 0 for none. Gale crater: 0.39 (Bridges et al. 2014). | |
wind_azimuth |
number | 0.0 |
rad | Where the abrading wind blows toward, in radians counter-clockwise from east; facets face the other way. | |
min_angle |
number | 0.8726646259971648 |
(0, 1.5708) | rad | Gentlest facet slope from horizontal, in radians; 50 to 60 deg on basalt (Laity and Bridges 2009). |
max_angle |
number | 1.0471975511965976 |
(0, 1.5708) | rad | Steepest facet slope from horizontal, in radians. |
second_wind_azimuth |
number, optional | null |
rad | A second abrading wind, where it blows toward, in radians; some faceted boulders get a second facet facing it and a keel between. Unset for none. | |
keel_share |
number | 0.0 |
[0, 1] | Share of faceted boulders with the second facet, from 0 to 1. Gale crater: 12 of 39 (Bridges et al. 2014). |
fragmentation: Boulders broken by wear into pieces that replace them, split and then scattered as rubble; off unless split_wear is below 1.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
min_diameter |
number | 1.0 |
(0, inf) | m | Smallest boulder that breaks, in metres. |
split_wear |
number | 1.0 |
[0, 1] | Wear from 0 (fresh) to 1 from which boulders split into pieces that still fit; 1 breaks nothing. | |
rubble_wear |
number | 1.0 |
[0, 1] | Wear from which the pieces scatter as rubble, turn and sink; at least split_wear. | |
min_pieces |
integer | 2 |
[2, 12] | Fewest pieces a boulder breaks into, at least 2. | |
max_pieces |
integer | 5 |
[2, 12] | Most pieces a boulder breaks into, at most 12. | |
gap_ratio |
number | 0.04 |
[0, inf) | Widest crack between split pieces, as a share of the boulder's diameter. | |
spread_ratio |
number | 0.6 |
[0, inf) | How far rubble scatters beyond the cracks, as a share of the boulder's diameter. | |
slab_share |
number | 0.7 |
[0, 1] | Share of broken boulders split by roughly parallel cracks right through them; the rest crack out from the middle. |
models: Which boulders become 3D models of their own rather than relief in the heights; neither threshold set means no models.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
min_diameter |
number, optional | null |
(0, inf) | m | Boulders at least this many metres across become 3D models; unset applies no diameter threshold. |
min_samples |
number, optional | null |
(0, inf) | Boulders spanning at least this many samples at the spacing evaluated become 3D models, so finer levels of detail make more of them; unset applies no such threshold. | |
max_diameter |
number, optional | null |
(0, inf) | m | Boulders this many metres across or wider are not models, keeping a band of sizes as models; unset applies no upper limit. |
max_samples |
number, optional | null |
(0, inf) | Boulders spanning this many samples or more are not models; unset applies no such limit. |
relief_range: Which boulders are drawn into the heights by diameter: none below min_diameter or from max_diameter, and models only when asked.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
min_diameter |
number | 0.0 |
[0, inf) | m | Smallest boulder drawn into the heights, in metres; smaller ones stay in the lists only, for the renderer's surface detail. |
max_diameter |
number, optional | null |
(0, inf) | m | Boulders this many metres across or wider are not drawn into the heights; unset applies no upper limit. |
models |
boolean | false |
Draws the 3D model boulders into the heights as well, as a stand-in for far views. |
shapes: The boulders' 3D boulder shapes, used by shape relief and by models.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
subdivisions |
integer | 3 |
[0, 6] | Times the solid's triangles are split in four, 0 to 6; more give finer, smoother shapes with more triangles. | |
weathering |
number | 1.0 |
[0, inf) | Scales every style's edge softness: 0 gives sharp edges, 1 the styles' own, more is more worn. | |
seed |
integer | 0 |
Seed the shapes are drawn with, along with each shape's own seed; changing it reshapes every boulder. |
styles[]: Kinds of boulder each shape is drawn from, picked by weight; at least one.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
name |
string | "" |
Label of the style, for reference; it does not change the shapes. | ||
weight |
number | 1.0 |
[0, inf) | Relative share of boulders given this style, not negative; the styles' weights must not all be 0. | |
solid |
one of icosahedron, cube, pyramid, prism, tetrahedron |
"icosahedron" |
Solid the shape starts from, before it is stretched, rounded, roughened and fractured. | ||
min_fractures |
integer | 0 |
[0, 64] | Fewest flat fracture planes cutting a boulder, from 0; each boulder's count is drawn between the two. | |
max_fractures |
integer | 0 |
[0, 64] | Most flat fracture planes cutting a boulder, at most 64 and at least the fewest. | |
max_fracture_tilt |
number | 1.0 |
[0, 1] | Largest vertical component of a fracture plane's unit normal, from 0 to 1: 0 keeps normals horizontal, cutting a slab about its rim only. | |
noise_amplitude |
number | 0.05 |
[0, 1) | Largest relative change of the radius by the roughening noise, in [0, 1); 0 leaves the surface unroughened. | |
noise_wavelength |
number | 0.6 |
(0, inf) | Wavelength of the roughening noise's first octave, in long-axis lengths; positive, with smaller values giving finer bumps. | |
noise_octaves |
integer | 3 |
[1, 12] | Octaves of the roughening noise, 1 to 12, each halving in wavelength; more add finer detail. | |
face_roughness |
number | 0.0 |
[0, 0.5] | How far fracture faces undulate, as a share of each plane's offset from 0 to 0.5; 0 keeps them flat. |
intermediate: Range of the intermediate axis over the long one, b / a, within (0, 1]; lower values give more elongated boulders.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
min |
number | 0.0 |
Lower end of the interval the value is drawn uniformly from. | ||
max |
number | 0.0 |
Upper end of the interval the value is drawn uniformly from. |
short_axis: Range of the short, vertical axis over the long one, c / a, within (0, 1] and at most the intermediate ratio; lower values give flatter boulders.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
min |
number | 0.0 |
Lower end of the interval the value is drawn uniformly from. | ||
max |
number | 0.0 |
Upper end of the interval the value is drawn uniformly from. |
rounding: Range of the share, from 0 to 1, by which the shape is rounded toward the ellipsoid of its axes: 0 keeps the solid's edges and corners, 1 is the ellipsoid.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
min |
number | 0.0 |
Lower end of the interval the value is drawn uniformly from. | ||
max |
number | 0.0 |
Upper end of the interval the value is drawn uniformly from. |
fracture_depth: Range of where each fracture plane lies, as a share of the shape's reach along its normal, within (0, 1]; lower values cut more away.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
min |
number | 0.0 |
Lower end of the interval the value is drawn uniformly from. | ||
max |
number | 0.0 |
Upper end of the interval the value is drawn uniformly from. |
edge_softness: Range of how far edges and corners are worn back where faces meet, as weathering rounds them, in long-axis lengths from 0 to 0.5; 0 keeps them sharp.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
min |
number | 0.0 |
Lower end of the interval the value is drawn uniformly from. | ||
max |
number | 0.0 |
Upper end of the interval the value is drawn uniformly from. |
density_map: Map that sets the abundance of boulders between craters point by point, scaling the sizes to what it measures; unset keeps the abundance the sizes set everywhere.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
measure |
one of scale, count, areal_fraction |
"scale" |
What the map's values measure. | ||
min_diameter |
number | 0.0 |
m | Smallest diameter the map measures, in metres; positive for a count or areal fraction. | |
max_diameter |
number, optional | null |
m | Largest diameter the map measures, in metres, exclusive; unset for no limit. | |
area_unit |
number | 1.0 |
(0, inf) | m^2 | Square metres per area unit of a count: 1 for per m^2, 1e6 for per km^2. |
total |
boolean | true |
The map counts every feature of its kind, including the secondaries thrown from a crater layer's craters and the boulders a layer throws out around craters, which are taken out of it first; off when it counts only what the layer generates. |
field: The map.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
path |
string | "" |
GeoTIFF read in the surface's coordinates, relative to the configuration's folder: metres on a plane, longitude and latitude in degrees on a sphere. Empty uses value. | ||
value |
number | 0.0 |
The field everywhere when no path is given. | ||
band |
integer | 0 |
Band of the GeoTIFF read, from 0. | ||
method |
one of nearest, bilinear, cubic |
"bilinear" |
How the GeoTIFF is interpolated: nearest or bilinear, which stay within the cells read. | ||
scale |
number | 1.0 |
(0, inf) | Multiplies every cell, such as 0.001 for a map stored in thousandths; positive. | |
fallback |
number, optional | null |
Value outside the GeoTIFF and where its cells are no-data or NaN; unset leaves none, and the layer then keeps its own setting there. | ||
periodic_longitude |
boolean | false |
The GeoTIFF's x is longitude repeating every 360 degrees, so a map from 0 to 360 serves -180 to 180. |
slope_map: Map of how steeply boulder counts fall with size, such as a mean diameter map, bending the sizes into a local power law through their count at its reference diameter; needs a size distribution. Unset keeps the sizes' shape everywhere.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
measure |
one of exponent, mean_diameter |
"exponent" |
What the map's values measure. | ||
reference_diameter |
number | 1.0 |
(0, inf) | m | Diameter D0 in metres where the local power law meets the layer's own count, as N(>=D) = N(>=D0) (D / D0)^-alpha; for a mean diameter map, the smallest diameter averaged. |
min_exponent |
number | 1.0 |
(0, inf) | Smallest exponent alpha the map's values are clamped to; with the largest it bounds the boulders drawn, so generous bounds draw more to thin. | |
max_exponent |
number | 6.0 |
(0, inf) | Largest exponent alpha the map's values are clamped to; above the smallest. |
field: The map.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
path |
string | "" |
GeoTIFF read in the surface's coordinates, relative to the configuration's folder: metres on a plane, longitude and latitude in degrees on a sphere. Empty uses value. | ||
value |
number | 0.0 |
The field everywhere when no path is given. | ||
band |
integer | 0 |
Band of the GeoTIFF read, from 0. | ||
method |
one of nearest, bilinear, cubic |
"bilinear" |
How the GeoTIFF is interpolated: nearest or bilinear, which stay within the cells read. | ||
scale |
number | 1.0 |
(0, inf) | Multiplies every cell, such as 0.001 for a map stored in thousandths; positive. | |
fallback |
number, optional | null |
Value outside the GeoTIFF and where its cells are no-data or NaN; unset leaves none, and the layer then keeps its own setting there. | ||
periodic_longitude |
boolean | false |
The GeoTIFF's x is longitude repeating every 360 degrees, so a map from 0 to 360 serves -180 to 180. |
manual[]: Catalog boulders placed as given and never thinned or left out; x, y and diameter are read.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
x |
number | 0.0 |
Centre along x in the surface's coordinates; the longitude in degrees on a sphere. | ||
y |
number | 0.0 |
Centre along y in the surface's coordinates; the latitude in degrees on a sphere. | ||
diameter |
number | 0.0 |
(0, inf) | m | Rim-to-rim diameter, in metres. |
age_gyr |
number | 0.0 |
[0, inf) | Gyr | Age in Gyr; older craters are more degraded under a degradation model and are applied earlier in oldest-first order. |
id |
integer | 0 |
Stable ID that seeds the crater's outline; 0 derives one from its position and diameter. |
completeness: Where the manual boulders are a complete catalog: the diameter in metres from which they stand in for generated boulders, infinite or no value where there is no catalog. Unset keeps every generated boulder.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
path |
string | "" |
GeoTIFF read in the surface's coordinates, relative to the configuration's folder: metres on a plane, longitude and latitude in degrees on a sphere. Empty uses value. | ||
value |
number | 0.0 |
The field everywhere when no path is given. | ||
band |
integer | 0 |
Band of the GeoTIFF read, from 0. | ||
method |
one of nearest, bilinear, cubic |
"bilinear" |
How the GeoTIFF is interpolated: nearest or bilinear, which stay within the cells read. | ||
scale |
number | 1.0 |
(0, inf) | Multiplies every cell, such as 0.001 for a map stored in thousandths; positive. | |
fallback |
number, optional | null |
Value outside the GeoTIFF and where its cells are no-data or NaN; unset leaves none, and the layer then keeps its own setting there. | ||
periodic_longitude |
boolean | false |
The GeoTIFF's x is longitude repeating every 360 degrees, so a map from 0 to 360 serves -180 to 180. |
fade: How boulders too small to resolve at the sample spacing fade out.
| Key | Type | Default | Range | Unit | Description |
|---|---|---|---|---|---|
start_samples |
number | 2.0 |
[0, inf) | Samples across a feature's diameter up to which it is left out entirely. | |
end_samples |
number | 4.0 |
(0, inf) | Samples across a feature's diameter from which it is applied in full; it fades in between the two counts. | |
shape |
one of linear, smoothstep, smootherstep, gaussian |
"smoothstep" |
Curve of the fade between the start and end sample counts. |
Every key with its default
{
"type": "boulders",
"coverage": 0.02,
"qa": 1.79,
"qb": 0.152,
"min_diameter": 0.1,
"max_diameter": 4.0,
"sizes": {
"type": "golombek_rapp"
},
"seed": 1,
"patches": {
"spread": 1.0,
"size": 200.0
},
"clusters": {
"share": 0.0,
"spacing": 50.0,
"radius": 5.0,
"model": "nearest"
},
"ejecta": {
"min_crater_diameter": 0.0,
"regolith_thickness": null,
"excavation_depth_ratio": 0.1,
"coverage": 0.1,
"profile": "smoothstep",
"reach": 3.0,
"decay_radii": 0.7,
"floor_share": 0.05,
"aging": "freshness",
"min_freshness": 0.7,
"lifetime_gyr": 4.0,
"aging_exponent": 3.0,
"gravity": null
},
"ejecta_sizes": {
"type": "golombek_rapp"
},
"extrapolate": false,
"exposure": null,
"bedrock_abundance": 3.0,
"exposure_spacing": 1.0,
"bedrock_mean_size": 1000.0,
"min_height_ratio": 0.4,
"max_height_ratio": 0.6,
"min_burial": 0.1,
"max_burial": 0.4,
"max_lean": 0.26,
"side_share": 0.0,
"end_share": 0.0,
"max_tilt": 0.0,
"follow_slope": false,
"settle": true,
"max_slope": null,
"roll_distance": null,
"burial_by_wear": 0.0,
"fillet": {
"height_share": 0.0,
"width_ratio": 0.3
},
"ventifacts": {
"share": 0.0,
"wind_azimuth": 0.0,
"min_angle": 0.8726646259971648,
"max_angle": 1.0471975511965976,
"second_wind_azimuth": null,
"keel_share": 0.0
},
"fragmentation": {
"min_diameter": 1.0,
"split_wear": 1.0,
"rubble_wear": 1.0,
"min_pieces": 2,
"max_pieces": 5,
"gap_ratio": 0.04,
"spread_ratio": 0.6,
"slab_share": 0.7
},
"relief": "dome",
"models": {
"min_diameter": null,
"min_samples": null,
"max_diameter": null,
"max_samples": null
},
"relief_range": {
"min_diameter": 0.0,
"max_diameter": null,
"models": false
},
"shapes": {
"styles": [
{
"name": "angular",
"weight": 0.2,
"solid": "icosahedron",
"intermediate": {
"min": 0.6,
"max": 0.9
},
"short_axis": {
"min": 0.45,
"max": 0.7
},
"rounding": {
"min": 0.0,
"max": 0.0
},
"min_fractures": 7,
"max_fractures": 12,
"fracture_depth": {
"min": 0.55,
"max": 0.85
},
"max_fracture_tilt": 1.0,
"noise_amplitude": 0.06,
"noise_wavelength": 0.9,
"noise_octaves": 4,
"edge_softness": {
"min": 0.02,
"max": 0.06
},
"face_roughness": 0.03
},
{
"name": "platy",
"weight": 0.12,
"solid": "icosahedron",
"intermediate": {
"min": 0.6,
"max": 0.9
},
"short_axis": {
"min": 0.22,
"max": 0.38
},
"rounding": {
"min": 0.0,
"max": 0.0
},
"min_fractures": 5,
"max_fractures": 9,
"fracture_depth": {
"min": 0.6,
"max": 0.88
},
"max_fracture_tilt": 0.7,
"noise_amplitude": 0.05,
"noise_wavelength": 0.9,
"noise_octaves": 4,
"edge_softness": {
"min": 0.02,
"max": 0.05
},
"face_roughness": 0.03
},
{
"name": "subrounded",
"weight": 0.15,
"solid": "icosahedron",
"intermediate": {
"min": 0.65,
"max": 0.9
},
"short_axis": {
"min": 0.45,
"max": 0.7
},
"rounding": {
"min": 0.0,
"max": 0.0
},
"min_fractures": 4,
"max_fractures": 7,
"fracture_depth": {
"min": 0.65,
"max": 0.9
},
"max_fracture_tilt": 1.0,
"noise_amplitude": 0.07,
"noise_wavelength": 0.8,
"noise_octaves": 4,
"edge_softness": {
"min": 0.06,
"max": 0.12
},
"face_roughness": 0.02
},
{
"name": "rounded",
"weight": 0.1,
"solid": "icosahedron",
"intermediate": {
"min": 0.7,
"max": 0.95
},
"short_axis": {
"min": 0.5,
"max": 0.75
},
"rounding": {
"min": 0.0,
"max": 0.0
},
"min_fractures": 0,
"max_fractures": 3,
"fracture_depth": {
"min": 0.75,
"max": 0.95
},
"max_fracture_tilt": 1.0,
"noise_amplitude": 0.1,
"noise_wavelength": 0.7,
"noise_octaves": 4,
"edge_softness": {
"min": 0.1,
"max": 0.18
},
"face_roughness": 0.02
},
{
"name": "block",
"weight": 0.13,
"solid": "cube",
"intermediate": {
"min": 0.6,
"max": 0.85
},
"short_axis": {
"min": 0.4,
"max": 0.6
},
"rounding": {
"min": 0.0,
"max": 0.15
},
"min_fractures": 3,
"max_fractures": 7,
"fracture_depth": {
"min": 0.6,
"max": 0.85
},
"max_fracture_tilt": 1.0,
"noise_amplitude": 0.07,
"noise_wavelength": 0.8,
"noise_octaves": 4,
"edge_softness": {
"min": 0.06,
"max": 0.12
},
"face_roughness": 0.06
},
{
"name": "wedge",
"weight": 0.1,
"solid": "prism",
"intermediate": {
"min": 0.55,
"max": 0.85
},
"short_axis": {
"min": 0.4,
"max": 0.6
},
"rounding": {
"min": 0.0,
"max": 0.2
},
"min_fractures": 2,
"max_fractures": 5,
"fracture_depth": {
"min": 0.65,
"max": 0.9
},
"max_fracture_tilt": 1.0,
"noise_amplitude": 0.07,
"noise_wavelength": 0.8,
"noise_octaves": 4,
"edge_softness": {
"min": 0.06,
"max": 0.12
},
"face_roughness": 0.06
},
{
"name": "pyramid",
"weight": 0.1,
"solid": "pyramid",
"intermediate": {
"min": 0.7,
"max": 0.95
},
"short_axis": {
"min": 0.45,
"max": 0.7
},
"rounding": {
"min": 0.0,
"max": 0.2
},
"min_fractures": 2,
"max_fractures": 4,
"fracture_depth": {
"min": 0.7,
"max": 0.92
},
"max_fracture_tilt": 1.0,
"noise_amplitude": 0.07,
"noise_wavelength": 0.8,
"noise_octaves": 4,
"edge_softness": {
"min": 0.06,
"max": 0.12
},
"face_roughness": 0.06
},
{
"name": "shard",
"weight": 0.05,
"solid": "tetrahedron",
"intermediate": {
"min": 0.6,
"max": 0.9
},
"short_axis": {
"min": 0.4,
"max": 0.6
},
"rounding": {
"min": 0.0,
"max": 0.2
},
"min_fractures": 2,
"max_fractures": 4,
"fracture_depth": {
"min": 0.7,
"max": 0.92
},
"max_fracture_tilt": 1.0,
"noise_amplitude": 0.04,
"noise_wavelength": 0.8,
"noise_octaves": 4,
"edge_softness": {
"min": 0.02,
"max": 0.05
},
"face_roughness": 0.03
},
{
"name": "sphere",
"weight": 0.05,
"solid": "icosahedron",
"intermediate": {
"min": 0.85,
"max": 1.0
},
"short_axis": {
"min": 0.7,
"max": 0.9
},
"rounding": {
"min": 0.0,
"max": 0.0
},
"min_fractures": 0,
"max_fractures": 1,
"fracture_depth": {
"min": 0.8,
"max": 0.95
},
"max_fracture_tilt": 1.0,
"noise_amplitude": 0.08,
"noise_wavelength": 0.7,
"noise_octaves": 4,
"edge_softness": {
"min": 0.12,
"max": 0.2
},
"face_roughness": 0.02
}
],
"subdivisions": 3,
"weathering": 1.0,
"seed": 0
},
"shape_files": [],
"density_map": null,
"slope_map": null,
"manual": [],
"completeness": null,
"shape_prototypes": 64,
"fade": {
"start_samples": 2.0,
"end_samples": 4.0,
"shape": "smoothstep"
}
}
Used in: example_albedo_rocks_and_slopes, example_boulders_buried, example_boulders_ejecta, example_boulders_exposure, example_boulders_fragments, example_boulders_layer, example_boulders_max_slope, example_boulders_models and 11 more