@3driseai/3drise-viewer 0.1.16 → 0.1.17

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 (116) hide show
  1. package/README.md +4 -3
  2. package/dist/components/ChladniGrid.d.ts +15 -0
  3. package/dist/components/ChladniGrid.d.ts.map +1 -0
  4. package/dist/components/ChladniGrid.js +62 -0
  5. package/dist/components/CustomPrimitive.d.ts +2 -0
  6. package/dist/components/CustomPrimitive.d.ts.map +1 -1
  7. package/dist/components/CustomPrimitive.js +2 -2
  8. package/dist/components/EffectsGenerator.d.ts.map +1 -1
  9. package/dist/components/EffectsGenerator.js +26 -2
  10. package/dist/components/FlowNetGrid.d.ts +15 -0
  11. package/dist/components/FlowNetGrid.d.ts.map +1 -0
  12. package/dist/components/FlowNetGrid.js +61 -0
  13. package/dist/components/GirihGrid.d.ts +15 -0
  14. package/dist/components/GirihGrid.d.ts.map +1 -0
  15. package/dist/components/GirihGrid.js +62 -0
  16. package/dist/components/GravWaveGrid.d.ts +15 -0
  17. package/dist/components/GravWaveGrid.d.ts.map +1 -0
  18. package/dist/components/GravWaveGrid.js +62 -0
  19. package/dist/components/GridsGenerator.d.ts +2 -2
  20. package/dist/components/GridsGenerator.d.ts.map +1 -1
  21. package/dist/components/GridsGenerator.js +21 -0
  22. package/dist/components/HyperbolicGrid.d.ts +15 -0
  23. package/dist/components/HyperbolicGrid.d.ts.map +1 -0
  24. package/dist/components/HyperbolicGrid.js +61 -0
  25. package/dist/components/LayoutInstances.d.ts +13 -0
  26. package/dist/components/LayoutInstances.d.ts.map +1 -0
  27. package/dist/components/LayoutInstances.js +39 -0
  28. package/dist/components/ModelPrimitive.d.ts +2 -0
  29. package/dist/components/ModelPrimitive.d.ts.map +1 -1
  30. package/dist/components/ModelPrimitive.js +3 -3
  31. package/dist/components/ObjectNode.d.ts.map +1 -1
  32. package/dist/components/ObjectNode.js +36 -8
  33. package/dist/components/ReactionDiffusionGrid.d.ts +15 -0
  34. package/dist/components/ReactionDiffusionGrid.d.ts.map +1 -0
  35. package/dist/components/ReactionDiffusionGrid.js +376 -0
  36. package/dist/components/WallpaperGrid.d.ts +15 -0
  37. package/dist/components/WallpaperGrid.d.ts.map +1 -0
  38. package/dist/components/WallpaperGrid.js +555 -0
  39. package/dist/components/cursor/CursorController.d.ts.map +1 -1
  40. package/dist/components/effects/BlackHoleEffect.d.ts +3 -3
  41. package/dist/components/effects/BlackHoleEffect.d.ts.map +1 -1
  42. package/dist/components/effects/BlackHoleEffect.js +293 -163
  43. package/dist/components/effects/DandelionSeedsEffect.d.ts +13 -0
  44. package/dist/components/effects/DandelionSeedsEffect.d.ts.map +1 -0
  45. package/dist/components/effects/DandelionSeedsEffect.js +510 -0
  46. package/dist/components/effects/FallingLeavesEffect.d.ts +13 -0
  47. package/dist/components/effects/FallingLeavesEffect.d.ts.map +1 -0
  48. package/dist/components/effects/FallingLeavesEffect.js +446 -0
  49. package/dist/components/effects/FieldLinesEffect.d.ts +11 -0
  50. package/dist/components/effects/FieldLinesEffect.d.ts.map +1 -0
  51. package/dist/components/effects/FieldLinesEffect.js +260 -0
  52. package/dist/components/effects/FireflySwarmEffect.d.ts +13 -0
  53. package/dist/components/effects/FireflySwarmEffect.d.ts.map +1 -0
  54. package/dist/components/effects/FireflySwarmEffect.js +408 -0
  55. package/dist/components/effects/GalaxyEffect.d.ts +13 -0
  56. package/dist/components/effects/GalaxyEffect.d.ts.map +1 -0
  57. package/dist/components/effects/GalaxyEffect.js +374 -0
  58. package/dist/components/effects/HarmonicShellEffect.d.ts +11 -0
  59. package/dist/components/effects/HarmonicShellEffect.d.ts.map +1 -0
  60. package/dist/components/effects/HarmonicShellEffect.js +209 -0
  61. package/dist/components/effects/IceCrystalsEffect.d.ts +3 -3
  62. package/dist/components/effects/IceCrystalsEffect.d.ts.map +1 -1
  63. package/dist/components/effects/IceCrystalsEffect.js +286 -166
  64. package/dist/components/effects/IceHaloEffect.d.ts +13 -0
  65. package/dist/components/effects/IceHaloEffect.d.ts.map +1 -0
  66. package/dist/components/effects/IceHaloEffect.js +306 -0
  67. package/dist/components/effects/LichtenbergEffect.d.ts +13 -0
  68. package/dist/components/effects/LichtenbergEffect.d.ts.map +1 -0
  69. package/dist/components/effects/LichtenbergEffect.js +517 -0
  70. package/dist/components/effects/MoleculesEffect.d.ts +3 -3
  71. package/dist/components/effects/MoleculesEffect.d.ts.map +1 -1
  72. package/dist/components/effects/MoleculesEffect.js +322 -164
  73. package/dist/components/effects/MurmurationEffect.d.ts +13 -0
  74. package/dist/components/effects/MurmurationEffect.d.ts.map +1 -0
  75. package/dist/components/effects/MurmurationEffect.js +539 -0
  76. package/dist/components/effects/PlanetaryRingsEffect.d.ts +13 -0
  77. package/dist/components/effects/PlanetaryRingsEffect.d.ts.map +1 -0
  78. package/dist/components/effects/PlanetaryRingsEffect.js +458 -0
  79. package/dist/components/effects/PortalEffect.d.ts +3 -3
  80. package/dist/components/effects/PortalEffect.d.ts.map +1 -1
  81. package/dist/components/effects/PortalEffect.js +240 -163
  82. package/dist/components/effects/ShockwaveEffect.d.ts +5 -3
  83. package/dist/components/effects/ShockwaveEffect.d.ts.map +1 -1
  84. package/dist/components/effects/ShockwaveEffect.js +538 -142
  85. package/dist/components/effects/SmokePlumeEffect.d.ts +3 -3
  86. package/dist/components/effects/SmokePlumeEffect.d.ts.map +1 -1
  87. package/dist/components/effects/SmokePlumeEffect.js +180 -116
  88. package/dist/components/effects/SmokeRingEffect.d.ts +3 -3
  89. package/dist/components/effects/SmokeRingEffect.d.ts.map +1 -1
  90. package/dist/components/effects/SmokeRingEffect.js +260 -135
  91. package/dist/components/effects/StrangeAttractorEffect.d.ts +11 -0
  92. package/dist/components/effects/StrangeAttractorEffect.d.ts.map +1 -0
  93. package/dist/components/effects/StrangeAttractorEffect.js +229 -0
  94. package/dist/components/effects/VolumetricFogEffect.d.ts +5 -3
  95. package/dist/components/effects/VolumetricFogEffect.d.ts.map +1 -1
  96. package/dist/components/effects/VolumetricFogEffect.js +211 -93
  97. package/dist/components/effects/WaterCausticsEffect.d.ts +13 -0
  98. package/dist/components/effects/WaterCausticsEffect.d.ts.map +1 -0
  99. package/dist/components/effects/WaterCausticsEffect.js +308 -0
  100. package/dist/components/effects/index.d.ts +9 -0
  101. package/dist/components/effects/index.d.ts.map +1 -1
  102. package/dist/components/effects/index.js +9 -0
  103. package/dist/components/index.d.ts +16 -0
  104. package/dist/components/index.d.ts.map +1 -1
  105. package/dist/components/index.js +8 -0
  106. package/dist/constants.d.ts +1 -1
  107. package/dist/constants.d.ts.map +1 -1
  108. package/dist/constants.js +1 -1
  109. package/dist/hooks/useModelObject.d.ts +6 -1
  110. package/dist/hooks/useModelObject.d.ts.map +1 -1
  111. package/dist/hooks/useModelObject.js +19 -6
  112. package/dist/types/gridConfigs.d.ts +98 -0
  113. package/dist/types/gridConfigs.d.ts.map +1 -1
  114. package/dist/types/index.d.ts +1 -1
  115. package/dist/types/index.d.ts.map +1 -1
  116. package/package.json +2 -2
