@firecms/neat 0.5.0 → 0.5.1

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.
@@ -129,6 +129,13 @@ export declare class NeatGradient implements NeatController {
129
129
  private _yOffsetColorMultiplier;
130
130
  private _yOffsetFlowMultiplier;
131
131
  private _tempClearColor;
132
+ private _resizeTimeoutId;
133
+ private _textureNeedsUpdate;
134
+ private _lastColorUpdate;
135
+ private _linkCheckCounter;
136
+ private _mouseUpdateScheduled;
137
+ private _pendingMousePosition;
138
+ private _colorsChanged;
132
139
  constructor(config: NeatConfig & {
133
140
  ref: HTMLCanvasElement;
134
141
  resolution?: number;
@@ -71,6 +71,14 @@ export class NeatGradient {
71
71
  _yOffsetFlowMultiplier = 0.004;
72
72
  // For saving/restoring clear color
73
73
  _tempClearColor = new THREE.Color();
74
+ // Performance optimizations
75
+ _resizeTimeoutId = null;
76
+ _textureNeedsUpdate = false;
77
+ _lastColorUpdate = 0;
78
+ _linkCheckCounter = 0;
79
+ _mouseUpdateScheduled = false;
80
+ _pendingMousePosition = null;
81
+ _colorsChanged = true; // Track if colors need update
74
82
  constructor(config) {
75
83
  const { ref, speed = 4, horizontalPressure = 3, verticalPressure = 3, waveFrequencyX = 5, waveFrequencyY = 5, waveAmplitude = 3, colors, highlights = 4, shadows = 4, colorSaturation = 0, colorBrightness = 1, colorBlending = 5, grainScale = 2, grainIntensity = 0.55, grainSparsity = 0.0, grainSpeed = 0.1, wireframe = false, backgroundColor = "#FFFFFF", backgroundAlpha = 1.0, resolution = 1, seed, yOffset = 0, yOffsetWaveMultiplier = 4, yOffsetColorMultiplier = 4, yOffsetFlowMultiplier = 4,
76
84
  // Flow field parameters
@@ -138,8 +146,10 @@ export class NeatGradient {
138
146
  let tick = seed !== undefined ? seed : getElapsedSecondsInLastHour();
139
147
  const render = () => {
140
148
  const { renderer, camera, scene } = this.sceneState;
141
- // Optimization: check if cached link is still valid in DOM, otherwise search
142
- if (Math.floor(tick * 10) % 5 === 0) {
149
+ // Optimization: check if cached link is still valid in DOM less frequently
150
+ this._linkCheckCounter++;
151
+ if (this._linkCheckCounter >= 300) { // Check every ~5 seconds at 60fps
152
+ this._linkCheckCounter = 0;
143
153
  if (!this._linkElement || !document.contains(this._linkElement)) {
144
154
  this._linkElement = addNeatLink(ref);
145
155
  }
@@ -177,28 +187,42 @@ export class NeatGradient {
177
187
  u.u_mouse_distortion_radius.value = this._mouseDistortionRadius;
178
188
  u.u_mouse_darken.value = this._mouseDarken;
179
189
  u.u_enable_procedural_texture.value = this._enableProceduralTexture ? 1.0 : 0.0;
180
- u.u_procedural_texture.value = this._proceduralTexture;
181
- u.u_texture_ease.value = this._textureEase;
182
- // Optimized Color Update: Update the existing array objects instead of recreating array
183
- const shaderColors = u.u_colors.value;
184
- for (let i = 0; i < COLORS_COUNT; i++) {
185
- if (i < this._colors.length) {
186
- const c = this._colors[i];
187
- shaderColors[i].is_active = c.enabled ? 1.0 : 0.0;
188
- shaderColors[i].color.setStyle(c.color, "");
189
- shaderColors[i].influence = c.influence || 0;
190
- }
191
- else {
192
- shaderColors[i].is_active = 0.0;
190
+ // Only regenerate procedural texture when needed
191
+ if (this._textureNeedsUpdate && this._enableProceduralTexture) {
192
+ if (this._proceduralTexture) {
193
+ this._proceduralTexture.dispose();
193
194
  }
195
+ this._proceduralTexture = this._createProceduralTexture();
196
+ this._textureNeedsUpdate = false;
194
197
  }
195
- u.u_colors_count.value = COLORS_COUNT;
196
- // Wireframe is a material property, not a uniform
198
+ u.u_procedural_texture.value = this._proceduralTexture;
199
+ u.u_texture_ease.value = this._textureEase;
200
+ // Wireframe is a material property and must update every frame to avoid artifacts
197
201
  // @ts-ignore - access material safely
198
202
  this.sceneState.meshes[0].material.wireframe = this._wireframe;
203
+ // Optimized Color Update: Update immediately on change, or throttle to 10 times per second
204
+ const now = Date.now();
205
+ const shouldUpdate = this._colorsChanged || (now - this._lastColorUpdate > 100);
206
+ if (shouldUpdate) {
207
+ this._lastColorUpdate = now;
208
+ this._colorsChanged = false;
209
+ const shaderColors = u.u_colors.value;
210
+ for (let i = 0; i < COLORS_COUNT; i++) {
211
+ if (i < this._colors.length) {
212
+ const c = this._colors[i];
213
+ shaderColors[i].is_active = c.enabled ? 1.0 : 0.0;
214
+ shaderColors[i].color.setStyle(c.color, "");
215
+ shaderColors[i].influence = c.influence || 0;
216
+ }
217
+ else {
218
+ shaderColors[i].is_active = 0.0;
219
+ }
220
+ }
221
+ u.u_colors_count.value = COLORS_COUNT;
222
+ }
199
223
  }
200
- // Render mouse interaction to FBO
201
- if (this._mouseFBO && this._sceneMouse && this._cameraMouse) {
224
+ // Render mouse interaction to FBO - optimize by only rendering when needed
225
+ if (this._mouseFBO && this._sceneMouse && this._cameraMouse && this._mouseDistortionStrength > 0) {
202
226
  let hasActiveBrushes = false;
203
227
  // Update mouse objects - decay rate controls how fast trails fade
204
228
  for (let i = 0; i < this._mouseObjects.length; i++) {
@@ -215,25 +239,23 @@ export class NeatGradient {
215
239
  }
216
240
  }
217
241
  }
218
- // FIX 2: Handle FBO Clearing correctly
219
- // Store current clear color (likely the main background color)
220
- renderer.getClearColor(this._tempClearColor);
221
- const oldClearAlpha = renderer.getClearAlpha();
222
- // Set clear color to Black/Transparent for the FBO.
223
- // Important: If we use the main background color (e.g. White), the FBO
224
- // will be white, causing 100% distortion everywhere.
225
- renderer.setClearColor(0x000000, 0.0);
226
- renderer.setRenderTarget(this._mouseFBO);
227
- renderer.clear();
242
+ // Only render FBO if there are active brushes
228
243
  if (hasActiveBrushes) {
244
+ // Store current clear color (likely the main background color)
245
+ renderer.getClearColor(this._tempClearColor);
246
+ const oldClearAlpha = renderer.getClearAlpha();
247
+ // Set clear color to Black/Transparent for the FBO.
248
+ renderer.setClearColor(0x000000, 0.0);
249
+ renderer.setRenderTarget(this._mouseFBO);
250
+ renderer.clear();
229
251
  renderer.render(this._sceneMouse, this._cameraMouse);
230
- }
231
- renderer.setRenderTarget(null);
232
- // Restore main background color for the actual scene render
233
- renderer.setClearColor(this._tempClearColor, oldClearAlpha);
234
- // Update mouse texture uniform
235
- if (this._cachedUniforms) {
236
- this._cachedUniforms.u_mouse_texture.value = this._mouseFBO.texture;
252
+ renderer.setRenderTarget(null);
253
+ // Restore main background color for the actual scene render
254
+ renderer.setClearColor(this._tempClearColor, oldClearAlpha);
255
+ // Update mouse texture uniform
256
+ if (this._cachedUniforms) {
257
+ this._cachedUniforms.u_mouse_texture.value = this._mouseFBO.texture;
258
+ }
237
259
  }
238
260
  }
239
261
  // Ensure we set the clear color for the main scene explicitly before rendering
@@ -261,8 +283,15 @@ export class NeatGradient {
261
283
  this._cameraMouse.updateProjectionMatrix();
262
284
  }
263
285
  };
264
- this.sizeObserver = new ResizeObserver(entries => {
265
- setSize();
286
+ // Debounce resize to prevent excessive operations
287
+ this.sizeObserver = new ResizeObserver(() => {
288
+ if (this._resizeTimeoutId !== null) {
289
+ clearTimeout(this._resizeTimeoutId);
290
+ }
291
+ this._resizeTimeoutId = window.setTimeout(() => {
292
+ setSize();
293
+ this._resizeTimeoutId = null;
294
+ }, 100); // Wait 100ms after last resize event
266
295
  });
267
296
  this.sizeObserver.observe(ref);
268
297
  render();
@@ -271,6 +300,11 @@ export class NeatGradient {
271
300
  if (this) {
272
301
  cancelAnimationFrame(this.requestRef);
273
302
  this.sizeObserver.disconnect();
303
+ // Clear resize timeout
304
+ if (this._resizeTimeoutId !== null) {
305
+ clearTimeout(this._resizeTimeoutId);
306
+ this._resizeTimeoutId = null;
307
+ }
274
308
  // Cleanup WebGL resources
275
309
  if (this.sceneState) {
276
310
  this.sceneState.renderer.dispose();
@@ -314,6 +348,7 @@ export class NeatGradient {
314
348
  }
315
349
  set colors(colors) {
316
350
  this._colors = colors;
351
+ this._colorsChanged = true; // Flag for immediate update
317
352
  }
318
353
  set highlights(highlights) {
319
354
  this._highlights = highlights / 100;
@@ -419,43 +454,43 @@ export class NeatGradient {
419
454
  set enableProceduralTexture(value) {
420
455
  this._enableProceduralTexture = value;
421
456
  if (value && !this._proceduralTexture) {
422
- this._proceduralTexture = this._createProceduralTexture();
457
+ this._textureNeedsUpdate = true;
423
458
  }
424
459
  }
425
460
  set textureVoidLikelihood(value) {
426
461
  this._textureVoidLikelihood = value;
427
462
  if (this._enableProceduralTexture) {
428
- this._proceduralTexture = this._createProceduralTexture();
463
+ this._textureNeedsUpdate = true;
429
464
  }
430
465
  }
431
466
  set textureVoidWidthMin(value) {
432
467
  this._textureVoidWidthMin = value;
433
468
  if (this._enableProceduralTexture) {
434
- this._proceduralTexture = this._createProceduralTexture();
469
+ this._textureNeedsUpdate = true;
435
470
  }
436
471
  }
437
472
  set textureVoidWidthMax(value) {
438
473
  this._textureVoidWidthMax = value;
439
474
  if (this._enableProceduralTexture) {
440
- this._proceduralTexture = this._createProceduralTexture();
475
+ this._textureNeedsUpdate = true;
441
476
  }
442
477
  }
443
478
  set textureBandDensity(value) {
444
479
  this._textureBandDensity = value;
445
480
  if (this._enableProceduralTexture) {
446
- this._proceduralTexture = this._createProceduralTexture();
481
+ this._textureNeedsUpdate = true;
447
482
  }
448
483
  }
449
484
  set textureColorBlending(value) {
450
485
  this._textureColorBlending = value;
451
486
  if (this._enableProceduralTexture) {
452
- this._proceduralTexture = this._createProceduralTexture();
487
+ this._textureNeedsUpdate = true;
453
488
  }
454
489
  }
455
490
  set textureSeed(value) {
456
491
  this._textureSeed = value;
457
492
  if (this._enableProceduralTexture) {
458
- this._proceduralTexture = this._createProceduralTexture();
493
+ this._textureNeedsUpdate = true;
459
494
  }
460
495
  }
461
496
  get textureEase() {
@@ -467,28 +502,28 @@ export class NeatGradient {
467
502
  set proceduralBackgroundColor(value) {
468
503
  this._proceduralBackgroundColor = value;
469
504
  if (this._enableProceduralTexture) {
470
- this._proceduralTexture = this._createProceduralTexture();
505
+ this._textureNeedsUpdate = true;
471
506
  }
472
507
  }
473
508
  set textureShapeTriangles(value) {
474
509
  this._textureShapeTriangles = value;
475
510
  if (this._enableProceduralTexture)
476
- this._proceduralTexture = this._createProceduralTexture();
511
+ this._textureNeedsUpdate = true;
477
512
  }
478
513
  set textureShapeCircles(value) {
479
514
  this._textureShapeCircles = value;
480
515
  if (this._enableProceduralTexture)
481
- this._proceduralTexture = this._createProceduralTexture();
516
+ this._textureNeedsUpdate = true;
482
517
  }
483
518
  set textureShapeBars(value) {
484
519
  this._textureShapeBars = value;
485
520
  if (this._enableProceduralTexture)
486
- this._proceduralTexture = this._createProceduralTexture();
521
+ this._textureNeedsUpdate = true;
487
522
  }
488
523
  set textureShapeSquiggles(value) {
489
524
  this._textureShapeSquiggles = value;
490
525
  if (this._enableProceduralTexture)
491
- this._proceduralTexture = this._createProceduralTexture();
526
+ this._textureNeedsUpdate = true;
492
527
  }
493
528
  _initScene(resolution) {
494
529
  const width = this._ref.width, height = this._ref.height;
@@ -649,27 +684,42 @@ export class NeatGradient {
649
684
  const rect = this._ref.getBoundingClientRect();
650
685
  const width = this._ref.width;
651
686
  const height = this._ref.height;
652
- this._mouse.x = e.clientX - rect.left - width / 2;
653
- this._mouse.y = -(e.clientY - rect.top - height / 2);
654
- const brush = this._mouseObjects[this._currentBrush];
655
- brush.mesh.scale.set(this._mouseBrushBaseScale, this._mouseBrushBaseScale, 1.0);
656
- brush.active = true;
657
- brush.mesh.visible = true;
658
- brush.mesh.position.set(this._mouse.x, this._mouse.y, 0);
659
- brush.mesh.rotation.z = Math.random() * Math.PI * 2;
660
- if (brush.mesh.material instanceof THREE.MeshBasicMaterial) {
661
- brush.mesh.material.opacity = 1.0;
687
+ // Store pending mouse position
688
+ this._pendingMousePosition = {
689
+ x: e.clientX - rect.left - width / 2,
690
+ y: -(e.clientY - rect.top - height / 2)
691
+ };
692
+ // Batch mouse updates using requestAnimationFrame
693
+ if (!this._mouseUpdateScheduled) {
694
+ this._mouseUpdateScheduled = true;
695
+ requestAnimationFrame(() => {
696
+ this._mouseUpdateScheduled = false;
697
+ if (!this._pendingMousePosition)
698
+ return;
699
+ this._mouse.x = this._pendingMousePosition.x;
700
+ this._mouse.y = this._pendingMousePosition.y;
701
+ const brush = this._mouseObjects[this._currentBrush];
702
+ brush.mesh.scale.set(this._mouseBrushBaseScale, this._mouseBrushBaseScale, 1.0);
703
+ brush.active = true;
704
+ brush.mesh.visible = true;
705
+ brush.mesh.position.set(this._mouse.x, this._mouse.y, 0);
706
+ brush.mesh.rotation.z = Math.random() * Math.PI * 2;
707
+ if (brush.mesh.material instanceof THREE.MeshBasicMaterial) {
708
+ brush.mesh.material.opacity = 1.0;
709
+ }
710
+ this._currentBrush = (this._currentBrush + 1) % this._mouseObjects.length;
711
+ this._pendingMousePosition = null;
712
+ });
662
713
  }
663
- this._currentBrush = (this._currentBrush + 1) % this._mouseObjects.length;
664
714
  }
665
715
  _createProceduralTexture() {
666
716
  // Texture size - 1024 provides good balance between quality and performance
667
- // Can be increased to 2048 for even better quality if needed
717
+ // Reduced from 2048 for better performance
668
718
  const texSize = 1024;
669
719
  const sourceCanvas = document.createElement('canvas');
670
720
  sourceCanvas.width = texSize;
671
721
  sourceCanvas.height = texSize;
672
- const sCtx = sourceCanvas.getContext('2d');
722
+ const sCtx = sourceCanvas.getContext('2d', { willReadFrequently: true });
673
723
  if (!sCtx)
674
724
  return new THREE.Texture();
675
725
  let seed = this._textureSeed;
@@ -773,7 +823,7 @@ export class NeatGradient {
773
823
  const canvas = document.createElement('canvas');
774
824
  canvas.width = texSize;
775
825
  canvas.height = texSize;
776
- const ctx = canvas.getContext('2d');
826
+ const ctx = canvas.getContext('2d', { willReadFrequently: true });
777
827
  if (!ctx)
778
828
  return new THREE.Texture();
779
829
  // Start filled with the chosen void color so gaps show that color
@@ -832,10 +882,23 @@ function updateCamera(camera, width, height) {
832
882
  const ratio = width / height;
833
883
  const targetWidth = Math.sqrt(targetPlaneArea * ratio);
834
884
  const targetHeight = targetPlaneArea / targetWidth;
835
- const left = -PLANE_WIDTH / 2;
836
- const right = Math.min((left + targetWidth) / 1.5, PLANE_WIDTH / 2);
837
- const top = PLANE_HEIGHT / 4;
838
- const bottom = Math.max((top - targetHeight) / 2, -PLANE_HEIGHT / 4);
885
+ let left = -PLANE_WIDTH / 2;
886
+ let right = Math.min((left + targetWidth) / 1.5, PLANE_WIDTH / 2);
887
+ let top = PLANE_HEIGHT / 4;
888
+ let bottom = Math.max((top - targetHeight) / 2, -PLANE_HEIGHT / 4);
889
+ // Fix for mobile portrait: adjust bounds for proper aspect ratio AND zoom out slightly
890
+ if (ratio < 1) {
891
+ // Portrait mode - scale horizontal bounds by aspect ratio to prevent stretching
892
+ const horizontalScale = ratio;
893
+ left = left * horizontalScale;
894
+ right = right * horizontalScale;
895
+ // Zoom out slightly on mobile (1.1 = 10% zoom out)
896
+ const mobileZoomFactor = 1.05;
897
+ left = left * mobileZoomFactor;
898
+ right = right * mobileZoomFactor;
899
+ top = top * mobileZoomFactor;
900
+ bottom = bottom * mobileZoomFactor;
901
+ }
839
902
  const near = -100;
840
903
  const far = 1000;
841
904
  if (camera instanceof THREE.OrthographicCamera) {
@@ -852,8 +915,13 @@ function updateCamera(camera, width, height) {
852
915
  camera.updateProjectionMatrix();
853
916
  }
854
917
  }
918
+ // Cache shader strings to avoid repeated concatenation
919
+ let cachedVertexShader = null;
920
+ let cachedFragmentShader = null;
855
921
  function buildVertexShader() {
856
- return `
922
+ if (cachedVertexShader)
923
+ return cachedVertexShader;
924
+ cachedVertexShader = `
857
925
  void main() {
858
926
  vUv = uv;
859
927
 
@@ -931,9 +999,12 @@ void main() {
931
999
  v_new_position = gl_Position;
932
1000
  }
933
1001
  `;
1002
+ return cachedVertexShader;
934
1003
  }
935
1004
  function buildFragmentShader() {
936
- return `
1005
+ if (cachedFragmentShader)
1006
+ return cachedFragmentShader;
1007
+ cachedFragmentShader = `
937
1008
  float random(vec2 p) {
938
1009
  return fract(sin(dot(p, vec2(12.9898,78.233))) * 43758.5453);
939
1010
  }
@@ -1016,8 +1087,14 @@ void main() {
1016
1087
  gl_FragColor = vec4(color, 1.0);
1017
1088
  }
1018
1089
  `;
1090
+ return cachedFragmentShader;
1019
1091
  }
1020
- const buildUniforms = () => `
1092
+ // Cache uniforms string as well
1093
+ let cachedUniformsShader = null;
1094
+ const buildUniforms = () => {
1095
+ if (cachedUniformsShader)
1096
+ return cachedUniformsShader;
1097
+ cachedUniformsShader = `
1021
1098
  precision highp float;
1022
1099
 
1023
1100
  struct Color {
@@ -1082,7 +1159,14 @@ varying vec3 v_color;
1082
1159
  varying float v_displacement_amount;
1083
1160
 
1084
1161
  `;
1085
- const buildNoise = () => `
1162
+ return cachedUniformsShader;
1163
+ };
1164
+ // Cache noise functions as well
1165
+ let cachedNoiseShader = null;
1166
+ const buildNoise = () => {
1167
+ if (cachedNoiseShader)
1168
+ return cachedNoiseShader;
1169
+ cachedNoiseShader = `
1086
1170
 
1087
1171
  // 1. REPLACEMENT PERMUTE:
1088
1172
  // Uses a hash function (fract/sin) instead of a modular lookup table.
@@ -1236,7 +1320,14 @@ float cnoise(vec3 P)
1236
1320
  return 2.2 * n_xyz;
1237
1321
  }
1238
1322
  `;
1239
- const buildColorFunctions = () => `
1323
+ return cachedNoiseShader;
1324
+ };
1325
+ // Cache color functions as well
1326
+ let cachedColorFunctionsShader = null;
1327
+ const buildColorFunctions = () => {
1328
+ if (cachedColorFunctionsShader)
1329
+ return cachedColorFunctionsShader;
1330
+ cachedColorFunctionsShader = `
1240
1331
 
1241
1332
  vec3 saturation(vec3 rgb, float adjustment) {
1242
1333
  const vec3 W = vec3(0.2125, 0.7154, 0.0721);
@@ -1280,6 +1371,8 @@ vec3 hsv2rgb(vec3 c)
1280
1371
  return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
1281
1372
  }
1282
1373
  `;
1374
+ return cachedColorFunctionsShader;
1375
+ };
1283
1376
  const setLinkStyles = (link) => {
1284
1377
  link.id = LINK_ID;
1285
1378
  link.href = "https://neat.firecms.co";
@@ -1 +1 @@
1
- {"version":3,"file":"NeatGradient.js","sourceRoot":"","sources":["../src/NeatGradient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NeatGradient.js","sourceRoot":"","sources":["../src/NeatGradient.ts"],"names":[],"mappings":"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"}