@3driseai/3drise-core 1.0.20 → 1.0.22

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 (185) 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 +99 -0
  14. package/dist/data/allMaterials.js +2 -2
  15. package/dist/data/environmentDefaults.d.ts +10 -0
  16. package/dist/data/environmentDefaults.d.ts.map +1 -0
  17. package/dist/data/environmentDefaults.js +126 -0
  18. package/dist/data/gridsDefaults.d.ts +2 -0
  19. package/dist/data/gridsDefaults.d.ts.map +1 -1
  20. package/dist/data/gridsDefaults.js +186 -0
  21. package/dist/data/index.d.ts +4 -0
  22. package/dist/data/index.d.ts.map +1 -1
  23. package/dist/data/index.js +4 -0
  24. package/dist/data/landDefaults.d.ts +26 -0
  25. package/dist/data/landDefaults.d.ts.map +1 -0
  26. package/dist/data/landDefaults.js +76 -0
  27. package/dist/data/spaceDefaults.d.ts +10 -0
  28. package/dist/data/spaceDefaults.d.ts.map +1 -0
  29. package/dist/data/spaceDefaults.js +46 -0
  30. package/dist/data/textDefaults.d.ts +16 -0
  31. package/dist/data/textDefaults.d.ts.map +1 -0
  32. package/dist/data/textDefaults.js +199 -0
  33. package/dist/environment/oceanConfigs.d.ts +5 -4
  34. package/dist/environment/oceanConfigs.d.ts.map +1 -1
  35. package/dist/environment/oceanConfigs.js +2 -2
  36. package/dist/environment/terrainConfigs.d.ts +78 -0
  37. package/dist/environment/terrainConfigs.d.ts.map +1 -1
  38. package/dist/environment/terrainConfigs.js +72 -2
  39. package/dist/index.d.ts +3 -1
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +3 -1
  42. package/dist/properties/registry.d.ts +10 -1
  43. package/dist/properties/registry.d.ts.map +1 -1
  44. package/dist/properties/registry.js +60 -9
  45. package/dist/properties/tables/environmentProperties.d.ts +9 -0
  46. package/dist/properties/tables/environmentProperties.d.ts.map +1 -0
  47. package/dist/properties/tables/environmentProperties.js +127 -0
  48. package/dist/properties/tables/gridProperties.d.ts.map +1 -1
  49. package/dist/properties/tables/gridProperties.js +184 -82
  50. package/dist/properties/tables/index.d.ts +4 -1
  51. package/dist/properties/tables/index.d.ts.map +1 -1
  52. package/dist/properties/tables/index.js +4 -1
  53. package/dist/properties/tables/landProperties.d.ts +5 -0
  54. package/dist/properties/tables/landProperties.d.ts.map +1 -0
  55. package/dist/properties/tables/landProperties.js +24 -0
  56. package/dist/properties/tables/lightProperties.js +1 -1
  57. package/dist/properties/tables/materialBounds.js +1 -1
  58. package/dist/properties/tables/optionalProperties.d.ts +1 -2
  59. package/dist/properties/tables/optionalProperties.d.ts.map +1 -1
  60. package/dist/properties/tables/optionalProperties.js +21 -0
  61. package/dist/properties/tables/spaceProperties.d.ts +8 -0
  62. package/dist/properties/tables/spaceProperties.d.ts.map +1 -0
  63. package/dist/properties/tables/spaceProperties.js +42 -0
  64. package/dist/properties/tables/textProperties.d.ts +4 -0
  65. package/dist/properties/tables/textProperties.d.ts.map +1 -0
  66. package/dist/properties/tables/textProperties.js +361 -0
  67. package/dist/properties/types.d.ts +1 -1
  68. package/dist/properties/types.d.ts.map +1 -1
  69. package/dist/services/MaterialRegistry.d.ts.map +1 -1
  70. package/dist/services/MaterialRegistry.js +2 -0
  71. package/dist/services/SkySystemManager.d.ts +22 -0
  72. package/dist/services/SkySystemManager.d.ts.map +1 -1
  73. package/dist/services/SkySystemManager.js +50 -18
  74. package/dist/services/TextureResolver.d.ts.map +1 -1
  75. package/dist/services/TextureResolver.js +22 -0
  76. package/dist/services/index.d.ts +1 -1
  77. package/dist/services/index.d.ts.map +1 -1
  78. package/dist/services/index.js +1 -1
  79. package/dist/shaders/ApollonianGridMaterial.d.ts +70 -0
  80. package/dist/shaders/ApollonianGridMaterial.d.ts.map +1 -0
  81. package/dist/shaders/ApollonianGridMaterial.js +289 -0
  82. package/dist/shaders/ConformalGridMaterial.d.ts +91 -0
  83. package/dist/shaders/ConformalGridMaterial.d.ts.map +1 -0
  84. package/dist/shaders/ConformalGridMaterial.js +335 -0
  85. package/dist/shaders/HilbertGridMaterial.d.ts +79 -0
  86. package/dist/shaders/HilbertGridMaterial.d.ts.map +1 -0
  87. package/dist/shaders/HilbertGridMaterial.js +329 -0
  88. package/dist/shaders/LensingGridMaterial.d.ts +73 -0
  89. package/dist/shaders/LensingGridMaterial.d.ts.map +1 -0
  90. package/dist/shaders/LensingGridMaterial.js +253 -0
  91. package/dist/shaders/ParastichyGridMaterial.d.ts +76 -0
  92. package/dist/shaders/ParastichyGridMaterial.d.ts.map +1 -0
  93. package/dist/shaders/ParastichyGridMaterial.js +282 -0
  94. package/dist/shaders/PhyllotaxisGridMaterial.d.ts +85 -0
  95. package/dist/shaders/PhyllotaxisGridMaterial.d.ts.map +1 -0
  96. package/dist/shaders/PhyllotaxisGridMaterial.js +532 -0
  97. package/dist/shaders/SkyboxMaterial.js +3 -3
  98. package/dist/shaders/StarsMaterial.d.ts +5 -0
  99. package/dist/shaders/StarsMaterial.d.ts.map +1 -1
  100. package/dist/shaders/StarsMaterial.js +59 -57
  101. package/dist/shaders/TruchetGridMaterial.d.ts +76 -0
  102. package/dist/shaders/TruchetGridMaterial.d.ts.map +1 -0
  103. package/dist/shaders/TruchetGridMaterial.js +290 -0
  104. package/dist/shaders/index.d.ts +7 -0
  105. package/dist/shaders/index.d.ts.map +1 -1
  106. package/dist/shaders/index.js +7 -0
  107. package/dist/types/actions.d.ts +6 -5
  108. package/dist/types/actions.d.ts.map +1 -1
  109. package/dist/types/commands.d.ts +61 -0
  110. package/dist/types/commands.d.ts.map +1 -0
  111. package/dist/types/commands.js +1 -0
  112. package/dist/types/environment.d.ts +34 -1
  113. package/dist/types/environment.d.ts.map +1 -1
  114. package/dist/types/environment.js +15 -0
  115. package/dist/types/environmentObjects.d.ts +152 -0
  116. package/dist/types/environmentObjects.d.ts.map +1 -0
  117. package/dist/types/environmentObjects.js +10 -0
  118. package/dist/types/index.d.ts +5 -1
  119. package/dist/types/index.d.ts.map +1 -1
  120. package/dist/types/landObjects.d.ts +15 -0
  121. package/dist/types/landObjects.d.ts.map +1 -0
  122. package/dist/types/landObjects.js +1 -0
  123. package/dist/types/objectSettings.d.ts +187 -16
  124. package/dist/types/objectSettings.d.ts.map +1 -1
  125. package/dist/types/objectsConfigs.d.ts +0 -3
  126. package/dist/types/objectsConfigs.d.ts.map +1 -1
  127. package/dist/types/scene3d.d.ts +8 -5
  128. package/dist/types/scene3d.d.ts.map +1 -1
  129. package/dist/types/spaceObjects.d.ts +65 -0
  130. package/dist/types/spaceObjects.d.ts.map +1 -0
  131. package/dist/types/spaceObjects.js +11 -0
  132. package/dist/types/textObjects.d.ts +352 -0
  133. package/dist/types/textObjects.d.ts.map +1 -0
  134. package/dist/types/textObjects.js +14 -0
  135. package/dist/types/types.d.ts +3 -6
  136. package/dist/types/types.d.ts.map +1 -1
  137. package/dist/types/users.d.ts +3 -1
  138. package/dist/types/users.d.ts.map +1 -1
  139. package/dist/types/users.js +2 -0
  140. package/dist/ui/index.d.ts +5 -0
  141. package/dist/ui/index.d.ts.map +1 -0
  142. package/dist/ui/index.js +4 -0
  143. package/dist/ui/uiBindings.d.ts +45 -0
  144. package/dist/ui/uiBindings.d.ts.map +1 -0
  145. package/dist/ui/uiBindings.js +172 -0
  146. package/dist/ui/uiKeys.d.ts +14 -0
  147. package/dist/ui/uiKeys.d.ts.map +1 -0
  148. package/dist/ui/uiKeys.js +22 -0
  149. package/dist/ui/uiSanitize.d.ts +18 -0
  150. package/dist/ui/uiSanitize.d.ts.map +1 -0
  151. package/dist/ui/uiSanitize.js +251 -0
  152. package/dist/ui/uiSpec.d.ts +116 -0
  153. package/dist/ui/uiSpec.d.ts.map +1 -0
  154. package/dist/ui/uiSpec.js +173 -0
  155. package/dist/utils/environmentMigration.d.ts +3 -0
  156. package/dist/utils/environmentMigration.d.ts.map +1 -0
  157. package/dist/utils/environmentMigration.js +50 -0
  158. package/dist/utils/generativeAnimatable.d.ts +1 -1
  159. package/dist/utils/generativeAnimatable.d.ts.map +1 -1
  160. package/dist/utils/generativeAnimatable.js +12 -0
  161. package/dist/utils/getAnimatableProperties.d.ts +1 -1
  162. package/dist/utils/getAnimatableProperties.d.ts.map +1 -1
  163. package/dist/utils/getAnimatableProperties.js +1 -1
  164. package/dist/utils/gridMigration.d.ts +3 -0
  165. package/dist/utils/gridMigration.d.ts.map +1 -0
  166. package/dist/utils/gridMigration.js +34 -0
  167. package/dist/utils/index.d.ts +5 -0
  168. package/dist/utils/index.d.ts.map +1 -1
  169. package/dist/utils/index.js +5 -0
  170. package/dist/utils/objectEffects.d.ts +24 -2
  171. package/dist/utils/objectEffects.d.ts.map +1 -1
  172. package/dist/utils/objectEffects.js +29 -2
  173. package/dist/utils/objectMigration.d.ts +9 -0
  174. package/dist/utils/objectMigration.d.ts.map +1 -0
  175. package/dist/utils/objectMigration.js +12 -0
  176. package/dist/utils/skyPhase.d.ts +61 -0
  177. package/dist/utils/skyPhase.d.ts.map +1 -0
  178. package/dist/utils/skyPhase.js +93 -0
  179. package/dist/utils/spaceMigration.d.ts +3 -0
  180. package/dist/utils/spaceMigration.d.ts.map +1 -0
  181. package/dist/utils/spaceMigration.js +46 -0
  182. package/dist/utils/sunUtils.d.ts +26 -1
  183. package/dist/utils/sunUtils.d.ts.map +1 -1
  184. package/dist/utils/sunUtils.js +37 -6
  185. package/package.json +1 -1
