@3driseai/3drise-core 1.0.21 → 1.0.23

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 (179) hide show
  1. package/dist/autoAnimate/composer.d.ts +6 -0
  2. package/dist/autoAnimate/composer.d.ts.map +1 -1
  3. package/dist/autoAnimate/composer.js +4 -3
  4. package/dist/autoAnimate/describeScene.js +1 -1
  5. package/dist/catalog/catalogInfo.d.ts +22 -0
  6. package/dist/catalog/catalogInfo.d.ts.map +1 -0
  7. package/dist/catalog/catalogInfo.js +204 -0
  8. package/dist/catalog/index.d.ts +3 -0
  9. package/dist/catalog/index.d.ts.map +1 -0
  10. package/dist/catalog/index.js +2 -0
  11. package/dist/catalog/objectCatalog.d.ts +33 -0
  12. package/dist/catalog/objectCatalog.d.ts.map +1 -0
  13. package/dist/catalog/objectCatalog.js +94 -0
  14. package/dist/data/allMaterials.js +2 -2
  15. package/dist/data/defaults.d.ts +0 -12
  16. package/dist/data/defaults.d.ts.map +1 -1
  17. package/dist/data/defaults.js +0 -12
  18. package/dist/data/environmentDefaults.d.ts +10 -0
  19. package/dist/data/environmentDefaults.d.ts.map +1 -0
  20. package/dist/data/environmentDefaults.js +126 -0
  21. package/dist/data/gridsDefaults.d.ts +2 -0
  22. package/dist/data/gridsDefaults.d.ts.map +1 -1
  23. package/dist/data/gridsDefaults.js +57 -0
  24. package/dist/data/index.d.ts +4 -0
  25. package/dist/data/index.d.ts.map +1 -1
  26. package/dist/data/index.js +4 -0
  27. package/dist/data/landDefaults.d.ts +26 -0
  28. package/dist/data/landDefaults.d.ts.map +1 -0
  29. package/dist/data/landDefaults.js +76 -0
  30. package/dist/data/spaceDefaults.d.ts +10 -0
  31. package/dist/data/spaceDefaults.d.ts.map +1 -0
  32. package/dist/data/spaceDefaults.js +46 -0
  33. package/dist/data/textDefaults.d.ts +16 -0
  34. package/dist/data/textDefaults.d.ts.map +1 -0
  35. package/dist/data/textDefaults.js +219 -0
  36. package/dist/environment/oceanConfigs.d.ts +5 -4
  37. package/dist/environment/oceanConfigs.d.ts.map +1 -1
  38. package/dist/environment/oceanConfigs.js +2 -2
  39. package/dist/environment/terrainConfigs.d.ts +78 -0
  40. package/dist/environment/terrainConfigs.d.ts.map +1 -1
  41. package/dist/environment/terrainConfigs.js +72 -2
  42. package/dist/index.d.ts +3 -1
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +3 -1
  45. package/dist/properties/registry.d.ts +15 -1
  46. package/dist/properties/registry.d.ts.map +1 -1
  47. package/dist/properties/registry.js +99 -13
  48. package/dist/properties/tables/environmentProperties.d.ts +9 -0
  49. package/dist/properties/tables/environmentProperties.d.ts.map +1 -0
  50. package/dist/properties/tables/environmentProperties.js +127 -0
  51. package/dist/properties/tables/geometryProperties.d.ts +7 -0
  52. package/dist/properties/tables/geometryProperties.d.ts.map +1 -1
  53. package/dist/properties/tables/geometryProperties.js +9 -1
  54. package/dist/properties/tables/gridProperties.d.ts.map +1 -1
  55. package/dist/properties/tables/gridProperties.js +117 -93
  56. package/dist/properties/tables/index.d.ts +4 -0
  57. package/dist/properties/tables/index.d.ts.map +1 -1
  58. package/dist/properties/tables/index.js +4 -0
  59. package/dist/properties/tables/landProperties.d.ts +5 -0
  60. package/dist/properties/tables/landProperties.d.ts.map +1 -0
  61. package/dist/properties/tables/landProperties.js +24 -0
  62. package/dist/properties/tables/optionalProperties.d.ts +1 -2
  63. package/dist/properties/tables/optionalProperties.d.ts.map +1 -1
  64. package/dist/properties/tables/optionalProperties.js +22 -0
  65. package/dist/properties/tables/spaceProperties.d.ts +8 -0
  66. package/dist/properties/tables/spaceProperties.d.ts.map +1 -0
  67. package/dist/properties/tables/spaceProperties.js +42 -0
  68. package/dist/properties/tables/textProperties.d.ts +4 -0
  69. package/dist/properties/tables/textProperties.d.ts.map +1 -0
  70. package/dist/properties/tables/textProperties.js +387 -0
  71. package/dist/properties/types.d.ts +1 -1
  72. package/dist/properties/types.d.ts.map +1 -1
  73. package/dist/services/MaterialRegistry.d.ts.map +1 -1
  74. package/dist/services/MaterialRegistry.js +2 -0
  75. package/dist/services/SceneActions.d.ts +9 -0
  76. package/dist/services/SceneActions.d.ts.map +1 -1
  77. package/dist/services/SceneActions.js +30 -0
  78. package/dist/services/SkySystemManager.d.ts +22 -0
  79. package/dist/services/SkySystemManager.d.ts.map +1 -1
  80. package/dist/services/SkySystemManager.js +50 -18
  81. package/dist/services/TextureResolver.d.ts.map +1 -1
  82. package/dist/services/TextureResolver.js +22 -0
  83. package/dist/services/index.d.ts +1 -1
  84. package/dist/services/index.d.ts.map +1 -1
  85. package/dist/services/index.js +1 -1
  86. package/dist/shaders/SkyboxMaterial.js +3 -3
  87. package/dist/shaders/StarsMaterial.d.ts +5 -0
  88. package/dist/shaders/StarsMaterial.d.ts.map +1 -1
  89. package/dist/shaders/StarsMaterial.js +59 -57
  90. package/dist/three/LetterV.d.ts +7 -1
  91. package/dist/three/LetterV.d.ts.map +1 -1
  92. package/dist/three/Text2DV.d.ts +7 -1
  93. package/dist/three/Text2DV.d.ts.map +1 -1
  94. package/dist/three/Text3DV.d.ts +7 -1
  95. package/dist/three/Text3DV.d.ts.map +1 -1
  96. package/dist/types/actions.d.ts +6 -6
  97. package/dist/types/actions.d.ts.map +1 -1
  98. package/dist/types/commands.d.ts +61 -0
  99. package/dist/types/commands.d.ts.map +1 -0
  100. package/dist/types/commands.js +1 -0
  101. package/dist/types/environment.d.ts +34 -1
  102. package/dist/types/environment.d.ts.map +1 -1
  103. package/dist/types/environment.js +15 -0
  104. package/dist/types/environmentObjects.d.ts +152 -0
  105. package/dist/types/environmentObjects.d.ts.map +1 -0
  106. package/dist/types/environmentObjects.js +10 -0
  107. package/dist/types/index.d.ts +5 -2
  108. package/dist/types/index.d.ts.map +1 -1
  109. package/dist/types/landObjects.d.ts +15 -0
  110. package/dist/types/landObjects.d.ts.map +1 -0
  111. package/dist/types/landObjects.js +1 -0
  112. package/dist/types/objectSettings.d.ts +189 -16
  113. package/dist/types/objectSettings.d.ts.map +1 -1
  114. package/dist/types/objectsConfigs.d.ts +0 -3
  115. package/dist/types/objectsConfigs.d.ts.map +1 -1
  116. package/dist/types/scene3d.d.ts +12 -5
  117. package/dist/types/scene3d.d.ts.map +1 -1
  118. package/dist/types/spaceObjects.d.ts +65 -0
  119. package/dist/types/spaceObjects.d.ts.map +1 -0
  120. package/dist/types/spaceObjects.js +11 -0
  121. package/dist/types/textObjects.d.ts +371 -0
  122. package/dist/types/textObjects.d.ts.map +1 -0
  123. package/dist/types/textObjects.js +14 -0
  124. package/dist/types/types.d.ts +3 -6
  125. package/dist/types/types.d.ts.map +1 -1
  126. package/dist/types/users.d.ts +3 -1
  127. package/dist/types/users.d.ts.map +1 -1
  128. package/dist/types/users.js +2 -0
  129. package/dist/ui/index.d.ts +5 -0
  130. package/dist/ui/index.d.ts.map +1 -0
  131. package/dist/ui/index.js +4 -0
  132. package/dist/ui/uiBindings.d.ts +45 -0
  133. package/dist/ui/uiBindings.d.ts.map +1 -0
  134. package/dist/ui/uiBindings.js +172 -0
  135. package/dist/ui/uiKeys.d.ts +14 -0
  136. package/dist/ui/uiKeys.d.ts.map +1 -0
  137. package/dist/ui/uiKeys.js +22 -0
  138. package/dist/ui/uiSanitize.d.ts +18 -0
  139. package/dist/ui/uiSanitize.d.ts.map +1 -0
  140. package/dist/ui/uiSanitize.js +251 -0
  141. package/dist/ui/uiSpec.d.ts +116 -0
  142. package/dist/ui/uiSpec.d.ts.map +1 -0
  143. package/dist/ui/uiSpec.js +173 -0
  144. package/dist/utils/dataUtils.d.ts.map +1 -1
  145. package/dist/utils/dataUtils.js +0 -6
  146. package/dist/utils/environmentMigration.d.ts +3 -0
  147. package/dist/utils/environmentMigration.d.ts.map +1 -0
  148. package/dist/utils/environmentMigration.js +50 -0
  149. package/dist/utils/generativeAnimatable.d.ts +1 -1
  150. package/dist/utils/generativeAnimatable.d.ts.map +1 -1
  151. package/dist/utils/generativeAnimatable.js +12 -0
  152. package/dist/utils/getAnimatableProperties.d.ts +1 -1
  153. package/dist/utils/getAnimatableProperties.d.ts.map +1 -1
  154. package/dist/utils/getAnimatableProperties.js +1 -1
  155. package/dist/utils/gridMigration.d.ts +3 -0
  156. package/dist/utils/gridMigration.d.ts.map +1 -0
  157. package/dist/utils/gridMigration.js +34 -0
  158. package/dist/utils/index.d.ts +6 -0
  159. package/dist/utils/index.d.ts.map +1 -1
  160. package/dist/utils/index.js +6 -0
  161. package/dist/utils/objectEffects.d.ts +24 -2
  162. package/dist/utils/objectEffects.d.ts.map +1 -1
  163. package/dist/utils/objectEffects.js +28 -2
  164. package/dist/utils/objectMigration.d.ts +9 -0
  165. package/dist/utils/objectMigration.d.ts.map +1 -0
  166. package/dist/utils/objectMigration.js +13 -0
  167. package/dist/utils/skyPhase.d.ts +61 -0
  168. package/dist/utils/skyPhase.d.ts.map +1 -0
  169. package/dist/utils/skyPhase.js +93 -0
  170. package/dist/utils/spaceMigration.d.ts +3 -0
  171. package/dist/utils/spaceMigration.d.ts.map +1 -0
  172. package/dist/utils/spaceMigration.js +46 -0
  173. package/dist/utils/sunUtils.d.ts +26 -1
  174. package/dist/utils/sunUtils.d.ts.map +1 -1
  175. package/dist/utils/sunUtils.js +37 -6
  176. package/dist/utils/textMigration.d.ts +3 -0
  177. package/dist/utils/textMigration.d.ts.map +1 -0
  178. package/dist/utils/textMigration.js +56 -0
  179. package/package.json +1 -1