@@ -0,0 +1,308 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect, useLayoutEffect, useMemo, useRef } from 'react';
3
+ import * as THREE from 'three';
4
+ import { useFrame } from '@react-three/fiber';
5
+ import { applyGenerativeAnimations } from '../../utils/handleGenerativeEffectsAnimations.js';
6
+ import { useObjectReady } from '../../hooks/useObjectReady.js';
7
+ /**
8
+ * Sunlight refracted through a rippling water surface: Snell refraction focuses the light into a caustic web on the floor and over the object, with depth blur and chromatic fringes.
9
+ *
10
+ * h = Σ Aᵢ sin(kᵢ·x − ωᵢt) · q = p + d(1 − 1/n)∇h · I = |∂p/∂x × ∂p/∂y| / |∂q/∂x × ∂q/∂y| = 1/|det(I + d(1 − 1/n)H)|
11
+ */
12
+ const NOISE2 = /* glsl */ `
13
+ float hash12(vec2 p){
14
+ vec3 p3 = fract(vec3(p.xyx) * 0.1031);
15
+ p3 += dot(p3, p3.yzx + 33.33);
16
+ return fract((p3.x + p3.y) * p3.z);
17
+ }
18
+ float vnoise2(vec2 p){
19
+ vec2 i = floor(p);
20
+ vec2 f = fract(p);
21
+ f = f * f * (3.0 - 2.0 * f);
22
+ return mix(mix(hash12(i), hash12(i + vec2(1.0, 0.0)), f.x),
23
+ mix(hash12(i + vec2(0.0, 1.0)), hash12(i + vec2(1.0, 1.0)), f.x), f.y);
24
+ }
25
+ float fbm2(vec2 p){
26
+ float a = 0.5, s = 0.0;
27
+ for (int i = 0; i < 4; i++){
28
+ s += a * vnoise2(p);
29
+ p = mat2(1.6, 1.2, -1.2, 1.6) * p;
30
+ a *= 0.5;
31
+ }
32
+ return s;
33
+ }
34
+ `;
35
+ // ---------------------------------------------------------------------------
36
+ // Caustics from Snell's law and the Jacobian of the refraction map.
37
+ // The surface is a small sum of travelling waves, h(x,z,t) = sum A sin(k.x - wt),
38
+ // with the amplitudes modulated by a slow noise field so it never looks periodic.
39
+ // A vertical-ish sun ray hitting the surface at p is bent toward the surface
40
+ // normal; to first order in the slope it lands, after a depth d, at
41
+ // q = p + d (1 - 1/n) grad h(p), n = 1.33.
42
+ // A patch of light of area dA at the surface arrives squeezed into the area
43
+ // |dq/dx x dq/dy|, so the brightness is the Jacobian area ratio
44
+ // I = |dp/dx x dp/dy| / |dq/dx x dq/dy| = 1 / |det(Id + d(1 - 1/n) H)|,
45
+ // H the Hessian of h (the chain rule dq = J dp makes the pixel-derivative ratio
46
+ // exact, with no 2x2 quad artefacts). Wherever det J passes through zero the
47
+ // rays cross and a caustic filament lights up; the regularisation eps and the
48
+ // blur term below are the finite pixel footprint, so the filaments stay
49
+ // anti-aliased and their mean brightness is conserved at grazing angles.
50
+ // n is evaluated three times, once per colour channel, which spreads the
51
+ // filaments into the familiar red/blue fringes.
52
+ // ---------------------------------------------------------------------------
53
+ const causticCommon = /* glsl */ `
54
+ uniform float uTime;
55
+ uniform float uBound;
56
+ uniform float uWaterDepth;
57
+ uniform float uWaveScale;
58
+ uniform float uWaveHeight;
59
+ uniform float uDispersion;
60
+ uniform float uRadius;
61
+ uniform float uIntensity;
62
+ uniform float uOpacity;
63
+ uniform float uHasHost;
64
+ uniform vec3 uColor;
65
+
66
+ ${NOISE2}
67
+
68
+ const int WAVES = 6;
69
+ const float TAU = 6.28318530718;
70
+ // the sun, matched to the studio key light; rays inside the water are close to vertical
71
+ const vec3 LUP = vec3(0.3853, 0.8807, 0.2752);
72
+
73
+ float waveKF(float i){ return 0.78 + 0.5 * fract(i * 0.618034); }
74
+ vec2 waveDir(float i){ float a = i * 2.39996 + 0.7; return vec2(cos(a), sin(a)); }
75
+
76
+ // slow, low-frequency modulation of the wave amplitudes (swell drifting through)
77
+ vec2 waveNoise(vec2 x){
78
+ float t = uTime * 0.05;
79
+ return vec2(vnoise2(x * 0.42 + vec2(t, 0.0)), vnoise2(x * 0.27 + vec2(-0.7 * t, 5.1)));
80
+ }
81
+ float waveSteep(float i, vec2 nm){
82
+ return uWaveHeight * 0.115 * (0.66 + 0.68 * mix(nm.x, nm.y, fract(i * 0.41)));
83
+ }
84
+ // the same slow field also bends the phase, so the six wave trains never lock
85
+ // into a lattice. Its own gradient is ~10% of the wave's, and is neglected in H.
86
+ float wavePhase(float i, vec2 nm){
87
+ return i * 1.7 + TAU * mix(nm.y, nm.x, fract(i * 0.73));
88
+ }
89
+
90
+ // grad h : slope of the surface, what bends the ray
91
+ vec2 waveGrad(vec2 x, vec2 nm){
92
+ float kb = TAU / max(uWaveScale * uBound, 1e-3);
93
+ vec2 g = vec2(0.0);
94
+ for (int i = 0; i < WAVES; i++){
95
+ float fi = float(i);
96
+ float kf = waveKF(fi);
97
+ float k = kb * kf;
98
+ vec2 d = waveDir(fi);
99
+ float ph = k * dot(d, x) - uTime * 0.17 * sqrt(k) + wavePhase(fi, nm);
100
+ g += waveSteep(fi, nm) * d * cos(ph);
101
+ }
102
+ return g;
103
+ }
104
+
105
+ // Hessian of h : the curvature that focuses the light
106
+ mat2 waveHess(vec2 x, vec2 nm){
107
+ float kb = TAU / max(uWaveScale * uBound, 1e-3);
108
+ mat2 H = mat2(0.0);
109
+ for (int i = 0; i < WAVES; i++){
110
+ float fi = float(i);
111
+ float kf = waveKF(fi);
112
+ float k = kb * kf;
113
+ vec2 d = waveDir(fi);
114
+ float ph = k * dot(d, x) - uTime * 0.17 * sqrt(k) + wavePhase(fi, nm);
115
+ float s = -waveSteep(fi, nm) * k * sin(ph);
116
+ H += mat2(s * d.x * d.x, s * d.x * d.y, s * d.x * d.y, s * d.y * d.y);
117
+ }
118
+ return H;
119
+ }
120
+
121
+ // Brightness of one colour channel: 1/|det J|, low-pass filtered by the pixel
122
+ // footprint. eps is how much det varies across one pixel, so (1 + eps)/(|det| + eps)
123
+ // is the singular spike convolved with the pixel: sharp filaments up close,
124
+ // smoothly washing out to the unfocused mean of 1 at grazing angles.
125
+ float causticChannel(vec2 base, vec2 grad, vec2 nm, float depth, float nRef, float fp){
126
+ float c = depth * (1.0 - 1.0 / nRef);
127
+ // invert the refraction map once: which surface point sends light to here
128
+ vec2 p = base - c * grad;
129
+ mat2 H = waveHess(p, nm);
130
+ mat2 J = mat2(1.0, 0.0, 0.0, 1.0) + c * H;
131
+ float det = J[0][0] * J[1][1] - J[0][1] * J[1][0];
132
+ float kb = TAU / max(uWaveScale * uBound, 1e-3);
133
+ float slope = c * kb * kb * uWaveHeight * 0.4 + kb * 0.2; // d(det)/d(distance)
134
+ float eps = 0.035 + fp * slope * 0.35;
135
+ return min((1.0 + eps) / (abs(det) + eps), 9.0);
136
+ }
137
+
138
+ // shadow of the host: march from the receiving point toward the sun and see
139
+ // whether the bounding sphere gets in the way (soft, widening with distance)
140
+ float hostShade(vec3 world){
141
+ if (uHasHost < 0.5) return 1.0;
142
+ float b = dot(world, LUP);
143
+ if (b > 0.0) return 1.0;
144
+ float m = sqrt(max(length(world) * length(world) - b * b, 0.0));
145
+ return smoothstep(uBound * 0.97, uBound * 1.3 + (-b) * 0.12, m);
146
+ }
147
+
148
+ // the whole caustic colour at a receiving point
149
+ vec3 causticAt(vec3 world, float fade){
150
+ // the pixel footprint on the receiving surface, in world units: taken first so
151
+ // the derivatives stay uniform across the quad
152
+ float fp = max(length(vec2(dFdx(world.x), dFdx(world.z))), length(vec2(dFdy(world.x), dFdy(world.z))));
153
+ float level = uBound * (uWaterDepth - 1.0);
154
+ float depth = max(level - world.y, 0.0);
155
+ float lit = smoothstep(0.0, 0.18 * uBound, level - world.y);
156
+ // where the ray through this point crossed the surface
157
+ vec2 base = world.xz + depth * LUP.xz / LUP.y;
158
+ vec2 nm = waveNoise(base);
159
+ vec2 grad = waveGrad(base, nm);
160
+ float d = uDispersion * 0.006;
161
+ float ir = causticChannel(base, grad, nm, depth, 1.33 - d, fp);
162
+ float ig = causticChannel(base, grad, nm, depth, 1.33, fp);
163
+ float ib = causticChannel(base, grad, nm, depth, 1.33 + d, fp);
164
+ // tone map: a dim wash where the light is unfocused, bright thin filaments
165
+ vec3 I = vec3(ir, ig, ib);
166
+ vec3 b = pow(I, vec3(1.8)) * 0.085;
167
+ vec3 col = uColor * b * (0.75 + 0.25 * I / max(max(I.r, I.g), I.b));
168
+ return col * lit * fade * hostShade(world) * uIntensity * uOpacity;
169
+ }
170
+ `;
171
+ const floorVert = /* glsl */ `
172
+ uniform float uRadius;
173
+ uniform float uBound;
174
+ varying vec3 vWorld;
175
+ void main(){
176
+ vWorld = vec3(position.x * uRadius * uBound, -uBound + 0.004 * uBound, position.z * uRadius * uBound);
177
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(vWorld, 1.0);
178
+ }
179
+ `;
180
+ const floorFrag = /* glsl */ `
181
+ ${causticCommon}
182
+ varying vec3 vWorld;
183
+ void main(){
184
+ float r = length(vWorld.xz) / max(uRadius * uBound, 1e-4);
185
+ float edge = 1.0 - smoothstep(0.62, 1.0, r);
186
+ vec3 col = causticAt(vWorld, edge * edge);
187
+ if (max(max(col.r, col.g), col.b) < 0.0015) discard;
188
+ gl_FragColor = vec4(col, 1.0);
189
+ }
190
+ `;
191
+ const skinVert = /* glsl */ `
192
+ uniform float uBound;
193
+ varying vec3 vWorld;
194
+ varying vec3 vNormal2;
195
+ void main(){
196
+ vNormal2 = normalize(position);
197
+ vWorld = position * uBound * 1.004;
198
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(vWorld, 1.0);
199
+ }
200
+ `;
201
+ const skinFrag = /* glsl */ `
202
+ ${causticCommon}
203
+ varying vec3 vWorld;
204
+ varying vec3 vNormal2;
205
+ void main(){
206
+ // the skin only catches light where it faces the sun, like any lit surface
207
+ float facing = dot(normalize(vNormal2), LUP);
208
+ float fade = smoothstep(-0.05, 0.45, facing) * pow(max(facing, 0.0), 0.7);
209
+ vec3 col = causticAt(vWorld, fade);
210
+ if (max(max(col.r, col.g), col.b) < 0.0015) discard;
211
+ gl_FragColor = vec4(col, 1.0);
212
+ }
213
+ `;
214
+ function createUniforms() {
215
+ return {
216
+ uTime: { value: 0 },
217
+ uSpeed: { value: 1 },
218
+ uIntensity: { value: 1 },
219
+ uOpacity: { value: 1 },
220
+ uColor: { value: new THREE.Color() },
221
+ uWaterDepth: { value: 2.6 },
222
+ uWaveScale: { value: 0.45 },
223
+ uWaveHeight: { value: 1 },
224
+ uDispersion: { value: 0.5 },
225
+ uRadius: { value: 3.4 },
226
+ uBound: { value: 1 },
227
+ uHasHost: { value: 1 },
228
+ };
229
+ }
230
+ function applyConfig(u, c, bound, env) {
231
+ u.uSpeed.value = c.speed;
232
+ u.uIntensity.value = c.intensity;
233
+ u.uOpacity.value = c.opacity;
234
+ u.uColor.value.set(c.color);
235
+ u.uWaterDepth.value = c.waterDepth;
236
+ u.uWaveScale.value = c.waveScale;
237
+ u.uWaveHeight.value = c.waveHeight;
238
+ u.uDispersion.value = c.dispersion;
239
+ u.uRadius.value = c.radius;
240
+ u.uBound.value = bound;
241
+ u.uHasHost.value = env && env.hasHost ? 1 : 0;
242
+ }
243
+ function build(u, c, bound, env) {
244
+ const hasHost = !!(env && env.hasHost);
245
+ const add = { uniforms: u, transparent: true, depthWrite: false, blending: THREE.AdditiveBlending };
246
+ const floorMat = new THREE.ShaderMaterial({ vertexShader: floorVert, fragmentShader: floorFrag, ...add });
247
+ const skinMat = new THREE.ShaderMaterial({ vertexShader: skinVert, fragmentShader: skinFrag, side: THREE.FrontSide, ...add });
248
+ const floorGeo = new THREE.CircleGeometry(1, 128);
249
+ floorGeo.rotateX(-Math.PI / 2);
250
+ const skinGeo = new THREE.SphereGeometry(1, 96, 64);
251
+ const floor = new THREE.Mesh(floorGeo, floorMat);
252
+ const skin = new THREE.Mesh(skinGeo, skinMat);
253
+ floor.frustumCulled = false;
254
+ skin.frustumCulled = false;
255
+ skin.visible = hasHost;
256
+ const group = new THREE.Group();
257
+ group.add(floor, skin);
258
+ const materials = hasHost ? [floorMat, skinMat] : [floorMat];
259
+ return {
260
+ object: group,
261
+ materials,
262
+ apply(c2) {
263
+ skin.visible = hasHost && c2.showOnHost !== false;
264
+ },
265
+ update(dt, camera) {
266
+ u.uTime.value += dt * u.uSpeed.value;
267
+ },
268
+ dispose() { floorGeo.dispose(); skinGeo.dispose(); floorMat.dispose(); skinMat.dispose(); },
269
+ };
270
+ }
271
+ /** Defaults for every knob, so an older saved config still renders. */
272
+ const DEFAULTS = {
273
+ intensity: 1,
274
+ speed: 1,
275
+ color: '#a9ecff',
276
+ opacity: 1,
277
+ waterDepth: 2.6,
278
+ waveScale: 0.45,
279
+ waveHeight: 1,
280
+ dispersion: 0.5,
281
+ radius: 3.4,
282
+ showOnHost: true,
283
+ };
284
+ const WaterCausticsEffect = ({ boundingRadius, config, animations, hasHost = false, onObjectReady, onObjectDispose }) => {
285
+ const rootRef = useRef(null);
286
+ const animCache = useRef({});
287
+ useObjectReady(rootRef, config, onObjectReady, onObjectDispose);
288
+ // a standalone effect gets boundingRadius 1
289
+ const b = boundingRadius > 0 ? boundingRadius : 1;
290
+ const cfg = useMemo(() => ({ ...DEFAULTS, ...config }), [config]);
291
+ const env = useMemo(() => ({ hasHost: hasHost }), [hasHost]);
292
+ // uniforms outlive the objects, so keyframe animations survive a rebuild
293
+ const uniforms = useMemo(() => createUniforms(), []);
294
+ // rebuilt only when the host size or a structural knob changes
295
+ const instance = useMemo(() => build(uniforms, { ...DEFAULTS, ...config }, b, env), [uniforms, b, env]);
296
+ useEffect(() => () => instance.dispose(), [instance]);
297
+ useLayoutEffect(() => {
298
+ applyConfig(uniforms, cfg, b, env);
299
+ instance.apply(cfg);
300
+ }, [instance, uniforms, cfg, b, env]);
301
+ useFrame((state, delta) => {
302
+ instance.update(Math.min(delta, 0.1), state.camera);
303
+ if (animations?.length)
304
+ applyGenerativeAnimations(instance.materials, animations, animCache.current, Date.now(), false);
305
+ });
306
+ return (_jsx("group", { ref: rootRef, children: _jsx("primitive", { object: instance.object }) }));
307
+ };
308
+ export default WaterCausticsEffect;
@@ -25,4 +25,13 @@ export { default as SmokePlumeEffect } from './SmokePlumeEffect';
25
25
  export { default as SmokeRibbon } from './SmokeRibbon';