@@ -0,0 +1,126 @@
1
+ // =============================================================================
2
+ // ENVIRONMENT OBJECTS — defaults, labels, animatable knobs
3
+ // =============================================================================
4
+ //
5
+ // Generated from the environment lab (Claude outputs/environment-lab, gen_family.mjs).
6
+ // The animatable list is derived from each component's applyConfig: a knob is
7
+ // listed only when that push point applies it per frame. Structural knobs
8
+ // (density, quality, seed), mode selects and switches are never listed.
9
+ //
10
+ export const DEFAULT_ENVIRONMENT_OBJECTS = {
11
+ snow: { type: 'snow', enabled: true, intensity: 1, speed: 1, color: '#f4f8ff', opacity: 0.9, density: 1, quality: 'medium', seed: 7, followCamera: false, windStrength: 0.18, windDirection: 30, turbulence: 0.25, flakeSize: 0.045, flutter: 0.6, tumble: 0.5, gustiness: 0.6, bands: 0.75, glint: 0.8, shadeColor: '#a9bddc', pointerMode: 'gust', pointerStrength: 1, pointerRadius: 1, pointerColor: '#ffb070' },
12
+ sandstorm: { type: 'sandstorm', enabled: true, intensity: 1, speed: 1, color: '#c8955a', opacity: 1, density: 1, quality: 'medium', seed: 11, followCamera: false, windStrength: 0.6, windDirection: 75, turbulence: 0.5, height: 0.3, walls: 0.85, haze: 0.25, grains: 1, grainSize: 1, shadeColor: '#6d5a4a', pointerMode: 'devil', pointerStrength: 1, pointerRadius: 1, pointerColor: '#ffd9a0' },
13
+ rainbow: { type: 'rainbow', enabled: true, intensity: 1, opacity: 1, dropSize: 1, secondary: 0, color: '#ffffff', pointerMode: 'spray', pointerStrength: 1, pointerRadius: 1, pointerColor: '#ffffff' },
14
+ tornado: { type: 'tornado', enabled: true, intensity: 1, speed: 1, color: '#b9bec4', opacity: 1, density: 1, quality: 'medium', seed: 3, followCamera: false, windStrength: 0.15, windDirection: 40, turbulence: 0.5, rotation: 1, coreRadius: 1, reach: 0.9, wander: 0.5, lift: 1, dust: 1, dustSpread: 1, shadeColor: '#3c424c', dustColor: '#8a7358', pointerMode: 'steer', pointerStrength: 1, pointerRadius: 1, pointerColor: '#c9a27a' },
15
+ thunderstorm: { type: 'thunderstorm', enabled: true, intensity: 1, speed: 1, color: '#aab4c2', opacity: 1, density: 1, quality: 'medium', seed: 9, followCamera: false, windStrength: 0.35, windDirection: 120, turbulence: 0.4, shafts: 0.6, flashRate: 6, flashIntensity: 1.5, shadeColor: '#39414d', flashColor: '#cfd8ff', pointerMode: 'strike', pointerStrength: 1, pointerRadius: 1, pointerColor: '#ffffff' },
16
+ rain: { type: 'rain', enabled: true, color: '#ffffff', size: 0.1, opacity: 0.5, speed: 1, density: 100, windStrength: 0, windDirection: 0, turbulence: 0 },
17
+ };
18
+ export const ENVIRONMENT_OBJECT_LABELS = {
19
+ snow: 'Snow',
20
+ sandstorm: 'Sandstorm',
21
+ rainbow: 'Rainbow',
22
+ tornado: 'Tornado',
23
+ thunderstorm: 'Thunderstorm',
24
+ rain: 'Rain',
25
+ };
26
+ export const ENVIRONMENT_OBJECTS_ANIMATABLE = {
27
+ snow: [
28
+ { value: 'intensity', label: 'Intensity' },
29
+ { value: 'speed', label: 'Speed' },
30
+ { value: 'opacity', label: 'Opacity' },
31
+ { value: 'color', label: 'Color' },
32
+ { value: 'shadeColor', label: 'Shade Color' },
33
+ { value: 'pointerColor', label: 'Pointer Color' },
34
+ { value: 'windStrength', label: 'Wind Strength' },
35
+ { value: 'windDirection', label: 'Wind Direction' },
36
+ { value: 'turbulence', label: 'Turbulence' },
37
+ { value: 'flakeSize', label: 'Flake Size' },
38
+ { value: 'flutter', label: 'Flutter' },
39
+ { value: 'tumble', label: 'Tumble' },
40
+ { value: 'gustiness', label: 'Gustiness' },
41
+ { value: 'bands', label: 'Bands' },
42
+ { value: 'glint', label: 'Glint' },
43
+ { value: 'pointerStrength', label: 'Pointer Strength' },
44
+ { value: 'pointerRadius', label: 'Pointer Radius' },
45
+ ],
46
+ sandstorm: [
47
+ { value: 'intensity', label: 'Intensity' },
48
+ { value: 'speed', label: 'Speed' },
49
+ { value: 'opacity', label: 'Opacity' },
50
+ { value: 'color', label: 'Color' },
51
+ { value: 'shadeColor', label: 'Shade Color' },
52
+ { value: 'pointerColor', label: 'Pointer Color' },
53
+ { value: 'windStrength', label: 'Wind Strength' },
54
+ { value: 'windDirection', label: 'Wind Direction' },
55
+ { value: 'turbulence', label: 'Turbulence' },
56
+ { value: 'pointerStrength', label: 'Pointer Strength' },
57
+ { value: 'pointerRadius', label: 'Pointer Radius' },
58
+ { value: 'height', label: 'Height' },
59
+ { value: 'walls', label: 'Walls' },
60
+ { value: 'haze', label: 'Haze' },
61
+ { value: 'grains', label: 'Grains' },
62
+ { value: 'grainSize', label: 'Grain Size' },
63
+ ],
64
+ rainbow: [
65
+ { value: 'intensity', label: 'Intensity' },
66
+ { value: 'opacity', label: 'Opacity' },
67
+ { value: 'color', label: 'Color' },
68
+ { value: 'pointerColor', label: 'Pointer Color' },
69
+ { value: 'pointerStrength', label: 'Pointer Strength' },
70
+ { value: 'pointerRadius', label: 'Pointer Radius' },
71
+ { value: 'dropSize', label: 'Drop Size' },
72
+ { value: 'secondary', label: 'Secondary' },
73
+ ],
74
+ tornado: [
75
+ { value: 'intensity', label: 'Intensity' },
76
+ { value: 'speed', label: 'Speed' },
77
+ { value: 'opacity', label: 'Opacity' },
78
+ { value: 'color', label: 'Color' },
79
+ { value: 'shadeColor', label: 'Shade Color' },
80
+ { value: 'pointerColor', label: 'Pointer Color' },
81
+ { value: 'windStrength', label: 'Wind Strength' },
82
+ { value: 'windDirection', label: 'Wind Direction' },
83
+ { value: 'turbulence', label: 'Turbulence' },
84
+ { value: 'pointerStrength', label: 'Pointer Strength' },
85
+ { value: 'pointerRadius', label: 'Pointer Radius' },
86
+ { value: 'rotation', label: 'Rotation' },
87
+ { value: 'coreRadius', label: 'Core Radius' },
88
+ { value: 'reach', label: 'Reach' },
89
+ { value: 'wander', label: 'Wander' },
90
+ { value: 'lift', label: 'Lift' },
91
+ { value: 'dust', label: 'Dust' },
92
+ { value: 'dustSpread', label: 'Dust Spread' },
93
+ { value: 'dustColor', label: 'Dust Color' },
94
+ ],
95
+ thunderstorm: [
96
+ { value: 'intensity', label: 'Intensity' },
97
+ { value: 'speed', label: 'Speed' },
98
+ { value: 'opacity', label: 'Opacity' },
99
+ { value: 'color', label: 'Color' },
100
+ { value: 'shadeColor', label: 'Shade Color' },
101
+ { value: 'pointerColor', label: 'Pointer Color' },
102
+ { value: 'windStrength', label: 'Wind Strength' },
103
+ { value: 'windDirection', label: 'Wind Direction' },
104
+ { value: 'turbulence', label: 'Turbulence' },
105
+ { value: 'pointerStrength', label: 'Pointer Strength' },
106
+ { value: 'pointerRadius', label: 'Pointer Radius' },
107
+ { value: 'shafts', label: 'Shafts' },
108
+ { value: 'flashIntensity', label: 'Flash Intensity' },
109
+ { value: 'flashColor', label: 'Flash Color' },
110
+ { value: 'flashRate', label: 'Flash Rate' },
111
+ ],
112
+ rain: [
113
+ { value: 'color', label: 'Color' },
114
+ { value: 'size', label: 'Size' },
115
+ { value: 'opacity', label: 'Opacity' },
116
+ { value: 'speed', label: 'Speed' },
117
+ { value: 'windStrength', label: 'Wind Strength' },
118
+ { value: 'windDirection', label: 'Wind Direction' },
119
+ { value: 'turbulence', label: 'Turbulence' },
120
+ ],
121
+ };
122
+ /** True when the config is one of the environment objects. */
123
+ export function isEnvironmentObjectConfig(config) {
124
+ const t = config?.type;
125
+ return typeof t === 'string' && Object.prototype.hasOwnProperty.call(DEFAULT_ENVIRONMENT_OBJECTS, t);
126
+ }
@@ -2,4 +2,6 @@ export declare const GRIDS_ANIMATABLE: Record<string, {
2
2
  value: string;
3
3
  label: string;
4
4
  }[]>;