@@ -0,0 +1,219 @@
1
+ // =============================================================================
2
+ // TEXT OBJECTS — defaults, labels, animatable knobs
3
+ // =============================================================================
4
+ //
5
+ // The animatable list of each look is what its push point applies per frame
6
+ // (useTextObject -> the look's apply): the look's colours and numbers. Structural
7
+ // knobs (text, font, draw / erase methods, a look's detail count), switches and
8
+ // the playback timings are never listed.
9
+ //
10
+ export const DEFAULT_TEXT_OBJECTS = {
11
+ handwriting: { type: 'handwriting', shown: true, text: 'Hello, world', font: 'caveat', drawMethod: 'pen', drawDuration: 5, drawEase: 'easeInOut', drawStagger: 0.6, drawAngle: 0, eraseMethod: 'fade', eraseDuration: 2, eraseEase: 'easeInOut', eraseStagger: 0.6, eraseAngle: 0, autoPlay: true, loop: false, yoyo: false, holdTime: 2, hiddenTime: 0.5, color: '#efe6d2', color2: '#ffd9a0', weight: 1, wetTime: 1.1, sheen: 0.35, opacity: 1, penGlow: 1 },
12
+ neonTube: { type: 'neonTube', shown: true, text: 'Hello, world', font: 'caveat', drawMethod: 'trace', drawDuration: 5, drawEase: 'easeInOut', drawStagger: 0.6, drawAngle: 0, eraseMethod: 'undraw', eraseDuration: 2, eraseEase: 'easeInOut', eraseStagger: 0.6, eraseAngle: 0, autoPlay: true, loop: false, yoyo: false, holdTime: 2, hiddenTime: 0.5, color: '#ff2f9a', color2: '#ffd2ec', tube: 0.04, core: 0.22, glow: 1, flicker: 1, offLevel: 0.07, opacity: 1 },
13
+ fourierSketch: { type: 'fourierSketch', shown: true, text: 'Hello, world', font: 'caveat', drawMethod: 'epicycle', drawDuration: 5, drawEase: 'easeInOut', drawStagger: 0.6, drawAngle: 0, eraseMethod: 'fade', eraseDuration: 2, eraseEase: 'easeInOut', eraseStagger: 0.6, eraseAngle: 0, autoPlay: true, loop: false, yoyo: false, holdTime: 2, hiddenTime: 0.5, color: '#5fd0ff', color2: '#fff1c2', line: 0.03, terms: 96, circles: 1, trail: 0.9, bridges: 0.14, glint: 1, opacity: 1 },
14
+ frostGrowth: { type: 'frostGrowth', shown: true, text: 'Hello, world', font: 'caveat', drawMethod: 'grow', drawDuration: 6, drawEase: 'linear', drawStagger: 0.6, drawAngle: 0, eraseMethod: 'sublimate', eraseDuration: 3, eraseEase: 'linear', eraseStagger: 0.6, eraseAngle: 0, autoPlay: true, loop: false, yoyo: false, holdTime: 2, hiddenTime: 0.5, reach: 0.15, branching: 1, grains: 5, sparkle: 0.6, thickness: 1, seams: 0.75, haze: 0.5, seed: 7, color: '#d6edff', color2: '#4a90d4', opacity: 1 },
15
+ plasmaDischarge: { type: 'plasmaDischarge', shown: true, text: 'Hello, world', font: 'caveat', drawMethod: 'strike', drawDuration: 5, drawEase: 'easeInOut', drawStagger: 0.6, drawAngle: 0, eraseMethod: 'undraw', eraseDuration: 2, eraseEase: 'easeInOut', eraseStagger: 0.6, eraseAngle: 0, autoPlay: true, loop: false, yoyo: false, holdTime: 2, hiddenTime: 0.5, branches: 0.72, reach: 0.55, branchiness: 0.6, pulse: 0.8, glow: 1, spectrum: 0.5, core: 0.0065, color: '#6c3dff', color2: '#a9ceff', opacity: 1, seed: 7 },
16
+ burnAway: { type: 'burnAway', shown: true, text: 'Hello, world', font: 'caveat', drawMethod: 'trace', drawDuration: 5, drawEase: 'easeInOut', drawStagger: 0.6, drawAngle: 0, eraseMethod: 'burn', eraseDuration: 6, eraseEase: 'linear', eraseStagger: 0.6, eraseAngle: 0, autoPlay: true, loop: false, yoyo: false, holdTime: 2.5, hiddenTime: 0.5, color: '#efe2c4', color2: '#ff7a1c', char: 0.6, ashLace: 0.7, curl: 0.6, spread: 1, ember: 1, roughness: 0.6, singe: 0.55, opacity: 1, seed: 7 },
17
+ lightPainting: { type: 'lightPainting', shown: true, text: 'Hello, world', font: 'caveat', drawMethod: 'pen', drawDuration: 5, drawEase: 'easeInOut', drawStagger: 0.6, drawAngle: 0, eraseMethod: 'pen', eraseDuration: 2, eraseEase: 'easeInOut', eraseStagger: 0.6, eraseAngle: 0, autoPlay: true, loop: false, yoyo: false, holdTime: 2, hiddenTime: 0.5, exposure: 1, temperature: 3000, sparks: 110, spread: 0.7, bloom: 1, width: 0.012, strobe: 0, halation: 0.55, tremor: 0.5, color: '#ffe0b0', color2: '#ffffff', opacity: 1 },
18
+ constellation: { type: 'constellation', shown: true, text: 'Hello, world', font: 'caveat', drawMethod: 'pen', drawDuration: 5, drawEase: 'easeInOut', drawStagger: 0.6, drawAngle: 0, eraseMethod: 'undraw', eraseDuration: 2, eraseEase: 'easeInOut', eraseStagger: 0.6, eraseAngle: 0, autoPlay: true, loop: false, yoyo: false, holdTime: 2, hiddenTime: 0.5, stars: 5.5, brightness: 0, twinkle: 1, lines: 1, temperature: 0, seed: 7, color: '#7f9bd0', color2: '#dce8ff', opacity: 1 },
19
+ inkBleed: { type: 'inkBleed', shown: true, text: 'Hello, world', font: 'caveat', drawMethod: 'pen', drawDuration: 5, drawEase: 'easeInOut', drawStagger: 0.6, drawAngle: 0, eraseMethod: 'burn', eraseDuration: 6, eraseEase: 'linear', eraseStagger: 0.6, eraseAngle: 0, autoPlay: true, loop: false, yoyo: false, holdTime: 2.5, hiddenTime: 0.5, color: '#1b2d6a', color2: '#b0703c', bleed: 0.042, dryTime: 2.4, fibre: 0.7, pooling: 0.7, weight: 0.7, paper: 1, oxidation: 3.5, burn: 0.6, char: 0.6, spread: 1, opacity: 1 },
20
+ liquidMetal: { type: 'liquidMetal', shown: true, text: 'Hello, world', font: 'caveat', drawMethod: 'flow', drawDuration: 5, drawEase: 'easeInOut', drawStagger: 0.6, drawAngle: 0, eraseMethod: 'melt', eraseDuration: 4.5, eraseEase: 'linear', eraseStagger: 0.6, eraseAngle: 0, autoPlay: true, loop: false, yoyo: false, holdTime: 2, hiddenTime: 0.5, thickness: 0.06, roughness: 1, reflectivity: 0.8, environment: 1.15, tint: 0.7, rippleSpeed: 1, oxide: 0.4, spikes: 0, melt: 0.5, drips: 0.6, color: '#cdd5df', color2: '#f4f7ff', opacity: 1 },
21
+ embroidery: { type: 'embroidery', shown: true, text: 'Hello, world', font: 'caveat', drawMethod: 'stitch', drawDuration: 5, drawEase: 'easeInOut', drawStagger: 0.6, drawAngle: 0, eraseMethod: 'undraw', eraseDuration: 2, eraseEase: 'easeInOut', eraseStagger: 0.6, eraseAngle: 0, autoPlay: true, loop: false, yoyo: false, holdTime: 2, hiddenTime: 0.5, color: '#c92f48', color2: '#e8c47a', density: 44, slant: 66, thickness: 1.35, sheen: 1, relief: 1, outline: 0.65, fabric: 0.4, pucker: 0.6, style: 'auto', opacity: 1 },
22
+ chalkboard: { type: 'chalkboard', shown: true, text: 'Hello, world', font: 'caveat', drawMethod: 'pen', drawDuration: 5, drawEase: 'easeInOut', drawStagger: 0.6, drawAngle: 0, eraseMethod: 'smudge', eraseDuration: 2, eraseEase: 'easeInOut', eraseStagger: 0.6, eraseAngle: 0, autoPlay: true, loop: false, yoyo: false, holdTime: 2, hiddenTime: 0.5, pressure: 0.55, chatter: 0.6, grain: 0.55, weight: 1, dust: 0.6, ghost: 0.5, swing: 0.6, board: 0, opacity: 1, color: '#ebe6d8', color2: '#c4dcf2' },
23
+ plain: { type: 'plain', shown: true, text: 'Hello', font: 'inter', drawMethod: 'fade', drawDuration: 1.2, drawEase: 'easeInOut', drawStagger: 0.6, drawAngle: 0, eraseMethod: 'fade', eraseDuration: 0.8, eraseEase: 'easeInOut', eraseStagger: 0.6, eraseAngle: 0, autoPlay: true, loop: false, yoyo: false, holdTime: 2, hiddenTime: 0.5, color: '#ffffff', color2: '#111111', weight: 0, outline: 0, fill: 1, softness: 0, opacity: 1 },
24
+ };
25
+ export const TEXT_OBJECT_LABELS = {
26
+ handwriting: 'Handwriting',
27
+ neonTube: 'Neon Tube',
28
+ fourierSketch: 'Fourier Sketch',
29
+ frostGrowth: 'Frost Growth',
30
+ plasmaDischarge: 'Plasma Discharge',
31
+ burnAway: 'Burn Away',
32
+ lightPainting: 'Light Painting',
33
+ constellation: 'Constellation',
34
+ inkBleed: 'Ink Bleed',
35
+ liquidMetal: 'Liquid Metal',
36
+ embroidery: 'Embroidery',
37
+ chalkboard: 'Chalkboard',
38
+ plain: 'Plain',
39
+ };
40
+ export const TEXT_OBJECTS_ANIMATABLE = {
41
+ handwriting: [
42
+ { value: 'weight', label: 'Pen weight' },
43
+ { value: 'color', label: 'Ink' },
44
+ { value: 'color2', label: 'Wet ink' },
45
+ { value: 'wetTime', label: 'Drying time' },
46
+ { value: 'sheen', label: 'Sheen' },
47
+ { value: 'penGlow', label: 'Pen glow' },
48
+ { value: 'opacity', label: 'Opacity' },
49
+ ],
50
+ neonTube: [
51
+ { value: 'color', label: 'Tube colour' },
52
+ { value: 'glow', label: 'Glow' },
53
+ { value: 'tube', label: 'Tube thickness' },
54
+ { value: 'flicker', label: 'Flicker' },
55
+ { value: 'color2', label: 'Hot core' },
56
+ { value: 'core', label: 'Core width' },
57
+ { value: 'offLevel', label: 'Unlit glass' },
58
+ { value: 'opacity', label: 'Opacity' },
59
+ ],
60
+ fourierSketch: [
61
+ { value: 'color', label: 'Line colour' },
62
+ { value: 'circles', label: 'Circles' },
63
+ { value: 'glint', label: 'Glints' },
64
+ { value: 'color2', label: 'Hot colour' },
65
+ { value: 'line', label: 'Line width' },
66
+ { value: 'trail', label: 'Trail' },
67
+ { value: 'bridges', label: 'Bridges' },
68
+ { value: 'opacity', label: 'Opacity' },
69
+ ],
70
+ frostGrowth: [
71
+ { value: 'sparkle', label: 'Sparkle' },
72
+ { value: 'thickness', label: 'Thickness' },
73
+ { value: 'seams', label: 'Grain seams' },
74
+ { value: 'haze', label: 'Frost haze' },
75
+ { value: 'color', label: 'Ice' },
76
+ { value: 'color2', label: 'Deep ice' },
77
+ { value: 'opacity', label: 'Opacity' },
78
+ ],
79
+ plasmaDischarge: [
80
+ { value: 'branches', label: 'Branching' },
81
+ { value: 'reach', label: 'Reach' },
82
+ { value: 'glow', label: 'Glow' },
83
+ { value: 'pulse', label: 'Current pulses' },
84
+ { value: 'spectrum', label: 'Emission lines' },
85
+ { value: 'core', label: 'Core width' },
86
+ { value: 'color', label: 'Plasma' },
87
+ { value: 'color2', label: 'Hot core' },
88
+ { value: 'opacity', label: 'Opacity' },
89
+ ],
90
+ burnAway: [
91
+ { value: 'char', label: 'Char' },
92
+ { value: 'spread', label: 'Spread' },
93
+ { value: 'ember', label: 'Ember' },
94
+ { value: 'color', label: 'Paper' },
95
+ { value: 'color2', label: 'Ember colour' },
96
+ { value: 'roughness', label: 'Raggedness' },
97
+ { value: 'singe', label: 'Singe' },
98
+ { value: 'ashLace', label: 'Ash lace' },
99
+ { value: 'curl', label: 'Curl' },
100
+ { value: 'opacity', label: 'Opacity' },
101
+ ],
102
+ lightPainting: [
103
+ { value: 'exposure', label: 'Exposure' },
104
+ { value: 'temperature', label: 'Temperature' },
105
+ { value: 'strobe', label: 'Strobe' },
106
+ { value: 'sparks', label: 'Sparks' },
107
+ { value: 'width', label: 'Trail width' },
108
+ { value: 'halation', label: 'Halation' },
109
+ { value: 'spread', label: 'Spread' },
110
+ { value: 'bloom', label: 'Bloom' },
111
+ { value: 'color', label: 'Colour' },
112
+ { value: 'color2', label: 'Hot core' },
113
+ { value: 'opacity', label: 'Opacity' },
114
+ ],
115
+ constellation: [
116
+ { value: 'brightness', label: 'Brightness' },
117
+ { value: 'temperature', label: 'Temperature' },
118
+ { value: 'lines', label: 'Chart lines' },
119
+ { value: 'twinkle', label: 'Twinkle' },
120
+ { value: 'color', label: 'Line colour' },
121
+ { value: 'color2', label: 'Highlight / tint' },
122
+ { value: 'opacity', label: 'Opacity' },
123
+ ],
124
+ inkBleed: [
125
+ { value: 'bleed', label: 'Bleed' },
126
+ { value: 'color', label: 'Ink' },
127
+ { value: 'weight', label: 'Pen weight' },
128
+ { value: 'paper', label: 'Paper' },
129
+ { value: 'color2', label: 'Fringe dye' },
130
+ { value: 'dryTime', label: 'Drying time' },
131
+ { value: 'fibre', label: 'Fibre' },
132
+ { value: 'pooling', label: 'Pooling' },
133
+ { value: 'oxidation', label: 'Oxidation' },
134
+ { value: 'burn', label: 'Ink burn' },
135
+ { value: 'char', label: 'Char' },
136
+ { value: 'spread', label: 'Spread' },
137
+ { value: 'opacity', label: 'Opacity' },
138
+ ],
139
+ liquidMetal: [
140
+ { value: 'thickness', label: 'Thickness' },
141
+ { value: 'environment', label: 'Environment' },
142
+ { value: 'color', label: 'Metal colour' },
143
+ { value: 'tint', label: 'Metal tint' },
144
+ { value: 'melt', label: 'Melt' },
145
+ { value: 'drips', label: 'Drips' },
146
+ { value: 'spikes', label: 'Spikes' },
147
+ { value: 'oxide', label: 'Oxide skin' },
148
+ { value: 'reflectivity', label: 'Reflectivity' },
149
+ { value: 'roughness', label: 'Ripples' },
150
+ { value: 'rippleSpeed', label: 'Ripple speed' },
151
+ { value: 'color2', label: 'Edge tint' },
152
+ { value: 'opacity', label: 'Opacity' },
153
+ ],
154
+ embroidery: [
155
+ { value: 'color', label: 'Thread' },
156
+ { value: 'sheen', label: 'Sheen' },
157
+ { value: 'color2', label: 'Contrast thread' },
158
+ { value: 'relief', label: 'Relief' },
159
+ { value: 'outline', label: 'Border row' },
160
+ { value: 'fabric', label: 'Fabric' },
161
+ { value: 'pucker', label: 'Pucker' },
162
+ { value: 'opacity', label: 'Opacity' },
163
+ ],
164
+ chalkboard: [
165
+ { value: 'pressure', label: 'Pressure' },
166
+ { value: 'chatter', label: 'Chatter' },
167
+ { value: 'grain', label: 'Grain' },
168
+ { value: 'dust', label: 'Dust' },
169
+ { value: 'weight', label: 'Weight' },
170
+ { value: 'swing', label: 'Swing' },
171
+ { value: 'ghost', label: 'Ghost' },
172
+ { value: 'board', label: 'Board' },
173
+ { value: 'opacity', label: 'Opacity' },
174
+ { value: 'color', label: 'Chalk' },
175
+ { value: 'color2', label: 'Highlight' },
176
+ ],
177
+ plain: [
178
+ { value: 'color', label: 'Colour' },
179
+ { value: 'weight', label: 'Weight' },
180
+ { value: 'outline', label: 'Outline' },
181
+ { value: 'opacity', label: 'Opacity' },
182
+ { value: 'color2', label: 'Outline colour' },
183
+ { value: 'fill', label: 'Fill' },
184
+ { value: 'softness', label: 'Softness' },
185
+ ],
186
+ };
187
+ /** The typefaces every look can use: the id is stored, the family is the Google Fonts name used to preview it. */
188
+ export const TEXT_FONTS = [
189
+ // clean text faces (plain labels, mesh text)
190
+ { id: 'inter', label: 'Inter', family: 'Inter' },
191
+ { id: 'roboto', label: 'Roboto', family: 'Roboto' },
192
+ { id: 'montserrat', label: 'Montserrat', family: 'Montserrat' },
193
+ { id: 'poppins', label: 'Poppins', family: 'Poppins' },
194
+ { id: 'oswald', label: 'Oswald', family: 'Oswald' },
195
+ { id: 'bebas-neue', label: 'Bebas Neue', family: 'Bebas Neue' },
196
+ { id: 'playfair-display', label: 'Playfair Display', family: 'Playfair Display' },
197
+ { id: 'lora', label: 'Lora', family: 'Lora' },
198
+ // handwriting faces (the pen looks)
199
+ { id: 'caveat', label: 'Caveat', family: 'Caveat' },
200
+ { id: 'kalam', label: 'Kalam', family: 'Kalam' },
201
+ { id: 'handlee', label: 'Handlee', family: 'Handlee' },
202
+ { id: 'patrick-hand', label: 'Patrick Hand', family: 'Patrick Hand' },
203
+ { id: 'architects-daughter', label: 'Architect\'s Daughter', family: 'Architects Daughter' },
204
+ { id: 'indie-flower', label: 'Indie Flower', family: 'Indie Flower' },
205
+ { id: 'gochi-hand', label: 'Gochi Hand', family: 'Gochi Hand' },
206
+ { id: 'nanum-pen-script', label: 'Nanum Pen', family: 'Nanum Pen Script' },
207
+ { id: 'mynerve', label: 'Mynerve', family: 'Mynerve' },
208
+ { id: 'dancing-script', label: 'Dancing Script', family: 'Dancing Script' },
209
+ { id: 'courgette', label: 'Courgette', family: 'Courgette' },
210
+ { id: 'satisfy', label: 'Satisfy', family: 'Satisfy' },
211
+ { id: 'kaushan-script', label: 'Kaushan Script', family: 'Kaushan Script' },
212
+ { id: 'sriracha', label: 'Sriracha', family: 'Sriracha' },
213
+ { id: 'pacifico', label: 'Pacifico', family: 'Pacifico' },
214
+ ];
215
+ /** True when the config is one of the text looks (object type 'text', config.type set). */
216
+ export function isTextObjectConfig(config) {
217
+ const t = config?.type;
218
+ return typeof t === 'string' && Object.prototype.hasOwnProperty.call(DEFAULT_TEXT_OBJECTS, t);
219
+ }
@@ -17,6 +17,7 @@
17
17
  * three of the four cloud types share one marcher and all four landforms share