26
26
  export { default as SmokeRingEffect } from './SmokeRingEffect';
27
27
  export { default as VolumetricFogEffect } from './VolumetricFogEffect';
28
+ export { default as GalaxyEffect } from './GalaxyEffect';
29
+ export { default as FireflySwarmEffect } from './FireflySwarmEffect';
30
+ export { default as MurmurationEffect } from './MurmurationEffect';
31
+ export { default as PlanetaryRingsEffect } from './PlanetaryRingsEffect';
32
+ export { default as WaterCausticsEffect } from './WaterCausticsEffect';
33
+ export { default as IceHaloEffect } from './IceHaloEffect';
34
+ export { default as FallingLeavesEffect } from './FallingLeavesEffect';
35
+ export { default as LichtenbergEffect } from './LichtenbergEffect';
36
+ export { default as DandelionSeedsEffect } from './DandelionSeedsEffect';
28
37
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/effects/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/effects/index.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -22,3 +22,12 @@ export { default as SmokePlumeEffect } from './SmokePlumeEffect.js';
22
22
  export { default as SmokeRibbon } from './SmokeRibbon.js';
23
23
  export { default as SmokeRingEffect } from './SmokeRingEffect.js';
24
24
  export { default as VolumetricFogEffect } from './VolumetricFogEffect.js';
