@woosh/meep-engine 3.53.0 → 3.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/package.json +1 -1
  2. package/src/core/math/noise/worley_noise_2d.d.ts +14 -0
  3. package/src/core/math/noise/worley_noise_2d.d.ts.map +1 -0
  4. package/src/core/math/noise/worley_noise_2d.js +74 -0
  5. package/src/engine/graphics/texture/atlas/CachingTextureAtlas.d.ts +6 -1
  6. package/src/engine/graphics/texture/atlas/CachingTextureAtlas.d.ts.map +1 -1
  7. package/src/engine/graphics/texture/atlas/CachingTextureAtlas.js +363 -325
  8. package/src/engine/graphics/texture/atlas/ManagedTextureAtlas.d.ts +93 -14
  9. package/src/engine/graphics/texture/atlas/ManagedTextureAtlas.d.ts.map +1 -1
  10. package/src/engine/graphics/texture/atlas/ManagedTextureAtlas.js +322 -183
  11. package/src/engine/graphics/texture/atlas/ReferencedTextureAtlas.d.ts +9 -0
  12. package/src/engine/graphics/texture/atlas/ReferencedTextureAtlas.d.ts.map +1 -1
  13. package/src/engine/graphics/texture/atlas/ReferencedTextureAtlas.js +110 -83
  14. package/src/engine/graphics/texture/atlas/SpriteAtlas.d.ts +42 -0
  15. package/src/engine/graphics/texture/atlas/SpriteAtlas.d.ts.map +1 -0
  16. package/src/engine/{graphics3/decal/DecalAtlas.js → graphics/texture/atlas/SpriteAtlas.js} +202 -194
  17. package/src/engine/graphics/texture/atlas/SpriteAtlasFill.d.ts +12 -0
  18. package/src/engine/graphics/texture/atlas/SpriteAtlasFill.d.ts.map +1 -0
  19. package/src/engine/graphics/texture/atlas/SpriteAtlasFill.js +30 -0
  20. package/src/engine/graphics/texture/atlas/TextureAtlas.d.ts +7 -0
  21. package/src/engine/graphics/texture/atlas/TextureAtlas.d.ts.map +1 -1
  22. package/src/engine/graphics/texture/atlas/TextureAtlas.js +11 -1
  23. package/src/engine/graphics/texture/atlas/sprite_atlas_border.d.ts +52 -0
  24. package/src/engine/graphics/texture/atlas/sprite_atlas_border.d.ts.map +1 -0
  25. package/src/engine/{graphics3/decal/decal_atlas_border.js → graphics/texture/atlas/sprite_atlas_border.js} +69 -69
  26. package/src/engine/graphics3/DecalSystem.d.ts.map +1 -1
  27. package/src/engine/graphics3/DecalSystem.js +447 -450
  28. package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts +9 -22
  29. package/src/engine/graphics3/GPUParticleEmitterSystem.d.ts.map +1 -1
  30. package/src/engine/graphics3/GPUParticleEmitterSystem.js +892 -951
  31. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  32. package/src/generation/foliage/FOLIAGE_DESIGN.md +2 -1
  33. package/src/generation/foliage/config/BarkMaterialConfig.d.ts +4 -3
  34. package/src/generation/foliage/config/BarkMaterialConfig.d.ts.map +1 -1
  35. package/src/generation/foliage/config/BarkMaterialConfig.js +6 -6
  36. package/src/generation/foliage/config/FoliageBarkType.d.ts +11 -0
  37. package/src/generation/foliage/config/FoliageBarkType.d.ts.map +1 -0
  38. package/src/generation/foliage/config/FoliageBarkType.js +16 -0
  39. package/src/generation/foliage/config/FoliageMaterialConfig.d.ts +58 -5
  40. package/src/generation/foliage/config/FoliageMaterialConfig.d.ts.map +1 -1
  41. package/src/generation/foliage/config/FoliageMaterialConfig.js +279 -181
  42. package/src/generation/foliage/index.d.ts +2 -1
  43. package/src/generation/foliage/index.js +44 -43
  44. package/src/generation/foliage/material/make_bark_material.d.ts.map +1 -1
  45. package/src/generation/foliage/material/make_bark_material.js +23 -95
  46. package/src/generation/foliage/material/make_foliage_material.d.ts +29 -3
  47. package/src/generation/foliage/material/make_foliage_material.d.ts.map +1 -1
  48. package/src/generation/foliage/material/make_foliage_material.js +605 -359
  49. package/src/generation/foliage/mesh/branch_collar_project.d.ts.map +1 -1
  50. package/src/generation/foliage/mesh/branch_collar_project.js +205 -203
  51. package/src/generation/foliage/mesh/foliage_collect_attachments.d.ts +15 -0
  52. package/src/generation/foliage/mesh/foliage_collect_attachments.d.ts.map +1 -1
  53. package/src/generation/foliage/mesh/foliage_collect_attachments.js +569 -502
  54. package/src/generation/foliage/mesh/tree_mesh_build_bark.d.ts.map +1 -1
  55. package/src/generation/foliage/mesh/tree_mesh_build_bark.js +1049 -1047
  56. package/src/generation/foliage/mesh/tree_mesh_build_foliage.d.ts +2 -1
  57. package/src/generation/foliage/mesh/tree_mesh_build_foliage.d.ts.map +1 -1
  58. package/src/generation/foliage/mesh/tree_mesh_build_foliage.js +454 -415
  59. package/src/generation/foliage/presets/make_tree_species_preset.d.ts.map +1 -1
  60. package/src/generation/foliage/presets/make_tree_species_preset.js +870 -837
  61. package/src/generation/foliage/skeleton/crown_envelope_evaluate.js +121 -121
  62. package/src/generation/foliage/skeleton/tree_skeleton_compute_pipe_radii.d.ts +10 -7
  63. package/src/generation/foliage/skeleton/tree_skeleton_compute_pipe_radii.d.ts.map +1 -1
  64. package/src/generation/foliage/skeleton/tree_skeleton_compute_pipe_radii.js +206 -179
  65. package/src/generation/foliage/skeleton/tree_skeleton_grow.d.ts.map +1 -1
  66. package/src/generation/foliage/skeleton/tree_skeleton_grow.js +1871 -1104
  67. package/src/shade/playground/foliage_wind/foliage_world.d.ts +6 -0
  68. package/src/shade/playground/foliage_wind/foliage_world.d.ts.map +1 -1
  69. package/src/shade/playground/foliage_wind/foliage_world.js +602 -593
  70. package/src/shade/playground/foliage_wind/index.html +260 -254
  71. package/src/shade/playground/foliage_wind/main.js +275 -263
  72. package/src/shade/renderer/fluid/GPUFluidCascade.d.ts +3 -3
  73. package/src/shade/renderer/fluid/GPUFluidCascadeStack.d.ts +1 -1
  74. package/src/shade/renderer/fluid/forcing/GPUFluidForcing.d.ts +6 -6
  75. package/src/shade/renderer/fluid/pressure/GPUFluidPressureSolve.d.ts +1 -1
  76. package/src/shade/renderer/fluid/query/GPUFluidQueries.d.ts +1 -1
  77. package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.js +1 -1
  78. package/src/shade/renderer/hiz/HierarchicalZBuffer.d.ts +3 -3
  79. package/src/shade/renderer/hiz/HierarchicalZBuffer.d.ts.map +1 -1
  80. package/src/shade/renderer/hiz/HierarchicalZBuffer.js +350 -294
  81. package/src/shade/renderer/hiz/generate_downsampler_code.d.ts +0 -2
  82. package/src/shade/renderer/hiz/generate_downsampler_code.d.ts.map +1 -1
  83. package/src/shade/renderer/hiz/generate_downsampler_code.js +99 -100
  84. package/src/shade/renderer/hiz/hzb_pick_alignment.d.ts +15 -0
  85. package/src/shade/renderer/hiz/hzb_pick_alignment.d.ts.map +1 -0
  86. package/src/shade/renderer/hiz/hzb_pick_alignment.js +148 -0
  87. package/src/shade/renderer/hiz/hzb_plan_reduction_steps.d.ts +28 -0
  88. package/src/shade/renderer/hiz/hzb_plan_reduction_steps.d.ts.map +1 -0
  89. package/src/shade/renderer/hiz/hzb_plan_reduction_steps.js +58 -0
  90. package/src/shade/renderer/hiz/shader_hzb_reduce_any.d.ts +5 -5
  91. package/src/shade/renderer/hiz/shader_hzb_reduce_any.d.ts.map +1 -1
  92. package/src/shade/renderer/hiz/shader_hzb_reduce_any.js +57 -67
  93. package/src/shade/renderer/hiz/shader_hzb_reduce_mip0_clip.d.ts +3 -3
  94. package/src/shade/renderer/hiz/shader_hzb_reduce_mip0_clip.d.ts.map +1 -1
  95. package/src/shade/renderer/hiz/shader_hzb_reduce_mip0_clip.js +111 -112
  96. package/src/shade/renderer/hiz/shader_hzb_spd.d.ts +5 -0
  97. package/src/shade/renderer/hiz/shader_hzb_spd.d.ts.map +1 -0
  98. package/src/shade/renderer/hiz/shader_hzb_spd.js +160 -0
  99. package/src/shade/renderer/light/GPULightCollection.d.ts +8 -0
  100. package/src/shade/renderer/light/GPULightCollection.d.ts.map +1 -1
  101. package/src/shade/renderer/light/GPULightCollection.js +67 -0
  102. package/src/shade/renderer/light/environment/FAR_FIELD_IRRADIANCE_SH_RESOURCE.d.ts +7 -0
  103. package/src/shade/renderer/light/environment/FAR_FIELD_IRRADIANCE_SH_RESOURCE.d.ts.map +1 -0
  104. package/src/shade/renderer/light/environment/FAR_FIELD_IRRADIANCE_SH_RESOURCE.js +13 -0
  105. package/src/shade/renderer/light/environment/shader_project_far_field_irradiance_sh.d.ts +10 -0
  106. package/src/shade/renderer/light/environment/shader_project_far_field_irradiance_sh.d.ts.map +1 -0
  107. package/src/shade/renderer/light/environment/shader_project_far_field_irradiance_sh.js +72 -0
  108. package/src/shade/renderer/light/world_cluster/WORLD_LIGHT_CLUSTER.d.ts +39 -0
  109. package/src/shade/renderer/light/world_cluster/WORLD_LIGHT_CLUSTER.d.ts.map +1 -0
  110. package/src/shade/renderer/light/world_cluster/WORLD_LIGHT_CLUSTER.js +90 -0
  111. package/src/shade/renderer/light/world_cluster/chunk_world_light_cluster_lookup.d.ts +12 -0
  112. package/src/shade/renderer/light/world_cluster/chunk_world_light_cluster_lookup.d.ts.map +1 -0
  113. package/src/shade/renderer/light/world_cluster/chunk_world_light_cluster_lookup.js +56 -0
  114. package/src/shade/renderer/light/world_cluster/graph_build_world_light_clusters.d.ts +31 -0
  115. package/src/shade/renderer/light/world_cluster/graph_build_world_light_clusters.d.ts.map +1 -0
  116. package/src/shade/renderer/light/world_cluster/graph_build_world_light_clusters.js +196 -0
  117. package/src/shade/renderer/light/world_cluster/shader_world_cluster_assign_lights.d.ts +10 -0
  118. package/src/shade/renderer/light/world_cluster/shader_world_cluster_assign_lights.d.ts.map +1 -0
  119. package/src/shade/renderer/light/world_cluster/shader_world_cluster_assign_lights.js +163 -0
  120. package/src/shade/renderer/light/world_cluster/shader_world_cluster_cull_lights.d.ts +4 -0
  121. package/src/shade/renderer/light/world_cluster/shader_world_cluster_cull_lights.d.ts.map +1 -0
  122. package/src/shade/renderer/light/world_cluster/shader_world_cluster_cull_lights.js +137 -0
  123. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +1 -1
  124. package/src/shade/renderer/particles/GPUParticleSystem.d.ts.map +1 -1
  125. package/src/shade/renderer/particles/GPUParticleSystem.js +4 -3
  126. package/src/shade/renderer/particles/graph_particles_avboit.d.ts +4 -3
  127. package/src/shade/renderer/particles/graph_particles_avboit.d.ts.map +1 -1
  128. package/src/shade/renderer/particles/graph_particles_avboit.js +28 -11
  129. package/src/shade/renderer/particles/shaders/chunk_particle_lighting.d.ts +9 -13
  130. package/src/shade/renderer/particles/shaders/chunk_particle_lighting.d.ts.map +1 -1
  131. package/src/shade/renderer/particles/shaders/chunk_particle_lighting.js +25 -20
  132. package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.d.ts.map +1 -1
  133. package/src/shade/renderer/particles/shaders/shader_particle_avboit_draw.js +21 -38
  134. package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
  135. package/src/shade/renderer/shader/chunk/depth/chunk_query_depth_from_screen_space_bb.d.ts.map +1 -1
  136. package/src/shade/renderer/shader/chunk/depth/chunk_query_depth_from_screen_space_bb.js +62 -62
  137. package/src/shade/renderer/shader/chunk/random/lowbias/chunk_hash_lowbias32_vec2u.d.ts +6 -0
  138. package/src/shade/renderer/shader/chunk/random/lowbias/chunk_hash_lowbias32_vec2u.d.ts.map +1 -0
  139. package/src/shade/renderer/shader/chunk/random/lowbias/chunk_hash_lowbias32_vec2u.js +19 -0
  140. package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_get_mip_resolution.d.ts.map +1 -1
  141. package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_get_mip_resolution.js +16 -10
  142. package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_hierarchical_raymarch.d.ts.map +1 -1
  143. package/src/shade/renderer/shader/chunk/screen_space/chunk_ffx_sssr_hierarchical_raymarch.js +118 -117
  144. package/src/shade/renderer/texture/atlas/GPUTileAtlas3D.d.ts +41 -7
  145. package/src/shade/renderer/texture/atlas/GPUTileAtlas3D.d.ts.map +1 -1
  146. package/src/shade/renderer/texture/atlas/GPUTileAtlas3D.js +162 -58
  147. package/src/shade/renderer/volumetrics/GPUSceneVolumetrics.js +1 -1
  148. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts +10 -12
  149. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts.map +1 -1
  150. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +583 -606
  151. package/src/shade/renderer/volumetrics/chunk_volumetrics_froxel_sample.d.ts +24 -0
  152. package/src/shade/renderer/volumetrics/chunk_volumetrics_froxel_sample.d.ts.map +1 -0
  153. package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi_sample.d.ts.map +1 -1
  154. package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts +1 -1
  155. package/src/shade/renderer/volumetrics/graph_build_volumetrics.js +640 -640
  156. package/src/shade/renderer/volumetrics/irradiance_clipmap/GPUIrradianceClipmap.d.ts +113 -0
  157. package/src/shade/renderer/volumetrics/irradiance_clipmap/GPUIrradianceClipmap.d.ts.map +1 -0
  158. package/src/shade/renderer/volumetrics/irradiance_clipmap/GPUIrradianceClipmap.js +484 -0
  159. package/src/shade/renderer/volumetrics/irradiance_clipmap/IRRADIANCE_CLIPMAP.d.ts +50 -0
  160. package/src/shade/renderer/volumetrics/irradiance_clipmap/IRRADIANCE_CLIPMAP.d.ts.map +1 -0
  161. package/src/shade/renderer/volumetrics/irradiance_clipmap/IRRADIANCE_CLIPMAP.js +60 -0
  162. package/src/shade/renderer/volumetrics/irradiance_clipmap/IRRADIANCE_CLIPMAP_STRUCT.d.ts +25 -0
  163. package/src/shade/renderer/volumetrics/irradiance_clipmap/IRRADIANCE_CLIPMAP_STRUCT.d.ts.map +1 -0
  164. package/src/shade/renderer/volumetrics/irradiance_clipmap/IRRADIANCE_CLIPMAP_STRUCT.js +47 -0
  165. package/src/shade/renderer/volumetrics/irradiance_clipmap/IrradianceCascadePlacement.d.ts +74 -0
  166. package/src/shade/renderer/volumetrics/irradiance_clipmap/IrradianceCascadePlacement.d.ts.map +1 -0
  167. package/src/shade/renderer/volumetrics/irradiance_clipmap/IrradianceCascadePlacement.js +173 -0
  168. package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_gi_sample.d.ts +26 -0
  169. package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_gi_sample.d.ts.map +1 -0
  170. package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_gi_sample.js +83 -0
  171. package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_local_light.d.ts +31 -0
  172. package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_local_light.d.ts.map +1 -0
  173. package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_local_light.js +113 -0
  174. package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_sample.d.ts +121 -0
  175. package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_sample.d.ts.map +1 -0
  176. package/src/shade/renderer/volumetrics/irradiance_clipmap/chunk_irradiance_clipmap_sample.js +356 -0
  177. package/src/shade/renderer/volumetrics/irradiance_clipmap/shader_irradiance_clipmap_build.d.ts +16 -0
  178. package/src/shade/renderer/volumetrics/irradiance_clipmap/shader_irradiance_clipmap_build.d.ts.map +1 -0
  179. package/src/shade/renderer/volumetrics/irradiance_clipmap/shader_irradiance_clipmap_build.js +191 -0
  180. package/src/shade/renderer/volumetrics/shader_volumetrics_classify_froxels.d.ts +16 -0
  181. package/src/shade/renderer/volumetrics/shader_volumetrics_classify_froxels.d.ts.map +1 -0
  182. package/src/shade/renderer/volumetrics/shader_volumetrics_lighting_regimes.d.ts +23 -0
  183. package/src/shade/renderer/volumetrics/shader_volumetrics_lighting_regimes.d.ts.map +1 -0
  184. package/src/shade/renderer/wind/GPUSceneWind.d.ts +1 -1
  185. package/src/shade/renderer/wind/GPUSceneWind.js +1 -1
  186. package/src/engine/graphics3/decal/DecalAtlasFill.js +0 -32
  187. package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_froxel_centre_ws.js +0 -49
  188. package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi.js +0 -50
  189. package/src/shade/renderer/volumetrics/gi/chunk_volumetrics_gi_sample.js +0 -105
  190. package/src/shade/renderer/volumetrics/gi/graph_build_froxel_gi.js +0 -80
  191. package/src/shade/renderer/volumetrics/gi/shader_volumetrics_gi.js +0 -51
  192. package/src/shade/renderer/volumetrics/gi/volumetrics_gi_resources.js +0 -39
  193. package/src/shade/renderer/volumetrics/graph_build_froxel_irradiance.js +0 -121
  194. package/src/shade/renderer/volumetrics/shader_volumetrics_build_irradiance.js +0 -237