18
18
  * one height field. `waterType` shapes the spectrum; `host` chooses the mesh.
19
19
  */
20
+ import type { ObjectAnimations, MouseMoveInteractions } from '../types/objectSettings';
20
21
  /** The four water bodies the spectrum is shaped for. */
21
22
  export type WaterType = 'sea' | 'lake' | 'storm' | 'shore';
22
23
  /**
@@ -275,10 +276,10 @@ export interface OceanWaterSettings {
275
276
  quality: OceanQualityConfig;
276
277
  /** Object host only. */
277
278
  meshSettings?: OceanMeshSettings;
278
- /** Per-domain keyframes. Object host only, like any other scene object. */
279
- animations?: unknown;
280
- /** Per-domain pointer interactions. Object host only. */
281
- mouseMove?: unknown;
279
+ /** Per-domain keyframes; the `ocean` domain drives the water's config knobs. */
280
+ animations?: ObjectAnimations;
281
+ /** Per-domain pointer bindings; same `ocean` domain. */
282
+ mouseMove?: MouseMoveInteractions;
282
283
  }
283
284
  export declare const defaultOceanWaterSettings: OceanWaterSettings;
284
285
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"oceanConfigs.d.ts","sourceRoot":"","sources":["../../src/environment/oceanConfigs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oceanConfigs.d.ts","sourceRoot":"","sources":["../../src/environment/oceanConfigs.ts"],"names":[],"mappings":"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"}
@@ -372,9 +372,9 @@ export function normalizeOceanSettings(raw) {
372
372
  scale: (Array.isArray(mesh.scale) ? mesh.scale : [1, 1, 1]),
373
373
  };