25
+ export { default as GalaxyEffect } from './GalaxyEffect.js';
26
+ export { default as FireflySwarmEffect } from './FireflySwarmEffect.js';
27
+ export { default as MurmurationEffect } from './MurmurationEffect.js';
28
+ export { default as PlanetaryRingsEffect } from './PlanetaryRingsEffect.js';
29
+ export { default as WaterCausticsEffect } from './WaterCausticsEffect.js';
30
+ export { default as IceHaloEffect } from './IceHaloEffect.js';
31
+ export { default as FallingLeavesEffect } from './FallingLeavesEffect.js';
32
+ export { default as LichtenbergEffect } from './LichtenbergEffect.js';
33
+ export { default as DandelionSeedsEffect } from './DandelionSeedsEffect.js';
@@ -10,6 +10,7 @@ export type { FrameProps } from './Frame';
10
10
  export type { FrameShapeType } from './FrameGeometry';
11
11
  export type { GalaxyProps } from './Galaxy';
12
12
  export type { GalleryLayoutProps } from './GalleryLayout';
13
+ export type { LayoutInstancesProps } from './LayoutInstances';
13
14
  export type { GeometryMeshProps } from './GeometryShape';
14
15
  export type { GlyphsProps } from './Glyphs';
15
16
  export type { AdvancedGridProps } from './AdvancedGrid';