5
+ export declare const DEFAULT_GRIDS: Record<string, Record<string, unknown>>;
6
+ export declare const GRID_LABELS: Record<string, string>;
5
7
  //# sourceMappingURL=gridsDefaults.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gridsDefaults.d.ts","sourceRoot":"","sources":["../../src/data/gridsDefaults.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAiR/E,CAAC"}
1
+ {"version":3,"file":"gridsDefaults.d.ts","sourceRoot":"","sources":["../../src/data/gridsDefaults.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAkZ/E,CAAC;AAOF,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAyBjE,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAyB9C,CAAC"}
@@ -287,4 +287,190 @@ export const GRIDS_ANIMATABLE = {
287
287
  { value: 'glowColor', label: 'Glow Color' },
288
288
  { value: 'bgColor', label: 'Bg Color' },
289
289
  ],
290
+ lensingGrid: [
291
+ { value: 'cellSize', label: 'Cell Size' },
292
+ { value: 'lineWidth', label: 'Line Width' },
293
+ { value: 'sectionWidth', label: 'Section Width' },
294
+ { value: 'animSpeed', label: 'Anim Speed' },
295
+ { value: 'animScale', label: 'Anim Scale' },
296
+ { value: 'animIntensity', label: 'Anim Intensity' },
297
+ { value: 'fadeStrength', label: 'Fade Strength' },
298
+ { value: 'bgOpacity', label: 'Bg Opacity' },
299
+ { value: 'lineColor', label: 'Line Color' },
300
+ { value: 'sectionColor', label: 'Section Color' },
301
+ { value: 'cellColor', label: 'Cell Color' },
302
+ { value: 'glowColor', label: 'Glow Color' },
303
+ { value: 'bgColor', label: 'Bg Color' },
304
+ { value: 'mass', label: 'Mass' },
305
+ { value: 'orbit', label: 'Orbit' },
306
+ { value: 'ringGlow', label: 'Ring Glow' },
307
+ ],
308
+ conformalGrid: [
309
+ { value: 'cellSize', label: 'Cell Size' },
310
+ { value: 'lineWidth', label: 'Line Width' },
311
+ { value: 'sectionWidth', label: 'Section Width' },
312
+ { value: 'animSpeed', label: 'Anim Speed' },
313
+ { value: 'animScale', label: 'Anim Scale' },
314
+ { value: 'animIntensity', label: 'Anim Intensity' },
315
+ { value: 'fadeStrength', label: 'Fade Strength' },
316
+ { value: 'bgOpacity', label: 'Bg Opacity' },
317
+ { value: 'lineColor', label: 'Line Color' },
318
+ { value: 'sectionColor', label: 'Section Color' },
319
+ { value: 'cellColor', label: 'Cell Color' },
320
+ { value: 'glowColor', label: 'Glow Color' },
321
+ { value: 'bgColor', label: 'Bg Color' },
322
+ { value: 'poleSpread', label: 'Pole Spread' },
323
+ { value: 'circulation', label: 'Circulation' },
324
+ { value: 'drift', label: 'Drift' },
325
+ { value: 'fill', label: 'Fill' },
326
+ { value: 'dye', label: 'Dye' },
327
+ ],
328
+ truchetGrid: [
329
+ { value: 'cellSize', label: 'Cell Size' },
330
+ { value: 'lineWidth', label: 'Line Width' },
331
+ { value: 'sectionWidth', label: 'Section Width' },
332
+ { value: 'animSpeed', label: 'Anim Speed' },
333
+ { value: 'animScale', label: 'Anim Scale' },
334
+ { value: 'animIntensity', label: 'Anim Intensity' },
335
+ { value: 'fadeStrength', label: 'Fade Strength' },
336
+ { value: 'bgOpacity', label: 'Bg Opacity' },
337
+ { value: 'lineColor', label: 'Line Color' },
338
+ { value: 'sectionColor', label: 'Section Color' },
339
+ { value: 'cellColor', label: 'Cell Color' },
340
+ { value: 'glowColor', label: 'Glow Color' },
341
+ { value: 'bgColor', label: 'Bg Color' },
342
+ { value: 'flip', label: 'Flip' },
343
+ { value: 'bias', label: 'Bias' },
344
+ { value: 'pulse', label: 'Pulse' },
345
+ { value: 'regionFill', label: 'Region Fill' },
346
+ ],
347
+ phyllotaxisGrid: [
348
+ { value: 'cellSize', label: 'Cell Size' },
349
+ { value: 'lineWidth', label: 'Line Width' },
350
+ { value: 'sectionWidth', label: 'Section Width' },
351
+ { value: 'animSpeed', label: 'Anim Speed' },
352
+ { value: 'animScale', label: 'Anim Scale' },
353
+ { value: 'animIntensity', label: 'Anim Intensity' },
354
+ { value: 'fadeStrength', label: 'Fade Strength' },
355
+ { value: 'bgOpacity', label: 'Bg Opacity' },
356
+ { value: 'lineColor', label: 'Line Color' },
357
+ { value: 'sectionColor', label: 'Section Color' },
358
+ { value: 'cellColor', label: 'Cell Color' },
359
+ { value: 'glowColor', label: 'Glow Color' },
360
+ { value: 'bgColor', label: 'Bg Color' },
361
+ { value: 'divergence', label: 'Divergence' },
362
+ { value: 'bloomRate', label: 'Bloom Rate' },
363
+ { value: 'relief', label: 'Relief' },
364
+ { value: 'shapeSize', label: 'Shape Size' },
365
+ { value: 'shapeGlow', label: 'Shape Glow' },
366
+ ],
367
+ parastichyGrid: [
368
+ { value: 'cellSize', label: 'Cell Size' },
369
+ { value: 'lineWidth', label: 'Line Width' },
370
+ { value: 'sectionWidth', label: 'Section Width' },
371
+ { value: 'animSpeed', label: 'Anim Speed' },
372
+ { value: 'animScale', label: 'Anim Scale' },
373
+ { value: 'animIntensity', label: 'Anim Intensity' },
374
+ { value: 'fadeStrength', label: 'Fade Strength' },
375
+ { value: 'bgOpacity', label: 'Bg Opacity' },
376
+ { value: 'lineColor', label: 'Line Color' },
377
+ { value: 'sectionColor', label: 'Section Color' },
378
+ { value: 'cellColor', label: 'Cell Color' },
379
+ { value: 'glowColor', label: 'Glow Color' },
380
+ { value: 'bgColor', label: 'Bg Color' },
381
+ { value: 'divergence', label: 'Divergence' },
382
+ { value: 'third', label: 'Third' },
383
+ { value: 'sap', label: 'Sap' },
384
+ { value: 'fill', label: 'Fill' },
385
+ ],
386
+ apollonianGrid: [
387
+ { value: 'cellSize', label: 'Cell Size' },
388
+ { value: 'lineWidth', label: 'Line Width' },
389
+ { value: 'sectionWidth', label: 'Section Width' },
390
+ { value: 'animSpeed', label: 'Anim Speed' },
391
+ { value: 'animScale', label: 'Anim Scale' },
392
+ { value: 'animIntensity', label: 'Anim Intensity' },
393
+ { value: 'fadeStrength', label: 'Fade Strength' },
394
+ { value: 'bgOpacity', label: 'Bg Opacity' },
395
+ { value: 'lineColor', label: 'Line Color' },
396
+ { value: 'sectionColor', label: 'Section Color' },
397
+ { value: 'cellColor', label: 'Cell Color' },
398
+ { value: 'glowColor', label: 'Glow Color' },
399
+ { value: 'bgColor', label: 'Bg Color' },
400
+ { value: 'morph', label: 'Morph' },
401
+ ],
402
+ hilbertGrid: [
403
+ { value: 'cellSize', label: 'Cell Size' },
404
+ { value: 'lineWidth', label: 'Line Width' },
405
+ { value: 'sectionWidth', label: 'Section Width' },
406
+ { value: 'animSpeed', label: 'Anim Speed' },
407
+ { value: 'animScale', label: 'Anim Scale' },
408
+ { value: 'animIntensity', label: 'Anim Intensity' },
409
+ { value: 'fadeStrength', label: 'Fade Strength' },
410
+ { value: 'bgOpacity', label: 'Bg Opacity' },
411
+ { value: 'lineColor', label: 'Line Color' },
412
+ { value: 'sectionColor', label: 'Section Color' },
413
+ { value: 'cellColor', label: 'Cell Color' },
414
+ { value: 'glowColor', label: 'Glow Color' },
415
+ { value: 'bgColor', label: 'Bg Color' },
416
+ { value: 'trail', label: 'Trail' },
417
+ { value: 'signalSpeed', label: 'Signal Speed' },
418
+ ],
419
+ };
420
+ // =============================================================================
421
+ // DEFAULT_GRIDS / GRID_LABELS — config defaults and names per grid (config.type)
422
+ // =============================================================================
423
+ // Moved into core from packages/viewer/grid-defaults.json (+ the basic grid) so the
424
+ // object catalog (catalog/objectCatalog.ts) can list grids like every other family.
425
+ export const DEFAULT_GRIDS = {
426
+ advancedGrid: { type: "advancedGrid", cellSize: 1, size: 50, lineMode: 2, cellMode: 2, lineWidth: 1, sectionSize: 5, sectionWidth: 1.6, animSpeed: 1, animScale: 0.5, animIntensity: 1, fadeStrength: 0.65, displace: 0, lineColor: "#477fb8", sectionColor: "#80c7ff", cellColor: "#1a5999", glowColor: "#339eff", bgColor: "#05080d", bgOpacity: 0, reveal: 1, revealDuration: 0 },
427
+ hexGrid: { type: "hexGrid", cellSize: 1.4, size: 50, lineMode: 1, cellMode: 2, lineWidth: 1.2, sectionSize: 4, sectionWidth: 2, animSpeed: 1, animScale: 0.6, animIntensity: 1, fadeStrength: 0.7, displace: 0, plateau: true, lineColor: "#2a9ec7", sectionColor: "#73eaff", cellColor: "#0f4869", glowColor: "#4df3ff", bgColor: "#030809", bgOpacity: 0, reveal: 1, revealDuration: 0 },
428
+ circuitGrid: { type: "circuitGrid", cellSize: 1.6, size: 50, lineMode: 2, cellMode: 0, lineWidth: 1.6, sectionSize: 6, sectionWidth: 1.2, animSpeed: 1, animScale: 1, animIntensity: 1, fadeStrength: 0.7, displace: 0, powered: 0.65, chipChance: 0.06, padSize: 1, lineColor: "#186b5c", sectionColor: "#8cf0b4", cellColor: "#082420", glowColor: "#59ffb8", bgColor: "#020806", bgOpacity: 0, reveal: 1, revealDuration: 0 },
429
+ voronoiGrid: { type: "voronoiGrid", cellSize: 3, size: 50, lineMode: 1, cellMode: 2, lineWidth: 1.4, sectionSize: 4, sectionWidth: 1, animSpeed: 1, animScale: 0.5, animIntensity: 1, fadeStrength: 0.7, displace: 0, jitter: 0.9, drift: 0.5, lineColor: "#5a339e", sectionColor: "#d999ff", cellColor: "#1f0d47", glowColor: "#b366ff", bgColor: "#05030d", bgOpacity: 0, reveal: 1, revealDuration: 0 },
430
+ radarGrid: { type: "radarGrid", cellSize: 2.5, size: 50, lineMode: 1, cellMode: 0, lineWidth: 1, sectionSize: 4, sectionWidth: 1.8, animSpeed: 1, animScale: 0.5, animIntensity: 1, fadeDistance: 24, fadeStrength: 0.25, displace: 0, spokes: 24, sweepWidth: 0.13, blipDensity: 0.08, lineColor: "#1a805a", sectionColor: "#80ffb8", cellColor: "#0d3324", glowColor: "#59ff99", bgColor: "#020d08", bgOpacity: 0.25, reveal: 1, revealDuration: 0 },
431
+ moireGrid: { type: "moireGrid", cellSize: 2.8, size: 50, lineMode: 0, cellMode: 2, lineWidth: 1.4, sectionSize: 12, sectionWidth: 0, animSpeed: 1, animScale: 1, animIntensity: 1, fadeStrength: 0.7, displace: 0, shape: "square", layerAngle: 0.05, layerScale: 1.06, spin: 1, lineColor: "#226bd9", sectionColor: "#f2599e", cellColor: "#0d1a40", glowColor: "#99d9ff", bgColor: "#02040d", bgOpacity: 0, reveal: 1, revealDuration: 0 },
432
+ fractalGrid: { type: "fractalGrid", cellSize: 4, size: 50, lineMode: 0, cellMode: 2, lineWidth: 1.6, sectionSize: 4, sectionWidth: 2.2, animSpeed: 1, animScale: 0.5, animIntensity: 1, fadeStrength: 0.7, displace: 0, depth: 5, splitRadius: 3.5, splitJitter: 0.5, lineColor: "#59bfff", sectionColor: "#99e6ff", cellColor: "#1f61a3", glowColor: "#66e6ff", bgColor: "#020810", bgOpacity: 0, reveal: 1, revealDuration: 0 },
433
+ contourGrid: { type: "contourGrid", cellSize: 14, size: 50, lineMode: 0, cellMode: 1, lineWidth: 1, sectionSize: 5, sectionWidth: 2.2, animSpeed: 1, animScale: 0.5, animIntensity: 1, fadeStrength: 0.7, displace: 0, levels: 16, roughness: 0.5, warp: 0.35, lineColor: "#59d9b3", sectionColor: "#bff299", cellColor: "#1a5c52", glowColor: "#8cffbf", bgColor: "#020a0a", bgOpacity: 0, reveal: 1, revealDuration: 0 },
434
+ quasiGrid: { type: "quasiGrid", cellSize: 3, size: 50, lineMode: 1, cellMode: 2, lineWidth: 1.2, sectionSize: 5, sectionWidth: 2, animSpeed: 1, animScale: 0.5, animIntensity: 1, fadeStrength: 0.7, displace: 0, symmetry: 5, phase: 0.2, lineColor: "#8c4d1f", sectionColor: "#ffc759", cellColor: "#381a08", glowColor: "#ffa640", bgColor: "#0d0503", bgOpacity: 0, reveal: 1, revealDuration: 0 },
435
+ flowNetGrid: { type: "flowNetGrid", cellSize: 1.5, size: 50, lineMode: 2, cellMode: 1, lineWidth: 1, sectionSize: 5, sectionWidth: 1.6, animSpeed: 1, animScale: 0.6, animIntensity: 0.8, fadeStrength: 0.7, displace: 0, obstacleRadius: 3, circulation: 2, flowAngle: 0, lineColor: "#3f8fbf", sectionColor: "#9fe3ff", cellColor: "#0c3148", glowColor: "#5fd0ff", bgColor: "#02070b", bgOpacity: 0, reveal: 1, revealDuration: 0 },
436
+ chladniGrid: { type: "chladniGrid", cellSize: 8, size: 50, lineMode: 0, cellMode: 2, lineWidth: 1.2, sectionSize: 1, sectionWidth: 0.8, animSpeed: 1, animScale: 0.5, animIntensity: 0.6, fadeStrength: 0.6, displace: 0, modeN: 3, modeM: 5, morph: 0.4, grain: 0.8, lineColor: "#d9c7a3", sectionColor: "#4d5d6e", cellColor: "#16222e", glowColor: "#ffe2a8", bgColor: "#06080b", bgOpacity: 0, reveal: 1, revealDuration: 0 },
437
+ hyperbolicGrid: { type: "hyperbolicGrid", cellSize: 22, size: 50, lineMode: 1, cellMode: 2, lineWidth: 1.4, sectionSize: 3, sectionWidth: 1, animSpeed: 1, animScale: 1.2, animIntensity: 0.7, fadeStrength: 0.2, displace: 0, sides: 7, valence: 3, drift: 0.5, lineColor: "#c9a4ff", sectionColor: "#ffd9f2", cellColor: "#2a1446", glowColor: "#b07cff", bgColor: "#07030c", bgOpacity: 0, reveal: 1, revealDuration: 0 },
438
+ gravWaveGrid: { type: "gravWaveGrid", cellSize: 1, size: 50, lineMode: 0, cellMode: 0, lineWidth: 1, sectionSize: 5, sectionWidth: 1.4, animSpeed: 1, animScale: 0.5, animIntensity: 0.7, fadeStrength: 0.7, displace: 0, strain: 1, chirpTime: 14, waveSpeed: 6.5, massRatio: 0.6, lineColor: "#3d6fc9", sectionColor: "#9cc2ff", cellColor: "#1b3a7a", glowColor: "#8fd8ff", bgColor: "#03050b", bgOpacity: 0, reveal: 1, revealDuration: 0 },
439
+ girihGrid: { type: "girihGrid", cellSize: 4, size: 50, lineMode: 2, cellMode: 2, lineWidth: 1.2, sectionSize: 3, sectionWidth: 0.8, animSpeed: 1, animScale: 0.5, animIntensity: 0.25, fadeStrength: 0.65, displace: 0, tiling: 0, contactAngle: 67.5, strapWidth: 0.07, angleDrift: 5, lineColor: "#f2c469", sectionColor: "#3f6fc4", cellColor: "#12616f", glowColor: "#38c4c8", bgColor: "#05070a", bgOpacity: 0, reveal: 1, revealDuration: 0 },
440
+ wallpaperGrid: { type: "wallpaperGrid", cellSize: 10, size: 50, lineMode: 2, cellMode: 2, lineWidth: 2, sectionSize: 0, sectionWidth: 1.4, animSpeed: 1, animScale: 0.6, animIntensity: 0.55, fadeStrength: 0.7, displace: 0, group: -1, cycleTime: 12, motif: 0.5, levels: 11, lineColor: "#f3d79b", sectionColor: "#7fd6ff", cellColor: "#101c50", glowColor: "#ff9ec7", bgColor: "#05070a", bgOpacity: 0, reveal: 1, revealDuration: 0 },
441
+ reactionDiffusionGrid: { type: "reactionDiffusionGrid", cellSize: 3, size: 50, lineMode: 0, cellMode: 0, lineWidth: 1.1, sectionSize: 5, sectionWidth: 1.2, animSpeed: 1, animScale: 0.5, animIntensity: 0.6, fadeStrength: 0.7, displace: 0, feed: 0.037, kill: 0.06, variation: 0.55, tileCells: 7, lineColor: "#7ff0d4", sectionColor: "#f0a26a", cellColor: "#0d4b52", glowColor: "#2fd9c8", bgColor: "#03080a", bgOpacity: 0, reveal: 1, revealDuration: 0 },
442
+ lensingGrid: { type: "lensingGrid", cellSize: 2, size: 50, lineMode: 1, cellMode: 2, lineWidth: 1.1, sectionSize: 5, sectionWidth: 1.8, animSpeed: 1, animScale: 0.6, animIntensity: 0.6, fadeStrength: 0.7, displace: 0, mass: 4, orbit: 0, ringGlow: 0.8, lineColor: "#2b4f80", sectionColor: "#9fd0ff", cellColor: "#0b1a33", glowColor: "#ffcf8a", bgColor: "#02040a", bgOpacity: 0, reveal: 1, revealDuration: 0 },
443
+ conformalGrid: { type: "conformalGrid", cellSize: 2, size: 50, lineMode: 0, cellMode: 0, lineWidth: 1, sectionSize: 4, sectionWidth: 1.4, animSpeed: 1, animScale: 0.5, animIntensity: 0.8, fadeStrength: 0.7, displace: 0, flowMap: 2, poleSpread: 6, spokes: 24, arms: 3, circulation: 1.2, drift: 0.35, fill: 0.5, dye: 0.8, lineColor: "#2fb6c9", sectionColor: "#c8fff4", cellColor: "#1a2a78", glowColor: "#9ff0ff", bgColor: "#020a0f", bgOpacity: 0, reveal: 1, revealDuration: 0 },
444
+ truchetGrid: { type: "truchetGrid", cellSize: 3, size: 50, lineMode: 0, cellMode: 0, lineWidth: 1.3, sectionSize: 4, sectionWidth: 1.2, animSpeed: 1, animScale: 0.5, animIntensity: 0.6, fadeStrength: 0.7, displace: 0, flip: 0.25, bias: 0.5, pulse: 0.8, regionFill: 0.8, lineColor: "#a052e0", sectionColor: "#4a2a66", cellColor: "#2a0f45", glowColor: "#ff7ad9", bgColor: "#07030d", bgOpacity: 0, reveal: 1, revealDuration: 0 },
445
+ phyllotaxisGrid: { type: "phyllotaxisGrid", cellSize: 1.6, size: 50, lineMode: 0, cellMode: 0, lineWidth: 0.6, sectionSize: 2, sectionWidth: 1.4, animSpeed: 1, animScale: 0.5, animIntensity: 0.6, fadeStrength: 0.6, displace: 0, divergence: 137.508, bloomRate: 0.04, relief: 0.8, shape: 1, shapeSize: 0.85, shapeGlow: 0.9, lineColor: "#a8661c", sectionColor: "#ffcf70", cellColor: "#3a1a08", glowColor: "#e4ee8a", bgColor: "#070402", bgOpacity: 0, reveal: 1, revealDuration: 0 },
446
+ parastichyGrid: { type: "parastichyGrid", cellSize: 1.2, size: 50, lineMode: 0, cellMode: 0, lineWidth: 1.1, sectionSize: 21, sectionWidth: 0.9, animSpeed: 1, animScale: 0.5, animIntensity: 0.6, fadeStrength: 0.5, displace: 0, divergence: 137.508, third: 0.45, sap: 0.9, fill: 0.35, lineColor: "#d4ac4e", sectionColor: "#7fb8a8", cellColor: "#0f3a33", glowColor: "#fff0b8", bgColor: "#03080a", bgOpacity: 0, reveal: 1, revealDuration: 0 },
447
+ apollonianGrid: { type: "apollonianGrid", cellSize: 2, size: 50, lineMode: 0, cellMode: 1, lineWidth: 1.1, sectionSize: 2, sectionWidth: 2, animSpeed: 1, animScale: 0.5, animIntensity: 0.6, fadeStrength: 0.15, displace: 0, depth: 12, morph: 0.25, lineColor: "#6a90c8", sectionColor: "#c9e4ff", cellColor: "#1a2f5c", glowColor: "#8fb8ff", bgColor: "#03050c", bgOpacity: 0, reveal: 1, revealDuration: 0 },
448
+ hilbertGrid: { type: "hilbertGrid", cellSize: 0.8, size: 50, lineMode: 0, cellMode: 0, lineWidth: 1.2, sectionSize: 8, sectionWidth: 3, animSpeed: 1, animScale: 0.5, animIntensity: 0.6, fadeStrength: 0.7, displace: 0, order: 6, signals: 12, trail: 40, signalSpeed: 10, lineColor: "#2a8a5c", sectionColor: "#1d4d37", cellColor: "#082016", glowColor: "#5dffb0", bgColor: "#020805", bgOpacity: 0, reveal: 1, revealDuration: 0 },
449
+ basic: { side: 2, type: "basic", cellSize: 1, fadeFrom: 0, cellColor: "#630c0c", sectionSize: 10, fadeDistance: 30, fadeStrength: 1, followCamera: false, sectionColor: "#ffffff", cellThickness: 1, sectionThickness: 1.5 },
450
+ };
451
+ export const GRID_LABELS = {
452
+ advancedGrid: "Advanced Grid",
453
+ hexGrid: "Hex Grid",
454
+ circuitGrid: "Circuit Grid",
455
+ voronoiGrid: "Voronoi Grid",
456
+ radarGrid: "Radar Grid",
457
+ moireGrid: "Moire Grid",
458
+ fractalGrid: "Fractal Grid",
459
+ contourGrid: "Contour Grid",
460
+ quasiGrid: "Quasicrystal Grid",
461
+ flowNetGrid: "Flow Net Grid",
462
+ chladniGrid: "Chladni Grid",
463
+ hyperbolicGrid: "Hyperbolic Grid",
464
+ gravWaveGrid: "Grav Wave Grid",
465
+ girihGrid: "Girih Grid",
466
+ wallpaperGrid: "Wallpaper Grid",
467
+ reactionDiffusionGrid: "Reaction Diffusion Grid",
468
+ lensingGrid: "Lensing Grid",
469
+ conformalGrid: "Conformal Grid",
470
+ truchetGrid: "Truchet Grid",
471
+ phyllotaxisGrid: "Phyllotaxis Grid",
472
+ parastichyGrid: "Parastichy Grid",
473
+ apollonianGrid: "Apollonian Grid",
474
+ hilbertGrid: "Hilbert Grid",
475
+ basic: "Basic Grid",
290
476
  };