374
374
  }
375
- if (source.animations)
375
+ if (isRecord(source.animations))
376
376
  settings.animations = source.animations;
377
- if (source.mouseMove)
377
+ if (isRecord(source.mouseMove))
378
378
  settings.mouseMove = source.mouseMove;
379
379
  return settings;
380
380
  }
@@ -15,8 +15,59 @@
15
15
  * mountains from dunes is the operator applied to the fBm and the numbers around
16
16
  * it, so the type is a config field the shader branches on.
17
17
  */
18
+ import type { ObjectAnimations, MouseMoveInteractions } from '../types/objectSettings';
18
19
  /** The four landforms the height function shapes. */
19
20
  export type TerrainType = 'mountains' | 'dunes' | 'hills' | 'canyon';
21
+ /** The four splat layers. Same four the colours have always been: low and mid by
22
+ * height, rock by slope, peak (snow, salt, bleached stone) at the top. */
23
+ export type TerrainLayerKey = 'low' | 'mid' | 'rock' | 'peak';
24
+ export declare const TERRAIN_LAYER_KEYS: readonly TerrainLayerKey[];
25
+ /** A texture set's map URLs. Filled by the client from the texture library when a
26
+ * set is assigned, and stored, so an embed renders without the library. */
27
+ export interface TerrainLayerMaps {
28
+ color?: string;
29
+ normal?: string;
30
+ roughness?: string;
31
+ ao?: string;
32
+ displacement?: string;
33
+ }
34
+ /**
35
+ * One splat layer's surface.
36
+ *
37
+ * A textured layer shows the set's OWN colours and detail — so picking a
38
+ * different set visibly changes the ground. Its exposure is automatic: scans are
39
+ * shot at all sorts of brightness, so the texture is first brought to the
40
+ * LUMINANCE of the layer's colour (`lowColor` … `peakColor`, set by the biome),
41
+ * then × `tint` × `brightness`. The distant ground is the texture's mean × the
42
+ * same factors, so near and far agree. A layer with no set is its flat colour.
43
+ */
44
+ export interface TerrainTextureLayer {
45
+ /** Texture-library set name (e.g. 'Grass008'). '' = no texture: the layer is
46
+ * drawn in its flat colour, as before textures existed. */
47
+ set: string;
48
+ /** Resolved map URLs for `set`. Empty until resolved. */
49
+ maps: TerrainLayerMaps;
50
+ /** Metres of ground one texture tile covers. */
51
+ tileSize: number;
52
+ /** Multiplies the texture's colour. '#ffffff' = as photographed. */
53
+ tint: string;
54
+ /** Multiplies the texture's brightness, on top of the automatic exposure.
55
+ * 1 = the ground's tuned brightness. */
56
+ brightness: number;
57
+ /** Normal-map strength. */
58
+ normalStrength: number;
59
+ }
60
+ export type TerrainTextures = Record<TerrainLayerKey, TerrainTextureLayer>;
61
+ /** Partial form, for presets and patches: a set name and optionally the numbers. */
62
+ export type TerrainTexturesPatch = Partial<Record<TerrainLayerKey, Partial<TerrainTextureLayer>>>;
63
+ export declare const defaultTerrainTextureLayer: TerrainTextureLayer;
64
+ export declare function emptyTerrainTextures(): TerrainTextures;
65
+ /**
66
+ * Layer-wise merge. A patch that changes a layer's set without restating its maps
67
+ * clears the maps, so a stale URL from the previous set never draws under the
68
+ * new name.
69
+ */
70
+ export declare function mergeTerrainTextures(base: TerrainTextures | undefined, patch: TerrainTexturesPatch | undefined): TerrainTextures;
20
71
  /** Fields every terrain shares, whatever its landform. */