@@ -18,6 +19,13 @@ export type { ContourGridProps } from './ContourGrid';
18
19
  export type { FractalGridProps } from './FractalGrid';
19
20
  export type { MoireGridProps } from './MoireGrid';
20
21
  export type { QuasiGridProps } from './QuasiGrid';
22
+ export type { GravWaveGridProps } from './GravWaveGrid';
23
+ export type { GirihGridProps } from './GirihGrid';
24
+ export type { WallpaperGridProps } from './WallpaperGrid';
25
+ export type { ReactionDiffusionGridProps } from './ReactionDiffusionGrid';
26
+ export type { FlowNetGridProps } from './FlowNetGrid';
27
+ export type { ChladniGridProps } from './ChladniGrid';
28
+ export type { HyperbolicGridProps } from './HyperbolicGrid';
21
29
  export type { GridGeneratorConfig } from './GridsGenerator';
22
30
  export type { GridHelperProps } from './GridHelper';
23
31
  export type { HexGridProps } from './HexGrid';
@@ -72,6 +80,7 @@ export { FrameGeometry } from './FrameGeometry';
72
80
  export { FrameImage } from './FrameImage';
73
81
  export { default as Galaxy } from './Galaxy';
74
82
  export { default as GalleryLayout } from './GalleryLayout';