@@ -7,6 +7,10 @@ export * from './effectsDefaults';
7
7
  export * from './particlesDefaults';
8
8
  export * from './lightsDefaults';
9
9
  export * from './gridsDefaults';
10
+ export * from './environmentDefaults';
11
+ export * from './spaceDefaults';
12
+ export * from './landDefaults';
13
+ export * from './textDefaults';
10
14
  export * from './shadowDefaults';
11
15
  export * from './defaults';
12
16
  export * from './shaders';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
@@ -7,6 +7,10 @@ export * from './effectsDefaults.js';
7
7
  export * from './particlesDefaults.js';
8
8
  export * from './lightsDefaults.js';
9
9
  export * from './gridsDefaults.js';
10
+ export * from './environmentDefaults.js';
11
+ export * from './spaceDefaults.js';
12
+ export * from './landDefaults.js';
13
+ export * from './textDefaults.js';
10
14
  export * from './shadowDefaults.js';
11
15
  export * from './defaults.js';
12
16
  export * from './shaders.js';
@@ -0,0 +1,26 @@
1
+ import type { LandObjectConfig, LandObjectType } from '../types/landObjects';
2
+ /** Starting footprint per landform (metres a side). The catalog entries'
3
+ * `transform.scale` (catalogInfo.ts) must say the same. */
4
+ export declare const LAND_FOOTPRINT: Record<LandObjectType, number>;
5
+ /** How many landform features fit across a patch's shorter side. */
6
+ export declare const LAND_FEATURES_ACROSS = 3;
7
+ /**
8
+ * Scales a landform to a footprint: the environment terrain's numbers are tuned
9
+ * for kilometres of endless ground, so on a patch one feature would fill the whole
10
+ * thing and read as a flat-topped plinth. Feature size becomes 1/3 of the shorter
11
+ * side, and every other length that belongs to the shape (height, dune wavelength)
12
+ * scales by the same factor, so the shape keeps its proportions.
13
+ */
14
+ export declare function fitLandToFootprint<C extends {
15
+ featureSize: number;
16
+ elevation: number;
17
+ duneWavelength?: number;
18
+ }>(cfg: C, footprint: number): C;
19
+ export declare const DEFAULT_LAND_OBJECTS: Record<LandObjectType, LandObjectConfig>;
20
+ export declare const LAND_OBJECT_LABELS: Record<LandObjectType, string>;
21
+ export declare const LAND_OBJECTS_ANIMATABLE: Record<LandObjectType, {
22
+ value: string;
23
+ label: string;
24
+ }[]>;
25
+ export declare function isLandObjectConfig(config: unknown): config is LandObjectConfig;
26
+ //# sourceMappingURL=landDefaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"landDefaults.d.ts","sourceRoot":"","sources":["../../src/data/landDefaults.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAmB7E;4DAC4D;AAC5D,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAKzD,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC,CAW9I;AAeD,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAE7B,CAAC;AAE9C,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAK7D,CAAC;AAIF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,cAAc,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAOhC,CAAC;AAEhE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,gBAAgB,CAG9E"}
@@ -0,0 +1,76 @@
1
+ import { TERRAIN_DEFAULTS } from '../environment/terrainConfigs.js';
2
+ import { terrainOptionalProperties } from '../properties/tables/optionalProperties.js';
3
+ // =============================================================================
4
+ // LAND OBJECTS — defaults, labels, animatable knobs
5
+ // =============================================================================
6
+ //
7
+ // DERIVED from the environment terrain, not copied: a landform's numbers, ground
8
+ // and colours are TERRAIN_DEFAULTS[type], minus what the transform owns (sea level)
9
+ // and plus the patch's own knobs. One source, so a retuned landform or a new one
10
+ // reaches the land objects without a second edit.
11
+ //
12
+ // Animatable = the surface's lighting and colour knobs, exactly what the
13
+ // environment terrain animates: TerrainPatch pushes the whole merged config into
14
+ // the material every frame (applyTerrainUniforms), and the land-shape rows are
15
+ // marked animatable: false in TERRAIN_SCHEMA, so the ground itself never moves.
16
+ //
17
+ const LAND_KEYS = ['mountains', 'hills', 'dunes', 'canyon'];
18
+ /** Starting footprint per landform (metres a side). The catalog entries'
19
+ * `transform.scale` (catalogInfo.ts) must say the same. */
20
+ export const LAND_FOOTPRINT = {
21
+ mountains: 5,
22
+ hills: 5,
23
+ dunes: 5,
24
+ canyon: 5,
25
+ };
26
+ /** How many landform features fit across a patch's shorter side. */
27
+ export const LAND_FEATURES_ACROSS = 3;
28
+ /**
29
+ * Scales a landform to a footprint: the environment terrain's numbers are tuned
30
+ * for kilometres of endless ground, so on a patch one feature would fill the whole
31
+ * thing and read as a flat-topped plinth. Feature size becomes 1/3 of the shorter
32
+ * side, and every other length that belongs to the shape (height, dune wavelength)
33
+ * scales by the same factor, so the shape keeps its proportions.
34
+ */
35
+ export function fitLandToFootprint(cfg, footprint) {
36
+ const target = Math.max(footprint, 0.01) / LAND_FEATURES_ACROSS;
37
+ const k = target / Math.max(cfg.featureSize, 1e-3);
38
+ // Centimetre precision: a patch can be a 5 m tabletop as well as a 5 km range.
39
+ const cm = (v, min) => Math.max(min, Math.round(v * 100) / 100);
40
+ return {
41
+ ...cfg,
42
+ featureSize: cm(target, 0.01),
43
+ elevation: cm(cfg.elevation * k, 0.01),
44
+ ...(cfg.duneWavelength !== undefined ? { duneWavelength: cm(cfg.duneWavelength * k, 0.05) } : {}),
45
+ };
46
+ }
47
+ function landDefaults(type) {
48
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
49
+ const { type: _t, terrainType: _tt, seaLevel: _s, preset: _p, ...rest } = TERRAIN_DEFAULTS[type];
50
+ return fitLandToFootprint({
51
+ ...rest,
52
+ type,
53
+ enabled: true,
54
+ seed: 1,
55
+ edgeFade: 0.2,
56
+ quality: 'medium',
57
+ }, LAND_FOOTPRINT[type]);
58
+ }
59
+ export const DEFAULT_LAND_OBJECTS = Object.fromEntries(LAND_KEYS.map((k) => [k, landDefaults(k)]));
60
+ export const LAND_OBJECT_LABELS = {
61
+ mountains: 'Mountains',
62
+ hills: 'Hills',
63
+ dunes: 'Dunes',
64
+ canyon: 'Canyon',
65
+ };
66
+ const label = (name) => name.replace(/([a-z0-9])([A-Z])/g, '$1 $2').replace(/^./, (c) => c.toUpperCase());
67
+ export const LAND_OBJECTS_ANIMATABLE = Object.fromEntries(LAND_KEYS.map((k) => [
68
+ k,
69
+ terrainOptionalProperties(k)
70
+ .filter((p) => (p.type === 'number' || p.type === 'color') && p.animatable !== false && p.name !== 'seaLevel')
71
+ .map((p) => ({ value: p.name, label: p.label ?? label(p.name) })),
72
+ ]));
73
+ export function isLandObjectConfig(config) {
74
+ const t = config?.type;
75
+ return typeof t === 'string' && Object.prototype.hasOwnProperty.call(DEFAULT_LAND_OBJECTS, t);
76
+ }
@@ -0,0 +1,10 @@
1
+ import type { SpaceObjectConfig, SpaceObjectType } from "../types";
2
+ export declare const DEFAULT_SPACE_OBJECTS: Record<SpaceObjectType, SpaceObjectConfig>;
3
+ export declare const SPACE_OBJECT_LABELS: Record<SpaceObjectType, string>;
4
+ export declare const SPACE_OBJECTS_ANIMATABLE: Record<SpaceObjectType, {
5
+ value: string;
6
+ label: string;
7
+ }[]>;
8
+ /** True when the config is one of the space objects (type 'space'). */
9
+ export declare function isSpaceObjectConfig(config: unknown): config is SpaceObjectConfig;
10
+ //# sourceMappingURL=spaceDefaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spaceDefaults.d.ts","sourceRoot":"","sources":["../../src/data/spaceDefaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAWnE,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,eAAe,EAAE,iBAAiB,CAK5E,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAK/D,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,eAAe,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAoBhG,CAAC;AAEF,uEAAuE;AACvE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,iBAAiB,CAGhF"}
@@ -0,0 +1,46 @@
1
+ // =============================================================================
2
+ // SPACE OBJECTS — defaults, labels, animatable knobs
3
+ // =============================================================================
4
+ //
5
+ // The animatable list of each type is what its component's push point applies
6
+ // per frame (Galaxy.tsx -> Stars / Earth / SolarSystem / ShootingStars). Structural
7
+ // knobs (counts, radii), switches and ranges are never listed.
8
+ //
9
+ export const DEFAULT_SPACE_OBJECTS = {
10
+ stars: { type: 'stars', enabled: true, count: 5000, starSize: 1, color: '#ffffff', opacity: 1 },
11
+ earth: { type: 'earth', enabled: true, radius: 1, sunPosition: [5, 5, 5], atmosphereDayColor: '#4db2ff', atmosphereTwilightColor: '#bc490b' },
12
+ solarSystem: { type: 'solarSystem', enabled: true, enableOrbit: true, enableSelfRotation: true, showOrbitRings: true, orbitSpeedMultiplier: 1, sunColor: '#ffd27a', sunRadius: 8, sunIntensity: 3, orbitRingColor: '#444444', orbitRingOpacity: 0.35 },
13
+ shootingStars: { type: 'shootingStars', enabled: true, count: 10, color: '#ffffff', speedRange: [0.05, 0.15], lengthRange: [50, 150], intervalRange: [2, 5], trailLengthRange: [10, 100], followMouse: false },
14
+ };
15
+ export const SPACE_OBJECT_LABELS = {
16
+ stars: 'Stars',
17
+ earth: 'Earth',
18
+ solarSystem: 'Solar System',
19
+ shootingStars: 'Shooting Stars',
20
+ };
21
+ export const SPACE_OBJECTS_ANIMATABLE = {
22
+ stars: [
23
+ { value: 'color', label: 'Color' },
24
+ { value: 'opacity', label: 'Opacity' },
25
+ { value: 'starSize', label: 'Star Size' },
26
+ ],
27
+ earth: [
28
+ { value: 'atmosphereDayColor', label: 'Atmosphere Day Color' },
29
+ { value: 'atmosphereTwilightColor', label: 'Atmosphere Twilight Color' },
30
+ ],
31
+ solarSystem: [
32
+ { value: 'orbitSpeedMultiplier', label: 'Orbit Speed Multiplier' },
33
+ { value: 'sunColor', label: 'Sun Color' },
34
+ { value: 'sunIntensity', label: 'Sun Intensity' },
35
+ { value: 'orbitRingColor', label: 'Orbit Ring Color' },
36
+ { value: 'orbitRingOpacity', label: 'Orbit Ring Opacity' },
37
+ ],
38
+ shootingStars: [
39
+ { value: 'color', label: 'Color' },
40
+ ],
41
+ };
42
+ /** True when the config is one of the space objects (type 'space'). */
43
+ export function isSpaceObjectConfig(config) {
44
+ const t = config?.type;
45
+ return typeof t === 'string' && Object.prototype.hasOwnProperty.call(DEFAULT_SPACE_OBJECTS, t);
46
+ }
@@ -0,0 +1,16 @@
1
+ import type { TextObjectConfig, TextObjectType } from "../types";
2
+ export declare const DEFAULT_TEXT_OBJECTS: Record<TextObjectType, TextObjectConfig>;
3
+ export declare const TEXT_OBJECT_LABELS: Record<TextObjectType, string>;
4
+ export declare const TEXT_OBJECTS_ANIMATABLE: Record<TextObjectType, {
5
+ value: string;
6
+ label: string;
7
+ }[]>;
8
+ /** The typefaces every look can use: the id is stored, the family is the Google Fonts name used to preview it. */
9
+ export declare const TEXT_FONTS: ReadonlyArray<{
10
+ id: string;
11
+ label: string;
12
+ family: string;
13
+ }>;
14
+ /** True when the config is one of the text looks (type 'text', config.type set; the legacy text has no config.type). */
15
+ export declare function isTextObjectConfig(config: unknown): config is TextObjectConfig;
16
+ //# sourceMappingURL=textDefaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textDefaults.d.ts","sourceRoot":"","sources":["../../src/data/textDefaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAYjE,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAazE,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAa7D,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,cAAc,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,CAyI9F,CAAC;AAEF,kHAAkH;AAClH,eAAO,MAAM,UAAU,EAAE,aAAa,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAiBnF,CAAC;AAEF,wHAAwH;AACxH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,gBAAgB,CAG9E"}