@@ -66,11 +66,11 @@ export class FluidObstacleSystem extends System<any> {
66
66
  /**
67
67
  * @param {FluidComponent} fluid
68
68
  */
69
- static "__#464@#refresh_masks"(fluid: FluidComponent): void;
69
+ static "__#467@#refresh_masks"(fluid: FluidComponent): void;
70
70
  /**
71
71
  * @param {FluidComponent} fluid
72
72
  */
73
- static "__#464@#clear_field"(fluid: FluidComponent): void;
73
+ static "__#467@#clear_field"(fluid: FluidComponent): void;
74
74
  /**
75
75
  * Mark every cell of `fluid` whose centre lies within `inflation` of the
76
76
  * posed shape as solid. Iteration is clipped to the shape's world AABB
@@ -82,7 +82,7 @@ export class FluidObstacleSystem extends System<any> {
82
82
  * @param {number} inflation world-units SDF threshold
83
83
  * @param {Float64Array} point length-3 scratch
84
84
  */
85
- static "__#464@#voxelize"(fluid: FluidComponent, posed: PosedShape3D, aabb: Float64Array, inflation: number, point: Float64Array): void;
85
+ static "__#467@#voxelize"(fluid: FluidComponent, posed: PosedShape3D, aabb: Float64Array, inflation: number, point: Float64Array): void;
86
86
  /**
87
87
  * Write the obstacle's translation velocity onto every face of every cell
88
88
  * it voxelized — the moving-wall boundary condition. Runs AFTER the mask
@@ -102,7 +102,7 @@ export class FluidObstacleSystem extends System<any> {
102
102
  * @param {number} wvy
103
103
  * @param {number} wvz
104
104
  */
105
- static "__#464@#stamp_wall_velocity"(fluid: FluidComponent, posed: PosedShape3D, aabb: Float64Array, inflation: number, point: Float64Array, wvx: number, wvy: number, wvz: number): void;
105
+ static "__#467@#stamp_wall_velocity"(fluid: FluidComponent, posed: PosedShape3D, aabb: Float64Array, inflation: number, point: Float64Array, wvx: number, wvy: number, wvz: number): void;
106
106
  constructor();
107
107
  dependencies: (typeof FluidObstacle)[];
108
108
  components_used: (ResourceAccessSpecification<typeof Transform64> | ResourceAccessSpecification<typeof FluidObstacle> | ResourceAccessSpecification<typeof Collider> | ResourceAccessSpecification<typeof RigidBody> | ResourceAccessSpecification<typeof FluidComponent>)[];
@@ -239,7 +239,8 @@ src/generation/foliage/
239
239
  config/
240
240
  CrownEnvelopeType.js
241
241
  PhyllotaxisMode.js
242
- FoliageCardType.js
242
+ FoliageCardType.js
243
+ FoliageBarkType.js
243
244
  TreePreset.js
244
245
  BranchLevelConfig.js
245
246
  CrownConfig.js
@@ -13,10 +13,10 @@ export class BarkMaterialConfig {
13
13
  */
14
14
  resolution: number;
15
15
  /**
16
- * Botanical bark pattern archetype (`"fissured"` | `"birch"` | `"plated"` | `"ringed"`).
17
- * @type {string}
16
+ * Botanical bark pattern archetype.
17
+ * @type {FoliageBarkType|number}
18
18
  */
19
- bark_type: string;
19
+ bark_type: FoliageBarkType | number;
20
20
  /**
21
21
  * Outer bark ridge / periderm color (sRGB).
22
22
  * @type {Color}
@@ -116,5 +116,6 @@ export class BarkMaterialConfig {
116
116
  */
117
117
  readonly isBarkMaterialConfig: boolean;
118
118
  }
119
+ import { FoliageBarkType } from "./FoliageBarkType.js";
119
120
  import { Color } from "../../../core/color/Color.js";
120
121
  //# sourceMappingURL=BarkMaterialConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BarkMaterialConfig.d.ts","sourceRoot":"","sources":["../../../../../src/generation/foliage/config/BarkMaterialConfig.js"],"names":[],"mappings":"AAMA;;GAEG;AACH;IAiGI;;;OAGG;IACH,sBAHW,QAAQ,kBAAkB,CAAC,GACzB,kBAAkB,CAM9B;IAxGD;;;OAGG;IACH,YAFU,MAAM,CAEC;IAEjB;;;OAGG;IACH,WAFU,MAAM,CAEO;IAEvB;;;OAGG;IACH,eAFU,KAAK,CAEkC;IAEjD;;;OAGG;IACH,iBAFU,KAAK,CAEoC;IAEnD;;;OAGG;IACH,kBAFU,KAAK,CAEqC;IAEpD;;;OAGG;IACH,YAFU,KAAK,CAE+B;IAE9C;;;OAGG;IACH,aAFU,MAAM,CAEG;IAEnB;;;OAGG;IACH,mBAFU,MAAM,CAEM;IAEtB;;;OAGG;IACH,eAFU,MAAM,CAEK;IAErB;;;OAGG;IACH,iBAFU,MAAM,CAEM;IAEtB;;;OAGG;IACH,aAFU,MAAM,CAEG;IAEnB;;;OAGG;IACH,eAFU,MAAM,CAEK;IAErB;;;OAGG;IACH,aAFU,MAAM,CAEG;IAEnB;;;OAGG;IACH,WAFU,MAAM,CAEC;IAEjB;;;OAGG;IACH,eAFU,MAAM,CAEI;IAEpB;;;OAGG;IACH,UAFU,MAAM,CAEA;IAYhB;;;OAGG;IACH,2BAHW,QAAQ,kBAAkB,CAAC,GACzB,IAAI,CA+ChB;IAED;;;OAGG;IACH,YAHW,kBAAkB,GAChB,IAAI,CAqBhB;IAED;;OAEG;IACH,SAFa,kBAAkB,CAM9B;IAED;;;OAGG;IACH,cAHW,kBAAkB,GAChB,OAAO,CAqBnB;IAED;;OAEG;IACH,QAFa,MAAM,CAelB;IAGL;;;OAGG;IACH,+BAFU,OAAO,CAEgC;CANhD;sBAlPqB,8BAA8B"}
1
+ {"version":3,"file":"BarkMaterialConfig.d.ts","sourceRoot":"","sources":["../../../../../src/generation/foliage/config/BarkMaterialConfig.js"],"names":[],"mappings":"AAMA;;GAEG;AACH;IAiGI;;;OAGG;IACH,sBAHW,QAAQ,kBAAkB,CAAC,GACzB,kBAAkB,CAM9B;IAxGD;;;OAGG;IACH,YAFU,MAAM,CAEC;IAEjB;;;OAGG;IACH,WAFU,eAAe,GAAC,MAAM,CAEK;IAErC;;;OAGG;IACH,eAFU,KAAK,CAEkC;IAEjD;;;OAGG;IACH,iBAFU,KAAK,CAEoC;IAEnD;;;OAGG;IACH,kBAFU,KAAK,CAEqC;IAEpD;;;OAGG;IACH,YAFU,KAAK,CAE+B;IAE9C;;;OAGG;IACH,aAFU,MAAM,CAEG;IAEnB;;;OAGG;IACH,mBAFU,MAAM,CAEM;IAEtB;;;OAGG;IACH,eAFU,MAAM,CAEK;IAErB;;;OAGG;IACH,iBAFU,MAAM,CAEM;IAEtB;;;OAGG;IACH,aAFU,MAAM,CAEG;IAEnB;;;OAGG;IACH,eAFU,MAAM,CAEK;IAErB;;;OAGG;IACH,aAFU,MAAM,CAEG;IAEnB;;;OAGG;IACH,WAFU,MAAM,CAEC;IAEjB;;;OAGG;IACH,eAFU,MAAM,CAEI;IAEpB;;;OAGG;IACH,UAFU,MAAM,CAEA;IAYhB;;;OAGG;IACH,2BAHW,QAAQ,kBAAkB,CAAC,GACzB,IAAI,CA+ChB;IAED;;;OAGG;IACH,YAHW,kBAAkB,GAChB,IAAI,CAqBhB;IAED;;OAEG;IACH,SAFa,kBAAkB,CAM9B;IAED;;;OAGG;IACH,cAHW,kBAAkB,GAChB,OAAO,CAqBnB;IAED;;OAEG;IACH,QAFa,MAAM,CAelB;IAGL;;;OAGG;IACH,+BAFU,OAAO,CAEgC;CANhD;gCA/O+B,sBAAsB;sBAHhC,8BAA8B"}
@@ -2,7 +2,7 @@ import { assert } from "../../../core/assert.js";
2
2
  import { Color } from "../../../core/color/Color.js";
3
3
  import { hash_mix2 } from "../../../core/math/hash/hash_mix2.js";
4
4
  import { computeHashFloat } from "../../../core/primitives/numbers/computeHashFloat.js";
5
- import { computeStringHash } from "../../../core/primitives/strings/computeStringHash.js";
5
+ import { FoliageBarkType } from "./FoliageBarkType.js";
6
6
 
7
7
  /**
8
8
  * Procedural bark PBR material & UV tiling configuration.
@@ -15,10 +15,10 @@ export class BarkMaterialConfig {
15
15
  resolution = 256;
16
16
 
17
17
  /**
18
- * Botanical bark pattern archetype (`"fissured"` | `"birch"` | `"plated"` | `"ringed"`).
19
- * @type {string}
18
+ * Botanical bark pattern archetype.
19
+ * @type {FoliageBarkType|number}
20
20
  */
21
- bark_type = "fissured";
21
+ bark_type = FoliageBarkType.Fissured;
22
22
 
23
23
  /**
24
24
  * Outer bark ridge / periderm color (sRGB).
@@ -123,7 +123,7 @@ export class BarkMaterialConfig {
123
123
  return this;
124
124
  }
125
125
  if (overrides.resolution !== undefined) this.resolution = Math.max(16, overrides.resolution | 0);
126
- if (overrides.bark_type !== undefined) this.bark_type = String(overrides.bark_type);
126
+ if (overrides.bark_type !== undefined) this.bark_type = overrides.bark_type;
127
127
  if (overrides.primary_color !== undefined) {
128
128
  if (Array.isArray(overrides.primary_color)) {
129
129
  this.primary_color.setRGB(overrides.primary_color[0], overrides.primary_color[1], overrides.primary_color[2]);
@@ -228,7 +228,7 @@ export class BarkMaterialConfig {
228
228
  * @returns {number}
229
229
  */
230
230
  hash() {
231
- let h = hash_mix2(this.resolution, computeStringHash(this.bark_type));
231
+ let h = hash_mix2(this.resolution, this.bark_type);
232
232
  h = hash_mix2(h, this.primary_color.hash());
233
233
  h = hash_mix2(h, this.secondary_color.hash());
234
234
  h = hash_mix2(h, this.inner_bark_color.hash());
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Botanical bark surface pattern archetypes for procedural bark synthesis and relief.
3
+ */
4
+ export type FoliageBarkType = number;
5
+ export namespace FoliageBarkType {
6
+ let Fissured: number;
7
+ let Birch: number;
8
+ let Plated: number;
9
+ let Ringed: number;
10
+ }
11
+ //# sourceMappingURL=FoliageBarkType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FoliageBarkType.d.ts","sourceRoot":"","sources":["../../../../../src/generation/foliage/config/FoliageBarkType.js"],"names":[],"mappings":";;;8BAIU,MAAM"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Botanical bark surface pattern archetypes for procedural bark synthesis and relief.
3
+ *
4
+ * @readonly
5
+ * @enum {number}
6
+ */
7
+ export const FoliageBarkType = {
8
+ /** Braided vertical ridges and cellular fissures (oak, willow, maple default) */
9
+ Fissured: 0,
10
+ /** Chalk-white periderm with horizontal lenticel dashes, peeling strips, and basal rupture skirt (birch) */
11
+ Birch: 1,
12
+ /** Ragged exfoliating stepped conifer scale plates (pine, spruce) */
13
+ Plated: 2,
14
+ /** Horizontal leaf-scar rings and fibrous trunk weave (palm, shrub, fern) */
15
+ Ringed: 3,
16
+ };
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Procedural foliage cluster PBR material & silhouette synthesis configuration.
2
+ * Procedural foliage cluster PBR material, ontogenetic variant atlas, & biochemical senescence configuration.
3
3
  */
4
4
  export class FoliageMaterialConfig {
5
5
  /**
@@ -8,22 +8,23 @@ export class FoliageMaterialConfig {
8
8
  */
9
9
  static from(options?: Partial<FoliageMaterialConfig>): FoliageMaterialConfig;
10
10
  /**
11
- * Procedural texture resolution (pixels, power of two).
11
+ * Procedural per-variant tile resolution (pixels, power of two).
12
12
  * @type {number}
13
13
  */
14
14
  resolution: number;
15
15
  /**
16
- * Sun-facing leaf lamina color (sRGB).
16
+ * Mature sun-facing leaf lamina color (sRGB).
17
17
  * @type {Color}
18
18
  */
19
19
  primary_color: Color;
20
20
  /**
21
- * Vein / young tip / secondary leaf color (sRGB).
21
+ * Vein / secondary leaf color (sRGB).
22
22
  * @type {Color}
23
23
  */
24
24
  secondary_color: Color;
25
25
  /**
26
- * Autumn / golden-red shift factor [0, 1].
26
+ * Legacy / convenience autumn shift factor [0, 1].
27
+ * Acts as a lower bound on `senescence` when non-zero for backwards compatibility.
27
28
  * @type {number}
28
29
  */
29
30
  autumn_tint: number;
@@ -57,6 +58,58 @@ export class FoliageMaterialConfig {
57
58
  * @type {number}
58
59
  */
59
60
  stem_anchor_v: number;
61
+ /**
62
+ * Number of ontogenetic foliage card variants packed into the material atlas [1, 16].
63
+ * Variant 0 represents newly flushed juvenile apical leaves; Variant `variant_count - 1`
64
+ * represents fully mature (or most senescent) basal/interior leaves.
65
+ * @type {number}
66
+ */
67
+ variant_count: number;
68
+ /**
69
+ * Juvenile-to-mature chlorophyll-lag lightening & yellow-green/chartreuse shift [0, 1].
70
+ * @type {number}
71
+ */
72
+ juvenile_color_shift: number;
73
+ /**
74
+ * Transient epidermal anthocyanin bronze/reddish margin flush on newly emerging juvenile leaves [0, 1].
75
+ * @type {number}
76
+ */
77
+ juvenile_anthocyanin: number;
78
+ /**
79
+ * Juvenile-to-mature leaflet aspect ratio, lobe/tooth incision depth, and lateral spread progression [0, 1].
80
+ * @type {number}
81
+ */
82
+ ontogeny_shape_variation: number;
83
+ /**
84
+ * Juvenile-to-mature vascular venation relief, interveinal bullation, stem lignification, and cuticle roughness progression [0, 1].
85
+ * @type {number}
86
+ */
87
+ ontogeny_vein_contrast: number;
88
+ /**
89
+ * Seasonal chlorophyll catabolism (autumn senescence) stage [0, 1].
90
+ * Governed by photoperiod/temperature breakdown of chlorophyll a/b, which unmasks plastid carotenoids,
91
+ * triggers photoprotective vacuolar anthocyanin synthesis in sunlit leaves, and oxidizes foliar tannins.
92
+ * @type {number}
93
+ */
94
+ senescence: number;
95
+ /**
96
+ * Foliar xanthophyll & beta-carotene concentration [0, 1] unmasked as chlorophyll degrades
97
+ * (drives vivid golden-yellow autumn coloration in Birch, Willow, Aspen, Ginkgo, Maple).
98
+ * @type {number}
99
+ */
100
+ carotenoid_density: number;
101
+ /**
102
+ * Species genetic potential [0, 1] for de novo vacuolar anthocyanin synthesis under high solar
103
+ * irradiance and carbohydrate accumulation during senescence (drives scarlet/crimson in Maple & Oak).
104
+ * @type {number}
105
+ */
106
+ anthocyanin_potential: number;
107
+ /**
108
+ * Foliar condensed tannin / polyphenol oxidation rate [0, 1] into russet/copper-brown during late senescence
109
+ * (high in Oak, low in Birch/Maple).
110
+ * @type {number}
111
+ */
112
+ tannin_oxidation: number;
60
113
  /**
61
114
  * @param {Partial<FoliageMaterialConfig>} [overrides]
62
115
  * @returns {this}
@@ -1 +1 @@
1
- {"version":3,"file":"FoliageMaterialConfig.d.ts","sourceRoot":"","sources":["../../../../../src/generation/foliage/config/FoliageMaterialConfig.js"],"names":[],"mappings":"AAMA;;GAEG;AACH;IA6DI;;;OAGG;IACH,sBAHW,QAAQ,qBAAqB,CAAC,GAC5B,qBAAqB,CAMjC;IApED;;;OAGG;IACH,YAFU,MAAM,CAEC;IAEjB;;;OAGG;IACH,eAFU,KAAK,CAEkC;IAEjD;;;OAGG;IACH,iBAFU,KAAK,CAEoC;IAEnD;;;OAGG;IACH,aAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,YAFU,MAAM,CAEK;IAErB;;;OAGG;IACH,sBAFU,MAAM,CAES;IAEzB;;;OAGG;IACH,WAFU,MAAM,CAEC;IAEjB;;;OAGG;IACH,eAFU,MAAM,CAEI;IAEpB;;;OAGG;IACH,eAFU,MAAM,CAEI;IAEpB;;;OAGG;IACH,eAFU,MAAM,CAEI;IAYpB;;;OAGG;IACH,2BAHW,QAAQ,qBAAqB,CAAC,GAC5B,IAAI,CA6BhB;IAED;;;OAGG;IACH,YAHW,qBAAqB,GACnB,IAAI,CAehB;IAED;;OAEG;IACH,SAFa,qBAAqB,CAMjC;IAED;;;OAGG;IACH,cAHW,qBAAqB,GACnB,OAAO,CAenB;IAED;;OAEG;IACH,QAFa,MAAM,CAYlB;IAGL;;;OAGG;IACH,kCAFU,OAAO,CAEsC;CANtD;sBA7KqB,8BAA8B"}
1
+ {"version":3,"file":"FoliageMaterialConfig.d.ts","sourceRoot":"","sources":["../../../../../src/generation/foliage/config/FoliageMaterialConfig.js"],"names":[],"mappings":"AAMA;;GAEG;AACH;IA2HC;;;OAGG;IACH,sBAHW,QAAQ,qBAAqB,CAAC,GAC5B,qBAAqB,CAMjC;IAlID;;;OAGG;IACH,YAFU,MAAM,CAEC;IAEjB;;;OAGG;IACH,eAFU,KAAK,CAEkC;IAEjD;;;OAGG;IACH,iBAFU,KAAK,CAEoC;IAEnD;;;;OAIG;IACH,aAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,YAFU,MAAM,CAEK;IAErB;;;OAGG;IACH,sBAFU,MAAM,CAES;IAEzB;;;OAGG;IACH,WAFU,MAAM,CAEC;IAEjB;;;OAGG;IACH,eAFU,MAAM,CAEI;IAEpB;;;OAGG;IACH,eAFU,MAAM,CAEI;IAEpB;;;OAGG;IACH,eAFU,MAAM,CAEI;IAEpB;;;;;OAKG;IACH,eAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,sBAFU,MAAM,CAEY;IAE5B;;;OAGG;IACH,sBAFU,MAAM,CAEY;IAE5B;;;OAGG;IACH,0BAFU,MAAM,CAEgB;IAEhC;;;OAGG;IACH,wBAFU,MAAM,CAEc;IAE9B;;;;;OAKG;IACH,YAFU,MAAM,CAEC;IAEjB;;;;OAIG;IACH,oBAFU,MAAM,CAEU;IAE1B;;;;OAIG;IACH,uBAFU,MAAM,CAEa;IAE7B;;;;OAIG;IACH,kBAFU,MAAM,CAEQ;IAYxB;;;OAGG;IACH,2BAHW,QAAQ,qBAAqB,CAAC,GAC5B,IAAI,CAsChB;IAED;;;OAGG;IACH,YAHW,qBAAqB,GACnB,IAAI,CAwBhB;IAED;;OAEG;IACH,SAFa,qBAAqB,CAMjC;IAED;;;OAGG;IACH,cAHW,qBAAqB,GACnB,OAAO,CAwBnB;IAED;;OAEG;IACH,QAFa,MAAM,CAqBlB;IAGF;;;OAGG;IACH,kCAFU,OAAO,CAEsC;CANtD;sBA/QqB,8BAA8B"}