83
+ export { default as LayoutInstances } from './LayoutInstances';
75
84
  export { default as Glyphs } from './Glyphs';
76
85
  export { default as GridHelper } from './GridHelper';
77
86
  export { default as GridGenerator } from './GridsGenerator';
@@ -92,9 +101,16 @@ export { ContourGrid, defaultContourGridConfig } from './ContourGrid';
92
101
  export { FractalGrid, defaultFractalGridConfig } from './FractalGrid';
93
102
  export { MoireGrid, defaultMoireGridConfig } from './MoireGrid';
94
103
  export { QuasiGrid, defaultQuasiGridConfig } from './QuasiGrid';
104
+ export { FlowNetGrid, defaultFlowNetGridConfig } from './FlowNetGrid';
105
+ export { ChladniGrid, defaultChladniGridConfig } from './ChladniGrid';
106
+ export { HyperbolicGrid, defaultHyperbolicGridConfig } from './HyperbolicGrid';
95
107
  export { HexGrid, defaultHexGridConfig } from './HexGrid';
96
108
  export { RadarGrid, defaultRadarGridConfig } from './RadarGrid';
97
109
  export { VoronoiGrid, defaultVoronoiGridConfig } from './VoronoiGrid';
110
+ export { GravWaveGrid, defaultGravWaveGridConfig } from './GravWaveGrid';
111
+ export { GirihGrid, defaultGirihGridConfig } from './GirihGrid';
112
+ export { WallpaperGrid, defaultWallpaperGridConfig } from './WallpaperGrid';
113
+ export { ReactionDiffusionGrid, defaultReactionDiffusionGridConfig } from './ReactionDiffusionGrid';
98
114
  export { default as ModelBoundary } from './ModelBoundary';