21
72
  export interface TerrainSurfaceConfig {
22
73
  enabled: boolean;
@@ -110,6 +161,16 @@ export interface TerrainSurfaceConfig {
110
161
  roughness: number;
111
162
  /** Specular strength. Rock is nearly matte; wet sand and snow are not. */
112
163
  specular: number;
164
+ /** Real surfaces per splat layer, from the texture library. A layer with no set
165
+ * keeps its flat colour. */
166
+ textures: TerrainTextures;
167
+ /** Distance, in metres, out to which the textures are drawn. Past it each
168
+ * layer fades into its flat far colour (a textured layer's own mean colour),
169
+ * which costs nothing per pixel — the horizon stays as cheap as it was. */
170
+ textureDistance: number;
171
+ /** 0 = layers cross-fade; 1 = the layer whose own surface is higher wins, so
172
+ * rock pushes up through grass along its cracks instead of fading in. */
173
+ textureHeightBlend: number;
113
174
  /** Sky fill. Terrain is lit by the whole dome, not only the sun, and freezing
114
175
  * this is what makes a night landscape glow. */
115
176
  ambient: number;
@@ -140,6 +201,18 @@ export type TerrainConfig = TerrainSurfaceConfig & {
140
201
  /** Name of the preset the numbers came from, or '' once any of them is edited.
141
202
  * Purely a UI bookmark — the renderer never reads it. */
142
203
  preset?: string;
204
+ /** The shape (landform preset) last picked — a UI bookmark. The Basic tab's
205
+ * Ruggedness slider is measured against this shape's own numbers. */
206
+ shape?: string;
207
+ /** The biome (ground look) last picked — a UI bookmark. The Rock & snow slider
208
+ * is measured against this biome's snow line. */
209
+ biome?: string;
210
+ /** Basic-tab Ruggedness, 0..1, 0.5 = the shape as designed. A bookmark: the
211
+ * numbers it drives (gain, ridge sharpness, erosion) are in the config. */
212
+ ruggedness?: number;
213
+ /** Basic-tab Rock & snow, 0..1, 0.5 = shape and biome as designed. A bookmark
214
+ * for the slope-rock thresholds and the snow line it moves. */
215
+ coverage?: number;
143
216
  };
144
217
  /** Cost and extent knobs. */
145
218
  export interface TerrainQualityConfig {
@@ -234,6 +307,11 @@ export interface ProceduralTerrainSettings {
234
307
  * editable block. */
235
308
  config: TerrainConfig;
236
309
  quality: TerrainQualityConfig;
310
+ /** Per-domain keyframes; the `terrain` domain drives the surface's lighting and
311
+ * colour knobs. The land shape is never animatable (see TERRAIN_SCHEMA). */
312
+ animations?: ObjectAnimations;
313
+ /** Per-domain pointer bindings; same `terrain` domain. */
314
+ mouseMove?: MouseMoveInteractions;
237
315
  }
238
316
  export declare const defaultProceduralTerrainSettings: ProceduralTerrainSettings;
239
317
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"terrainConfigs.d.ts","sourceRoot":"","sources":["../../src/environment/terrainConfigs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"terrainConfigs.d.ts","sourceRoot":"","sources":["../../src/environment/terrainConfigs.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,55 @@
15
15
  * mountains from dunes is the operator applied to the fBm and the numbers around
16
16
  * it, so the type is a config field the shader branches on.
17
17
  */
18
+ export const TERRAIN_LAYER_KEYS = ['low', 'mid', 'rock', 'peak'];
19
+ export const defaultTerrainTextureLayer = {
20
+ set: '',
21
+ maps: {},
22
+ tileSize: 3,
23
+ tint: '#ffffff',
24
+ brightness: 1,
25
+ normalStrength: 1,
26
+ };
27
+ /** Per-layer default tile size: rock reads right a little larger than ground. */
28
+ const LAYER_TILE = { low: 3, mid: 3, rock: 6, peak: 4 };
29
+ export function emptyTerrainTextures() {
30
+ const out = {};
31
+ for (const k of TERRAIN_LAYER_KEYS)
32
+ out[k] = { ...defaultTerrainTextureLayer, maps: {}, tileSize: LAYER_TILE[k] };
33
+ return out;
34
+ }
35
+ /**
36
+ * Layer-wise merge. A patch that changes a layer's set without restating its maps
37
+ * clears the maps, so a stale URL from the previous set never draws under the
38
+ * new name.
39
+ */
40
+ export function mergeTerrainTextures(base, patch) {
41
+ const from = base ?? emptyTerrainTextures();
42
+ const out = {};
43
+ for (const k of TERRAIN_LAYER_KEYS) {
44
+ const b = from[k] ?? { ...defaultTerrainTextureLayer, tileSize: LAYER_TILE[k] };
45
+ const p = patch?.[k];
46
+ if (!p) {
47
+ out[k] = { ...b, maps: { ...b.maps } };
48
+ continue;
49
+ }
50
+ const setChanged = p.set !== undefined && p.set !== b.set;
51
+ out[k] = {
52
+ ...b,
53
+ ...p,
54
+ maps: p.maps ? { ...p.maps } : setChanged ? {} : { ...b.maps },
55
+ };
56
+ }
57
+ return out;
58
+ }
59
+ function texturesOf(sets, tiles = {}) {
60
+ const patch = {};
61
+ for (const k of TERRAIN_LAYER_KEYS) {
62
+ if (sets[k] !== undefined || tiles[k] !== undefined)
63
+ patch[k] = { ...(sets[k] !== undefined ? { set: sets[k] } : {}), ...(tiles[k] !== undefined ? { tileSize: tiles[k] } : {}) };
64
+ }
65
+ return mergeTerrainTextures(emptyTerrainTextures(), patch);
66
+ }
18
67
  // -----------------------------------------------------------------------------
19
68
  // Defaults
20
69
  // -----------------------------------------------------------------------------
@@ -52,6 +101,9 @@ const surfaceBase = {
52
101
  detailSize: 9,
53
102
  roughness: 0.82,
54
103
  specular: 0.06,
104
+ textures: texturesOf({ low: 'Grass001', mid: 'Gravel040', rock: 'Rock051', peak: 'Snow014' }, { low: 2.5, mid: 3, rock: 6, peak: 4 }),
105
+ textureDistance: 4000,
106
+ textureHeightBlend: 0.7,
55
107
  ambient: 1,
56
108
  bounce: 0.35,
57
109
  sunShadow: 1,
@@ -64,6 +116,7 @@ export const defaultMountainsConfig = {
64
116
  terrainType: 'mountains',
65
117
  preset: '',
66
118
  enabled: true,
119
+ biome: 'Alpine meadow',
67
120
  };
68
121
  export const defaultHillsConfig = {
69
122
  ...surfaceBase,
@@ -71,6 +124,7 @@ export const defaultHillsConfig = {
71
124
  terrainType: 'hills',
72
125
  preset: '',
73
126
  enabled: true,
127
+ biome: 'Green hills',
74
128
  elevation: 300,
75
129
  featureSize: 2200,
76
130
  octaves: 8,
@@ -92,6 +146,7 @@ export const defaultHillsConfig = {
92
146
  detailSize: 6,
93
147
  roughness: 0.9,
94
148
  specular: 0.03,
149
+ textures: texturesOf({ low: 'Grass008', mid: 'Grass001', rock: 'Rock061', peak: 'Ground033' }, { low: 2.5, mid: 2.5, rock: 5, peak: 3 }),
95
150
  aerialPerspective: 0.00009,
96
151
  };
97
152
  export const defaultDunesConfig = {
@@ -100,6 +155,7 @@ export const defaultDunesConfig = {
100
155
  terrainType: 'dunes',
101
156
  preset: '',
102
157
  enabled: true,
158
+ biome: 'Desert sand',
103
159
  elevation: 150,
104
160
  featureSize: 3000,
105
161
  octaves: 6,
@@ -125,6 +181,7 @@ export const defaultDunesConfig = {
125
181
  detailSize: 3.5,
126
182
  roughness: 0.55,
127
183
  specular: 0.16,
184
+ textures: texturesOf({ low: 'Ground097', mid: 'Ground097', rock: 'Ground105', peak: 'Ground093C' }, { low: 4, mid: 5, rock: 4, peak: 4 }),
128
185
  ambient: 1.1,
129
186
  bounce: 0.55,
130
187
  shadowSoftness: 22,
@@ -136,6 +193,7 @@ export const defaultCanyonConfig = {
136
193
  terrainType: 'canyon',
137
194
  preset: '',
138
195
  enabled: true,
196
+ biome: 'Red rock',
139
197
  elevation: 700,
140
198
  featureSize: 2600,
141
199
  octaves: 8,
@@ -163,6 +221,7 @@ export const defaultCanyonConfig = {
163
221
  detailSize: 7,
164
222
  roughness: 0.86,
165
223
  specular: 0.05,
224
+ textures: texturesOf({ low: 'Ground105', mid: 'Ground097', rock: 'Rock029', peak: 'Ground105' }, { low: 3, mid: 4, rock: 8, peak: 3 }),
166
225
  shadowSoftness: 8,
167
226
  aerialPerspective: 0.000075,
168
227
  };
@@ -215,6 +274,8 @@ export const TERRAIN_SCHEMA = [
215
274
  { key: 'detailSize', animatable: false, label: 'Detail size', group: 'surface', min: 0.5, max: 60, step: 0.25, unit: 'm', description: 'Size of that detail. Below about a metre it aliases before it fades.' },
216
275
  { key: 'roughness', label: 'Roughness', group: 'surface', min: 0.05, max: 1, step: 0.005, description: 'Widens the specular lobe. Rock is nearly matte; wet sand and snow are not.' },
217
276
  { key: 'specular', label: 'Specular', group: 'surface', min: 0, max: 1, step: 0.005, description: 'Specular strength. The grazing sheen on sand at low sun comes from here.' },
277
+ { key: 'textureDistance', animatable: false, label: 'Texture distance', group: 'surface', min: 100, max: 12000, step: 50, unit: 'm', description: 'How far out the ground is drawn with real textures. Past it every layer fades to its flat far colour, so the horizon costs nothing extra.' },
278
+ { key: 'textureHeightBlend', animatable: false, label: 'Texture height blend', group: 'surface', min: 0, max: 1, step: 0.01, description: '0 cross-fades the layers; 1 lets the layer whose own surface is higher win, so rock pushes up through grass along its cracks.' },
218
279
  { key: 'ambient', label: 'Ambient', group: 'lighting', min: 0, max: 3, step: 0.01, description: 'Sky-dome fill, taken from the same atmosphere the sky and clouds use, so it darkens and warms as the sun sets instead of freezing.' },
219
280
  { key: 'bounce', label: 'Ground bounce', group: 'lighting', min: 0, max: 2, step: 0.01, description: 'Fill on downward-facing surfaces, tinted by the low colour. Keeps overhangs and north faces off pure black.' },
220
281
  { key: 'sunShadow', label: 'Self shadow', group: 'lighting', min: 0, max: 1, step: 0.01, description: 'Strength of the analytic shadow marched down the sun vector. This is what puts a mountain shadow in its own valley, with no shadow-map resolution to run out of.' },
@@ -266,9 +327,13 @@ export function normalizeTerrain(raw) {
266
327
  const terrainType = TERRAIN_TYPES.includes(raw.terrainType)
267
328
  ? raw.terrainType
268
329
  : 'hills';
330
+ const base = TERRAIN_DEFAULTS[terrainType];
269
331
  return {
270
- ...TERRAIN_DEFAULTS[terrainType],
332
+ ...base,
271
333
  ...raw,
334
+ // Layer-wise, not replaced: a stored or preset block may name only some
335
+ // layers, and a partial layer must not lose the type's defaults.
336
+ textures: mergeTerrainTextures(base.textures, isRecord(raw.textures) ? raw.textures : undefined),
272
337
  type: 'terrain',
273
338
  terrainType,
274
339
  };
@@ -283,10 +348,15 @@ export function normalizeTerrainQuality(raw) {
283
348
  export function normalizeTerrainSettings(raw) {
284
349
  const source = isRecord(raw) ? raw : {};
285
350
  const config = normalizeTerrain(source.config);
286
- return {
351
+ const settings = {
287
352
  id: typeof source.id === 'string' ? source.id : defaultProceduralTerrainSettings.id,
288
353
  type: 'terrain',
289
354
  config: config ?? { ...defaultHillsConfig, enabled: false },
290
355
  quality: normalizeTerrainQuality(source.quality),
291
356
  };
357
+ if (isRecord(source.animations))
358
+ settings.animations = source.animations;
359
+ if (isRecord(source.mouseMove))
360
+ settings.mouseMove = source.mouseMove;
361
+ return settings;
292
362
  }
package/dist/index.d.ts CHANGED
@@ -20,7 +20,7 @@ export type { EnvironmentManagerVOptions } from './three/EnvironmentManagerV';
20
20
  export type { RainVOptions } from './three/RainV';
21
21
  export type { SceneBuilderVOptions } from './three/SceneBuilderV';
22
22
  export type { ProjectLoaderVOptions } from './three/ProjectLoaderV';
23
- export { defaultMoonSettings } from './types/environment';
23
+ export { defaultMoonSettings, SKY_ID, SKY_STARS_DEFAULTS, normalizeSkyStars } from './types/environment';
24
24
  export { DEFAULT_HDR_TRANSITION_SETTINGS, getTransitionSettings } from './utils/environmentUtils';
25
25
  export * from './types/index';
26
26
  export * from './utils/index';
@@ -32,6 +32,8 @@ export * from './autoAnimate/index';
32
32
  export * from './animations/index';
33
33
  export * from './environment/index';
34
34
  export * from './properties/index';
35
+ export * from './catalog/index';
36
+ export * from './ui/index';
35
37
  export { LightsManagerV } from './three/LightsManagerV';
36
38
  export { FrameV } from './three/FrameV';
37
39
  export { ImageGeometryV } from './three/ImageGeometryV';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { defaultMoonSettings } from './types/environment.js';
1
+ export { defaultMoonSettings, SKY_ID, SKY_STARS_DEFAULTS, normalizeSkyStars } from './types/environment.js';
2
2
  export { DEFAULT_HDR_TRANSITION_SETTINGS, getTransitionSettings } from './utils/environmentUtils.js';
3
3
  // Barrel exports
4
4
  export * from './types/index.js';
@@ -11,6 +11,8 @@ export * from './autoAnimate/index.js';
11
11
  export * from './animations/index.js';
12
12
  export * from './environment/index.js';
13
13
  export * from './properties/index.js';
14
+ export * from './catalog/index.js';
15
+ export * from './ui/index.js';
14
16
  // Three.js vanilla classes
15
17
  export { LightsManagerV } from './three/LightsManagerV.js';
16
18
  export { FrameV } from './three/FrameV.js';