99
115
  export { default as ModelPrimitive } from './ModelPrimitive';
100
116
  export { default as ObjectNode } from './ObjectNode';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"AAIA,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC7F,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC5D,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG1C,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACxD,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtD,YAAY,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACxD,YAAY,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC1C,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGxD,OAAO,EAAE,cAAc,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAO9C,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,aAAa,EACb,WAAW,EACX,YAAY,EACZ,MAAM,EACN,cAAc,EACd,gBAAgB,EAChB,gBAAgB,IAAI,gBAAgB,EACpC,UAAU,EACV,SAAS,GACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGtD,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAI1B,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/components/index.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ export { FrameGeometry } from './FrameGeometry.js';
19
19
  export { FrameImage } from './FrameImage.js';
20
20
  export { default as Galaxy } from './Galaxy.js';
21
21
  export { default as GalleryLayout } from './GalleryLayout.js';
22
+ export { default as LayoutInstances } from './LayoutInstances.js';
22
23
  export { default as Glyphs } from './Glyphs.js';
23
24
  export { default as GridHelper } from './GridHelper.js';
24
25
  export { default as GridGenerator } from './GridsGenerator.js';
@@ -39,9 +40,16 @@ export { ContourGrid, defaultContourGridConfig } from './ContourGrid.js';
39
40
  export { FractalGrid, defaultFractalGridConfig } from './FractalGrid.js';
40
41
  export { MoireGrid, defaultMoireGridConfig } from './MoireGrid.js';
41
42
  export { QuasiGrid, defaultQuasiGridConfig } from './QuasiGrid.js';
43
+ export { FlowNetGrid, defaultFlowNetGridConfig } from './FlowNetGrid.js';
44
+ export { ChladniGrid, defaultChladniGridConfig } from './ChladniGrid.js';
45
+ export { HyperbolicGrid, defaultHyperbolicGridConfig } from './HyperbolicGrid.js';
42
46
  export { HexGrid, defaultHexGridConfig } from './HexGrid.js';
43
47
  export { RadarGrid, defaultRadarGridConfig } from './RadarGrid.js';
44
48
  export { VoronoiGrid, defaultVoronoiGridConfig } from './VoronoiGrid.js';
49
+ export { GravWaveGrid, defaultGravWaveGridConfig } from './GravWaveGrid.js';
50
+ export { GirihGrid, defaultGirihGridConfig } from './GirihGrid.js';
51
+ export { WallpaperGrid, defaultWallpaperGridConfig } from './WallpaperGrid.js';
52
+ export { ReactionDiffusionGrid, defaultReactionDiffusionGridConfig } from './ReactionDiffusionGrid.js';
45
53
  export { default as ModelBoundary } from './ModelBoundary.js';
46
54
  export { default as ModelPrimitive } from './ModelPrimitive.js';
47
55
  export { default as ObjectNode } from './ObjectNode.js';
@@ -1,3 +1,3 @@
1
- export declare const dataCenterServer = "https://3drise.ai/api/data/";
1
+ export declare const dataCenterServer = "http://localhost:3001/api/data/";
2
2
  export declare const SELF_MANAGED_MATERIAL: Set<string>;
3
3
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,gBAAgB,gCAAgC,CAAC;AAC9D,eAAO,MAAM,qBAAqB,aAchC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,gBAAgB,oCAA2B,CAAC;AACzD,eAAO,MAAM,qBAAqB,aAchC,CAAC"}
package/dist/constants.js CHANGED
@@ -3,7 +3,7 @@ const PRODUCTION_DATA_CENTER_SERVER = 'https://3drise.ai/api/data/';
3
3
  const isLocalHostRuntime = typeof window !== 'undefined' &&
4
4
  (window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1');
5
5
  // export const dataCenterServer = isLocalHostRuntime ? LOCAL_DATA_CENTER_SERVER : PRODUCTION_DATA_CENTER_SERVER;
6
- export const dataCenterServer = PRODUCTION_DATA_CENTER_SERVER;
6
+ export const dataCenterServer = LOCAL_DATA_CENTER_SERVER;
7
7
  export const SELF_MANAGED_MATERIAL = new Set([
8
8
  // The landscape owns its shader: splat arrays, height blending and the
9
9
  // heightmap displacement are the material. useMaterialApplication would
@@ -19,7 +19,12 @@ import type { CreatedObjectSettings } from '@3driseai/3drise-core';
19
19
  * Instances the hook creates are its own — registered on mount, unregistered and disposed
20
20
  * on unmount. An instance it merely found belongs to whoever preloaded it and is left
21
21
  * alone.
22
+ *
23
+ * `slot` > 0 is an extra copy placed by `meshSettings.layout`. It always gets a fresh clone
24
+ * of the cached master — never the registered instance, which can only be mounted once, and
25
+ * never a clone of slot 0, whose tracked material instances would be released twice — and it
26
+ * is not registered in ObjectManager: `ObjectManager.getObject(id)` stays slot 0.
22
27
  */
23
- export declare function useModelObject(createdObject: CreatedObjectSettings): Object3D | null;
28
+ export declare function useModelObject(createdObject: CreatedObjectSettings, slot?: number): Object3D | null;
24
29
  export default useModelObject;
25
30
  //# sourceMappingURL=useModelObject.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useModelObject.d.ts","sourceRoot":"","sources":["../../src/hooks/useModelObject.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAQtC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,aAAa,EAAE,qBAAqB,GAAG,QAAQ,GAAG,IAAI,CAuDpF;AAED,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"useModelObject.d.ts","sourceRoot":"","sources":["../../src/hooks/useModelObject.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAQtC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,cAAc,CAAC,aAAa,EAAE,qBAAqB,EAAE,IAAI,GAAE,MAAU,GAAG,QAAQ,GAAG,IAAI,CA+DtG;AAED,eAAe,cAAc,CAAC"}
@@ -19,11 +19,17 @@ import { ObjectManager, cloneModelAsset, readModelAsset, releaseModelInstance, r
19
19
  * Instances the hook creates are its own — registered on mount, unregistered and disposed
20
20
  * on unmount. An instance it merely found belongs to whoever preloaded it and is left
21
21
  * alone.
22
+ *
23
+ * `slot` > 0 is an extra copy placed by `meshSettings.layout`. It always gets a fresh clone
24
+ * of the cached master — never the registered instance, which can only be mounted once, and
25
+ * never a clone of slot 0, whose tracked material instances would be released twice — and it
26
+ * is not registered in ObjectManager: `ObjectManager.getObject(id)` stays slot 0.
22
27
  */
23
- export function useModelObject(createdObject) {
28
+ export function useModelObject(createdObject, slot = 0) {
24
29
  const id = createdObject.id;
25
30
  const url = createdObject.userData?.url;
26
- const registered = ObjectManager.getObject(id)?.object ?? null;
31
+ const isPrimary = slot === 0;
32
+ const registered = isPrimary ? ObjectManager.getObject(id)?.object ?? null : null;
27
33
  // Suspension point. Nothing above this line may be a hook: the throw discards the
28
34
  // render entirely, and only committed renders need a consistent hook order.
29
35
  const asset = !registered && url ? readModelAsset(url) : null;
@@ -41,7 +47,7 @@ export function useModelObject(createdObject) {
41
47
  instanceRef.current = { object: null, owned: false };
42
48
  }
43
49
  }
44
- const { object, owned } = instanceRef.current;
50
+ const { object } = instanceRef.current;
45
51
  // Layout, not passive: the registry entry has to be in place by the time the host
46
52
  // application reacts to onObjectReady and looks the object up by id.
47
53
  useLayoutEffect(() => {
@@ -53,11 +59,18 @@ export function useModelObject(createdObject) {
53
59
  // the same Object3D in the same commit. A dispose owned by this component would free
54
60
  // materials that the replacement is about to render.
55
61
  retainModelInstance(object);
56
- if (owned && !ObjectManager.getObject(id)) {
62
+ // Register whenever the primary slot finds no entry — not only for an instance this
63
+ // leaf cloned. Turning a layout on or off re-parents slot 0, so its leaf remounts:
64
+ // the new leaf renders while the old entry still exists and takes the object as
65
+ // found, then the old leaf's cleanup removes the entry. Without this, the object
66
+ // would be left on screen with no ObjectManager entry.
67
+ let registeredHere = false;
68
+ if (isPrimary && !ObjectManager.getObject(id)) {
57
69
  ObjectManager.addObject({ id, name: object.name, object });
70
+ registeredHere = true;
58
71
  }
59
72
  return () => {
60
- if (owned) {
73
+ if (registeredHere) {
61
74
  const current = ObjectManager.getObject(id);
62
75
  // After an id remap this lookup misses, which is the answer we want: the
63
76
  // entry now lives under the real id and belongs to the leaf that replaced us.
@@ -67,7 +80,7 @@ export function useModelObject(createdObject) {
67
80
  }
68
81
  releaseModelInstance(object);
69
82
  };
70
- }, [id, object, owned]);
83
+ }, [id, object, isPrimary]);
71
84
  return object;
72
85
  }
73
86
  export default useModelObject;