@pixerate/editor 0.275.1 → 0.277.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/dist/animation-editor/index.cjs +62 -62
  2. package/dist/animation-editor/index.js +6 -6
  3. package/dist/brushes/index.cjs +84 -71
  4. package/dist/brushes/index.js +20 -7
  5. package/dist/brushes/patch.d.cts +4 -4
  6. package/dist/brushes/patch.d.ts +4 -4
  7. package/dist/brushes/profiles.d.cts +4 -0
  8. package/dist/brushes/profiles.d.ts +4 -0
  9. package/dist/brushes/schema.d.cts +2 -0
  10. package/dist/brushes/schema.d.ts +2 -0
  11. package/dist/brushes/types.d.cts +32 -1
  12. package/dist/brushes/types.d.ts +32 -1
  13. package/dist/{brushstrokeRender-2RQL46WB.cjs → brushstrokeRender-7HOMKZNO.cjs} +21 -21
  14. package/dist/{brushstrokeRender-WGY4DZHF.js → brushstrokeRender-EIK3625T.js} +5 -5
  15. package/dist/canvas/index.cjs +13 -13
  16. package/dist/canvas/index.js +1 -1
  17. package/dist/{chunk-T6KNJVBP.cjs → chunk-4NZTK7LM.cjs} +35 -35
  18. package/dist/{chunk-LMG57L5A.js → chunk-CTHWXW5M.js} +121 -8
  19. package/dist/{chunk-43XJC3PP.js → chunk-DWPFGWW5.js} +1 -1
  20. package/dist/{chunk-MSWLJI4G.js → chunk-FNIWHSLI.js} +2 -2
  21. package/dist/{chunk-JDXWLCXF.cjs → chunk-H3EME3S5.cjs} +2 -2
  22. package/dist/{chunk-Y2ISSVPH.js → chunk-HHX7ST6Z.js} +167 -9
  23. package/dist/{chunk-6QNDGMK7.cjs → chunk-HRUK5TFW.cjs} +187 -45
  24. package/dist/{chunk-NIBFKXMD.cjs → chunk-IFWLZZCW.cjs} +619 -2
  25. package/dist/{chunk-W6JDUXP3.js → chunk-J23JOHPR.js} +1 -1
  26. package/dist/{chunk-HVO6XCI4.js → chunk-JPB65KQ6.js} +1 -1
  27. package/dist/{chunk-Y354ETAE.cjs → chunk-JVFGK3DK.cjs} +69 -58
  28. package/dist/{chunk-ACTHSQOI.js → chunk-LDZOXESA.js} +618 -1
  29. package/dist/{chunk-IEEY5RJV.js → chunk-LZE2QZCT.js} +1 -1
  30. package/dist/{chunk-DHC4E2DU.cjs → chunk-MITQGHN3.cjs} +121 -8
  31. package/dist/{chunk-75SYKUOT.js → chunk-N4MCWQZ7.js} +1 -1
  32. package/dist/{chunk-G5TCMKX5.js → chunk-NJLPW4MM.js} +17 -6
  33. package/dist/{chunk-STLTOISW.cjs → chunk-NPPMKMCU.cjs} +17 -17
  34. package/dist/{chunk-OLZXXAER.cjs → chunk-PEQWARCP.cjs} +408 -250
  35. package/dist/{chunk-ZM7IKQ4X.js → chunk-PPDUCZZV.js} +152 -10
  36. package/dist/{chunk-RAPNRK4R.cjs → chunk-QBZEC2JJ.cjs} +88 -88
  37. package/dist/{chunk-RJGW3RQS.js → chunk-ROURHJYT.js} +1 -1
  38. package/dist/{chunk-62MFUHSI.cjs → chunk-UQXULAMQ.cjs} +16 -16
  39. package/dist/{chunk-YYZC2EQO.cjs → chunk-VNF7A2JA.cjs} +23 -23
  40. package/dist/{chunk-C6VB7CPY.cjs → chunk-WFSYZO5Z.cjs} +1 -1
  41. package/dist/image-editor/index.cjs +880 -852
  42. package/dist/image-editor/index.js +36 -8
  43. package/dist/paint/index.cjs +33 -5
  44. package/dist/paint/index.d.cts +1 -0
  45. package/dist/paint/index.d.ts +1 -0
  46. package/dist/paint/index.js +32 -4
  47. package/dist/paint/live-patterns.d.cts +149 -0
  48. package/dist/paint/live-patterns.d.ts +149 -0
  49. package/dist/paint/wet/world.d.cts +13 -0
  50. package/dist/paint/wet/world.d.ts +13 -0
  51. package/dist/paint-editor/brush-model.d.cts +21 -1
  52. package/dist/paint-editor/brush-model.d.ts +21 -1
  53. package/dist/paint-editor/controller.d.cts +102 -1
  54. package/dist/paint-editor/controller.d.ts +102 -1
  55. package/dist/paint-editor/document.d.cts +8 -1
  56. package/dist/paint-editor/document.d.ts +8 -1
  57. package/dist/paint-editor/ferro-tools.d.cts +10 -0
  58. package/dist/paint-editor/ferro-tools.d.ts +10 -0
  59. package/dist/paint-editor/ferro.d.cts +134 -0
  60. package/dist/paint-editor/ferro.d.ts +134 -0
  61. package/dist/paint-editor/index.cjs +2291 -904
  62. package/dist/paint-editor/index.d.cts +2 -0
  63. package/dist/paint-editor/index.d.ts +2 -0
  64. package/dist/paint-editor/index.js +1533 -146
  65. package/dist/paint-editor/stroke.d.cts +14 -0
  66. package/dist/paint-editor/stroke.d.ts +14 -0
  67. package/dist/paint-editor/thick.d.cts +15 -2
  68. package/dist/paint-editor/thick.d.ts +15 -2
  69. package/dist/paint-editor/ui.d.cts +7 -1
  70. package/dist/paint-editor/ui.d.ts +7 -1
  71. package/dist/paint-editor/wet-tools.d.cts +42 -0
  72. package/dist/paint-editor/wet-tools.d.ts +42 -0
  73. package/dist/paint-editor/wet.d.cts +22 -1
  74. package/dist/paint-editor/wet.d.ts +22 -1
  75. package/dist/vector/index.cjs +1002 -1002
  76. package/dist/vector/index.js +7 -7
  77. package/package.json +1 -1
  78. package/skills/pixerate-brushes/SKILL.md +1 -0
  79. package/skills/pixerate-paint-editor/SKILL.md +11 -29
  80. package/skills/pixerate-paint-editor/references/brush-facets.md +1 -0
  81. package/skills/pixerate-paint-editor/references/ferrofluid.md +36 -0
@@ -8,7 +8,7 @@ import {
8
8
  parseOpenTypeFont,
9
9
  removeAnchorsKeepingShape,
10
10
  traceField
11
- } from "../chunk-75SYKUOT.js";
11
+ } from "../chunk-N4MCWQZ7.js";
12
12
  import {
13
13
  ADJUSTMENT_KEYS,
14
14
  ADJUSTMENT_KINDS,
@@ -409,7 +409,7 @@ import {
409
409
  writePsd,
410
410
  xyToTempTint,
411
411
  xyToUv
412
- } from "../chunk-MSWLJI4G.js";
412
+ } from "../chunk-FNIWHSLI.js";
413
413
  import {
414
414
  flattenPath,
415
415
  rasterizeCoverage
@@ -605,7 +605,7 @@ import {
605
605
  spotHealPixels,
606
606
  spotHealWindow,
607
607
  toneOf
608
- } from "../chunk-HVO6XCI4.js";
608
+ } from "../chunk-JPB65KQ6.js";
609
609
  import {
610
610
  bestOffset,
611
611
  contentAwareFill,
@@ -683,14 +683,14 @@ import {
683
683
  warpMeshParamAt,
684
684
  warpMeshRows,
685
685
  warpPresetMesh
686
- } from "../chunk-Y2ISSVPH.js";
686
+ } from "../chunk-HHX7ST6Z.js";
687
687
  import {
688
688
  IMAGE_PROFILE,
689
689
  checkBrush,
690
690
  closest,
691
691
  createBrushLibrary,
692
692
  resolveBrush
693
- } from "../chunk-ZM7IKQ4X.js";
693
+ } from "../chunk-PPDUCZZV.js";
694
694
  import "../chunk-JL6YH5WD.js";
695
695
  import "../chunk-RWDSSK2I.js";
696
696
  import {
@@ -808,7 +808,7 @@ import {
808
808
  wetGpuSupport,
809
809
  wetSimdSupported,
810
810
  wetSupport
811
- } from "../chunk-LMG57L5A.js";
811
+ } from "../chunk-CTHWXW5M.js";
812
812
  import {
813
813
  BrushstrokeCache,
814
814
  brushstrokeDataUrl,
@@ -821,11 +821,12 @@ import {
821
821
  pathStrokeCoverage,
822
822
  pathStrokeDabs,
823
823
  renderBrushstroke
824
- } from "../chunk-W6JDUXP3.js";
824
+ } from "../chunk-J23JOHPR.js";
825
825
  import {
826
826
  CoverageMap,
827
827
  DEFAULT_BLENDER,
828
828
  DEFAULT_BRUSH,
829
+ DEFAULT_LIVE_PATTERNS,
829
830
  DEFAULT_MIXER,
830
831
  DEFAULT_PAINT_GRADIENT,
831
832
  DEFAULT_PAINT_GRADIENT_MAPPING,
@@ -834,6 +835,9 @@ import {
834
835
  EMPTY_MIXER_LOAD,
835
836
  GRAIN_PATTERNS,
836
837
  GRAIN_TILE,
838
+ LIVE_PATTERN_KINDS,
839
+ LIVE_PATTERN_PRESETS,
840
+ LivePatternField,
837
841
  MAX_BRUSH_SIZE,
838
842
  MIXER_DRAIN,
839
843
  MIXER_PICKUP_RATE,
@@ -851,6 +855,10 @@ import {
851
855
  PAINT_GRADIENT_SPACES,
852
856
  PAINT_GRADIENT_SPACE_LABELS,
853
857
  PAINT_SOURCE_JSON_SCHEMA,
858
+ PATTERN_CELLS,
859
+ PATTERN_SUBSTEPS,
860
+ PATTERN_TILE,
861
+ PATTERN_V_EPS,
854
862
  PaintExchange,
855
863
  PaintGradientSampler,
856
864
  PaintSourceError,
@@ -875,17 +883,23 @@ import {
875
883
  grainHeights,
876
884
  hexToPaintRgb,
877
885
  isGradientPaint,
886
+ isLivePatternKind,
878
887
  loadMixer,
879
888
  mixerRates,
889
+ moveLivePatternSnapshot,
880
890
  normalizeBlender,
881
891
  normalizeBrush,
882
892
  normalizeHexColor,
893
+ normalizeLivePatterns,
883
894
  normalizeMixer,
895
+ normalizePatternHexColor,
884
896
  normalizeSmudge,
885
897
  paintGradientMappingFor,
886
898
  paintSourceColor,
887
899
  paintSourceCss,
888
900
  parsePaintSource,
901
+ parsePatternHexColor,
902
+ patternNoise,
889
903
  put255,
890
904
  rasterizeDab,
891
905
  readPaintSource,
@@ -901,7 +915,7 @@ import {
901
915
  tipShape,
902
916
  updatePaintGradientStop,
903
917
  walkDabs
904
- } from "../chunk-ACTHSQOI.js";
918
+ } from "../chunk-LDZOXESA.js";
905
919
  import {
906
920
  TileableNoise,
907
921
  hash2,
@@ -21549,6 +21563,7 @@ export {
21549
21563
  DEFAULT_DEPTH_MASK,
21550
21564
  DEFAULT_FLOW,
21551
21565
  DEFAULT_GLOBAL_LIGHT,
21566
+ DEFAULT_LIVE_PATTERNS,
21552
21567
  DEFAULT_MITER_LIMIT,
21553
21568
  DEFAULT_MIXER,
21554
21569
  DEFAULT_PAINT_GRADIENT,
@@ -21623,11 +21638,14 @@ export {
21623
21638
  LAYER_EFFECT_KINDS,
21624
21639
  LAYER_EFFECT_MENU,
21625
21640
  LEGACY_PROCESS_VERSION,
21641
+ LIVE_PATTERN_KINDS,
21642
+ LIVE_PATTERN_PRESETS,
21626
21643
  LIVE_SHAPE_KINDS,
21627
21644
  LUMA_709,
21628
21645
  LayerCompositor,
21629
21646
  LayerEffectError,
21630
21647
  LayerOperationError,
21648
+ LivePatternField,
21631
21649
  MARCHING_ANTS_STEP_MS,
21632
21650
  MARGIN_FIT_MIN_GUTTER,
21633
21651
  MASK_EDGE_THRESHOLDS,
@@ -21673,6 +21691,10 @@ export {
21673
21691
  PASTE_MODES,
21674
21692
  PATH_EDIT_TOOLS,
21675
21693
  PATTERN_BLOCK_KEYS,
21694
+ PATTERN_CELLS,
21695
+ PATTERN_SUBSTEPS,
21696
+ PATTERN_TILE,
21697
+ PATTERN_V_EPS,
21676
21698
  PIGMENT_BANDS,
21677
21699
  PIGMENT_CHANNELS,
21678
21700
  PIGMENT_LAMBDA_MIN,
@@ -22168,6 +22190,7 @@ export {
22168
22190
  isLayerEffectKind,
22169
22191
  isLayerLocked,
22170
22192
  isLegacyShape,
22193
+ isLivePatternKind,
22171
22194
  isPaintTool,
22172
22195
  isPaintableLayer,
22173
22196
  isPainterlyBlendMode,
@@ -22262,6 +22285,7 @@ export {
22262
22285
  modifySelection,
22263
22286
  moveCurvePoint,
22264
22287
  moveLayer,
22288
+ moveLivePatternSnapshot,
22265
22289
  moveSmartFilter,
22266
22290
  moveWetSnapshot,
22267
22291
  mulMatrix3,
@@ -22283,8 +22307,10 @@ export {
22283
22307
  normalizeHexColor,
22284
22308
  normalizeLayerEffects,
22285
22309
  normalizeLayerMask,
22310
+ normalizeLivePatterns,
22286
22311
  normalizeLiveShape,
22287
22312
  normalizeMixer,
22313
+ normalizePatternHexColor,
22288
22314
  normalizePlacement,
22289
22315
  normalizeProcessVersion,
22290
22316
  normalizeRect,
@@ -22324,6 +22350,7 @@ export {
22324
22350
  parseOpenTypeFont,
22325
22351
  parsePaintSource,
22326
22352
  parsePatternBlock,
22353
+ parsePatternHexColor,
22327
22354
  parseSelectionMode,
22328
22355
  parseVersionedDescriptor,
22329
22356
  patchParagraphStyle,
@@ -22334,6 +22361,7 @@ export {
22334
22361
  pathStrokeDabs,
22335
22362
  pathSvgData,
22336
22363
  pathToSelection,
22364
+ patternNoise,
22337
22365
  perDabStrength,
22338
22366
  photoFilterMatrix,
22339
22367
  pigment8,
@@ -33,7 +33,7 @@
33
33
 
34
34
 
35
35
 
36
- var _chunk62MFUHSIcjs = require('../chunk-62MFUHSI.cjs');
36
+ var _chunkUQXULAMQcjs = require('../chunk-UQXULAMQ.cjs');
37
37
 
38
38
 
39
39
 
@@ -134,7 +134,7 @@ var _chunkBB6TR422cjs = require('../chunk-BB6TR422.cjs');
134
134
 
135
135
 
136
136
 
137
- var _chunkDHC4E2DUcjs = require('../chunk-DHC4E2DU.cjs');
137
+ var _chunkMITQGHN3cjs = require('../chunk-MITQGHN3.cjs');
138
138
 
139
139
 
140
140
 
@@ -147,7 +147,7 @@ var _chunkDHC4E2DUcjs = require('../chunk-DHC4E2DU.cjs');
147
147
 
148
148
 
149
149
 
150
- var _chunkSTLTOISWcjs = require('../chunk-STLTOISW.cjs');
150
+ var _chunkNPPMKMCUcjs = require('../chunk-NPPMKMCU.cjs');
151
151
 
152
152
 
153
153
 
@@ -227,7 +227,21 @@ var _chunkSTLTOISWcjs = require('../chunk-STLTOISW.cjs');
227
227
 
228
228
 
229
229
 
230
- var _chunkNIBFKXMDcjs = require('../chunk-NIBFKXMD.cjs');
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+
238
+
239
+
240
+
241
+
242
+
243
+
244
+ var _chunkIFWLZZCWcjs = require('../chunk-IFWLZZCW.cjs');
231
245
 
232
246
 
233
247
 
@@ -498,4 +512,18 @@ require('../chunk-XFM3OCHU.cjs');
498
512
 
499
513
 
500
514
 
501
- exports.BODY_SCATTER = _chunkDHC4E2DUcjs.BODY_SCATTER; exports.BRUSHSTROKE_MAX_SCALE = _chunkYQGCPL5Xcjs.BRUSHSTROKE_MAX_SCALE; exports.BRUSHSTROKE_MIN_SCALE = _chunkYQGCPL5Xcjs.BRUSHSTROKE_MIN_SCALE; exports.BrushstrokeCache = _chunkSTLTOISWcjs.BrushstrokeCache; exports.CoverageMap = _chunkNIBFKXMDcjs.CoverageMap; exports.DEFAULT_BLENDER = _chunkNIBFKXMDcjs.DEFAULT_BLENDER; exports.DEFAULT_BRUSH = _chunkNIBFKXMDcjs.DEFAULT_BRUSH; exports.DEFAULT_FLOW = _chunkDHC4E2DUcjs.DEFAULT_FLOW; exports.DEFAULT_MIXER = _chunkNIBFKXMDcjs.DEFAULT_MIXER; exports.DEFAULT_PAINT_GRADIENT = _chunkNIBFKXMDcjs.DEFAULT_PAINT_GRADIENT; exports.DEFAULT_PAINT_GRADIENT_MAPPING = _chunkNIBFKXMDcjs.DEFAULT_PAINT_GRADIENT_MAPPING; exports.DEFAULT_RETOUCH = _chunk62MFUHSIcjs.DEFAULT_RETOUCH; exports.DEFAULT_SMUDGE = _chunkNIBFKXMDcjs.DEFAULT_SMUDGE; exports.DEFAULT_WET_PAPER = _chunkDHC4E2DUcjs.DEFAULT_WET_PAPER; exports.DEFAULT_WET_PARAMS = _chunkDHC4E2DUcjs.DEFAULT_WET_PARAMS; exports.DRY_EPS = _chunkDHC4E2DUcjs.DRY_EPS; exports.DabWalker = _chunkNIBFKXMDcjs.DabWalker; exports.EMPTY_MIXER_LOAD = _chunkNIBFKXMDcjs.EMPTY_MIXER_LOAD; exports.EX = _chunkDHC4E2DUcjs.EX; exports.EY = _chunkDHC4E2DUcjs.EY; exports.FLAG_ALIVE = _chunkDHC4E2DUcjs.FLAG_ALIVE; exports.FLAG_BOTTOM = _chunkDHC4E2DUcjs.FLAG_BOTTOM; exports.FLAG_LEFT = _chunkDHC4E2DUcjs.FLAG_LEFT; exports.FLAG_RIGHT = _chunkDHC4E2DUcjs.FLAG_RIGHT; exports.FLAG_TOP = _chunkDHC4E2DUcjs.FLAG_TOP; exports.FLAG_WET = _chunkDHC4E2DUcjs.FLAG_WET; exports.FLAT = _chunkDHC4E2DUcjs.FLAT; exports.FREE_INTERVAL = _chunkDHC4E2DUcjs.FREE_INTERVAL; exports.GRAIN_PATTERNS = _chunkNIBFKXMDcjs.GRAIN_PATTERNS; exports.GRAIN_TILE = _chunkNIBFKXMDcjs.GRAIN_TILE; exports.HIDE = _chunkDHC4E2DUcjs.HIDE; exports.IDENTITY_CLONE_TRANSFORM = _chunk62MFUHSIcjs.IDENTITY_CLONE_TRANSFORM; exports.MASS_CHANNELS = _chunkDHC4E2DUcjs.MASS_CHANNELS; exports.MAX_BATCH = _chunkDHC4E2DUcjs.MAX_BATCH; exports.MAX_BRUSH_SIZE = _chunkNIBFKXMDcjs.MAX_BRUSH_SIZE; exports.MAX_TILT_ACCEL = _chunkDHC4E2DUcjs.MAX_TILT_ACCEL; exports.MAX_WET_LANES = _chunkDHC4E2DUcjs.MAX_WET_LANES; exports.MAX_WET_SLOTS = _chunkDHC4E2DUcjs.MAX_WET_SLOTS; exports.MIXER_DRAIN = _chunkNIBFKXMDcjs.MIXER_DRAIN; exports.MIXER_PICKUP_RATE = _chunkNIBFKXMDcjs.MIXER_PICKUP_RATE; exports.MIXING_MODELS = _chunkNIBFKXMDcjs.MIXING_MODELS; exports.MixerStroke = _chunkNIBFKXMDcjs.MixerStroke; exports.OPP = _chunkDHC4E2DUcjs.OPP; exports.PAINT_COLOR_JSON_SCHEMA = _chunkNIBFKXMDcjs.PAINT_COLOR_JSON_SCHEMA; exports.PAINT_GRADIENT_FULL_SPEED = _chunkNIBFKXMDcjs.PAINT_GRADIENT_FULL_SPEED; exports.PAINT_GRADIENT_JSON_SCHEMA = _chunkNIBFKXMDcjs.PAINT_GRADIENT_JSON_SCHEMA; exports.PAINT_GRADIENT_KIT = _chunkNIBFKXMDcjs.PAINT_GRADIENT_KIT; exports.PAINT_GRADIENT_MAPPINGS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_MAPPINGS; exports.PAINT_GRADIENT_MAPPING_LABELS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_MAPPING_LABELS; exports.PAINT_GRADIENT_PRESETS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_PRESETS; exports.PAINT_GRADIENT_REPEATS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_REPEATS; exports.PAINT_GRADIENT_REPEAT_LABELS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_REPEAT_LABELS; exports.PAINT_GRADIENT_SPACES = _chunkNIBFKXMDcjs.PAINT_GRADIENT_SPACES; exports.PAINT_GRADIENT_SPACE_LABELS = _chunkNIBFKXMDcjs.PAINT_GRADIENT_SPACE_LABELS; exports.PAINT_SOURCE_JSON_SCHEMA = _chunkNIBFKXMDcjs.PAINT_SOURCE_JSON_SCHEMA; exports.PAPER_CAPACITY = _chunkDHC4E2DUcjs.PAPER_CAPACITY; exports.PARAM = _chunkDHC4E2DUcjs.PARAM; exports.PARAM_FLOATS = _chunkDHC4E2DUcjs.PARAM_FLOATS; exports.PIGMENT_BANDS = _chunk2VX55NFMcjs.PIGMENT_BANDS; exports.PIGMENT_CHANNELS = _chunkDHC4E2DUcjs.PIGMENT_CHANNELS; exports.PIGMENT_LAMBDA_MIN = _chunk2VX55NFMcjs.PIGMENT_LAMBDA_MIN; exports.PIGMENT_LAMBDA_STEP = _chunk2VX55NFMcjs.PIGMENT_LAMBDA_STEP; exports.PIGMENT_UNIT = _chunkDHC4E2DUcjs.PIGMENT_UNIT; exports.PIGMENT_WAVELENGTHS = _chunk2VX55NFMcjs.PIGMENT_WAVELENGTHS; exports.PLANE = _chunkDHC4E2DUcjs.PLANE; exports.PLANE_BYTES = _chunkDHC4E2DUcjs.PLANE_BYTES; exports.P_D0 = _chunkDHC4E2DUcjs.P_D0; exports.P_DL = _chunkDHC4E2DUcjs.P_DL; exports.P_EDGE = _chunkDHC4E2DUcjs.P_EDGE; exports.P_FX = _chunkDHC4E2DUcjs.P_FX; exports.P_FY = _chunkDHC4E2DUcjs.P_FY; exports.P_H = _chunkDHC4E2DUcjs.P_H; exports.P_L = _chunkDHC4E2DUcjs.P_L; exports.P_P0 = _chunkDHC4E2DUcjs.P_P0; exports.P_RHO = _chunkDHC4E2DUcjs.P_RHO; exports.P_SW = _chunkDHC4E2DUcjs.P_SW; exports.P_UX = _chunkDHC4E2DUcjs.P_UX; exports.P_UY = _chunkDHC4E2DUcjs.P_UY; exports.PaintExchange = _chunkNIBFKXMDcjs.PaintExchange; exports.PaintGradientSampler = _chunkNIBFKXMDcjs.PaintGradientSampler; exports.PaintSourceError = _chunkNIBFKXMDcjs.PaintSourceError; exports.PaperGrain = _chunkNIBFKXMDcjs.PaperGrain; exports.RETOUCH_SAMPLES = _chunk62MFUHSIcjs.RETOUCH_SAMPLES; exports.RegionPixelSource = _chunk62MFUHSIcjs.RegionPixelSource; exports.RetouchDabStroke = _chunk62MFUHSIcjs.RetouchDabStroke; exports.SET_PLANES = _chunkDHC4E2DUcjs.SET_PLANES; exports.SLOT_BYTES = _chunkDHC4E2DUcjs.SLOT_BYTES; exports.SLOT_PLANES = _chunkDHC4E2DUcjs.SLOT_PLANES; exports.SLOT_SIDE = _chunkDHC4E2DUcjs.SLOT_SIDE; exports.SPOT_HEAL_TYPES = _chunk62MFUHSIcjs.SPOT_HEAL_TYPES; exports.SRGB_TO_LINEAR = _chunkDHC4E2DUcjs.SRGB_TO_LINEAR; exports.STRIP = _chunkDHC4E2DUcjs.STRIP; exports.SmudgeTip = _chunkNIBFKXMDcjs.SmudgeTip; exports.StrokeCoverage = _chunkNIBFKXMDcjs.StrokeCoverage; exports.TIP_GRADIENT_STEPS = _chunkNIBFKXMDcjs.TIP_GRADIENT_STEPS; exports.TONE_RANGES = _chunk62MFUHSIcjs.TONE_RANGES; exports.TileMedium = _chunkNIBFKXMDcjs.TileMedium; exports.TilePixelSource = _chunk62MFUHSIcjs.TilePixelSource; exports.TileableNoise = _chunk3K6HWEXZcjs.TileableNoise; exports.TransformedPixelSource = _chunk62MFUHSIcjs.TransformedPixelSource; exports.U_MAX = _chunkDHC4E2DUcjs.U_MAX; exports.W9 = _chunkDHC4E2DUcjs.W9; exports.WET_FLOW_KINDS = _chunkDHC4E2DUcjs.WET_FLOW_KINDS; exports.WET_PARAM_KEYS = _chunkDHC4E2DUcjs.WET_PARAM_KEYS; exports.WET_TILE = _chunkDHC4E2DUcjs.WET_TILE; exports.WGSL_HALO = _chunkDHC4E2DUcjs.WGSL_HALO; exports.WGSL_SHADE = _chunkDHC4E2DUcjs.WGSL_SHADE; exports.WGSL_STEP = _chunkDHC4E2DUcjs.WGSL_STEP; exports.WetGpuEngine = _chunkDHC4E2DUcjs.WetGpuEngine; exports.WetMedium = _chunkDHC4E2DUcjs.WetMedium; exports.WetWorkerPool = _chunkDHC4E2DUcjs.WetWorkerPool; exports.WetWorld = _chunkDHC4E2DUcjs.WetWorld; exports.WetWorldError = _chunkDHC4E2DUcjs.WetWorldError; exports.addPaintGradientStop = _chunkNIBFKXMDcjs.addPaintGradientStop; exports.applyRetouchToTile = _chunk62MFUHSIcjs.applyRetouchToTile; exports.applyStrokeToDeepTile = _chunkNIBFKXMDcjs.applyStrokeToDeepTile; exports.applyStrokeToTile = _chunkNIBFKXMDcjs.applyStrokeToTile; exports.applyToneToDeepTile = _chunk62MFUHSIcjs.applyToneToDeepTile; exports.bestOffset = _chunkBB6TR422cjs.bestOffset; exports.blendRadius = _chunkNIBFKXMDcjs.blendRadius; exports.blenderDab = _chunkNIBFKXMDcjs.blenderDab; exports.boxBlurPixels = _chunk62MFUHSIcjs.boxBlurPixels; exports.brushstrokeDataUrl = _chunkSTLTOISWcjs.brushstrokeDataUrl; exports.brushstrokeKey = _chunkSTLTOISWcjs.brushstrokeKey; exports.brushstrokeSamples = _chunkSTLTOISWcjs.brushstrokeSamples; exports.brushstrokeScaleBucket = _chunkYQGCPL5Xcjs.brushstrokeScaleBucket; exports.brushstrokeStrokeOptions = _chunkSTLTOISWcjs.brushstrokeStrokeOptions; exports.brushstrokeToCanvas = _chunkSTLTOISWcjs.brushstrokeToCanvas; exports.canShareMemory = _chunkDHC4E2DUcjs.canShareMemory; exports.cleanMixer = _chunkNIBFKXMDcjs.cleanMixer; exports.cloneSamplePoint = _chunk62MFUHSIcjs.cloneSamplePoint; exports.contentAwareFill = _chunkBB6TR422cjs.contentAwareFill; exports.coverageTileCoord = _chunkNIBFKXMDcjs.coverageTileCoord; exports.createBlenderScratch = _chunkNIBFKXMDcjs.createBlenderScratch; exports.createPigment = _chunk2VX55NFMcjs.createPigment; exports.createPigmentTools = _chunk62MFUHSIcjs.createPigmentTools; exports.createWetGpuEngine = _chunkDHC4E2DUcjs.createWetGpuEngine; exports.dabCoverage = _chunkNIBFKXMDcjs.dabCoverage; exports.dabRect = _chunkNIBFKXMDcjs.dabRect; exports.dexp = _chunkDHC4E2DUcjs.dexp; exports.dilateMask = _chunkBB6TR422cjs.dilateMask; exports.dlog = _chunkDHC4E2DUcjs.dlog; exports.dodgeBurn = _chunk62MFUHSIcjs.dodgeBurn; exports.dodgeBurnCurve = _chunk62MFUHSIcjs.dodgeBurnCurve; exports.dpow = _chunkDHC4E2DUcjs.dpow; exports.dsincos = _chunkDHC4E2DUcjs.dsincos; exports.edgeBits = _chunkDHC4E2DUcjs.edgeBits; exports.exchangeRates = _chunkNIBFKXMDcjs.exchangeRates; exports.expNeg = _chunkDHC4E2DUcjs.expNeg; exports.filmPixel = _chunkDHC4E2DUcjs.filmPixel; exports.filmReflectance = _chunkDHC4E2DUcjs.filmReflectance; exports.findWebGpu = _chunkDHC4E2DUcjs.findWebGpu; exports.flowField = _chunkDHC4E2DUcjs.flowField; exports.gradientDabColor = _chunkNIBFKXMDcjs.gradientDabColor; exports.grainCatch = _chunkNIBFKXMDcjs.grainCatch; exports.grainHeights = _chunkNIBFKXMDcjs.grainHeights; exports.hash2 = _chunk3K6HWEXZcjs.hash2; exports.healPixels = _chunk62MFUHSIcjs.healPixels; exports.hexToPaintRgb = _chunkNIBFKXMDcjs.hexToPaintRgb; exports.isBrushstrokeBrush = _chunkSTLTOISWcjs.isBrushstrokeBrush; exports.isGradientPaint = _chunkNIBFKXMDcjs.isGradientPaint; exports.isIdentityCloneTransform = _chunk62MFUHSIcjs.isIdentityCloneTransform; exports.latticeViscosity = _chunkDHC4E2DUcjs.latticeViscosity; exports.lerpPigment = _chunk2VX55NFMcjs.lerpPigment; exports.lerpPigmentInto = _chunk2VX55NFMcjs.lerpPigmentInto; exports.linearToSrgb8 = _chunkDHC4E2DUcjs.linearToSrgb8; exports.loadMixer = _chunkNIBFKXMDcjs.loadMixer; exports.loadWetKernel = _chunkDHC4E2DUcjs.loadWetKernel; exports.luma = _chunk62MFUHSIcjs.luma; exports.maskBounds = _chunkBB6TR422cjs.maskBounds; exports.membraneFill = _chunkBB6TR422cjs.membraneFill; exports.mix32 = _chunk3K6HWEXZcjs.mix32; exports.mixPigments = _chunk2VX55NFMcjs.mixPigments; exports.mixerRates = _chunkNIBFKXMDcjs.mixerRates; exports.moveWetSnapshot = _chunkDHC4E2DUcjs.moveWetSnapshot; exports.normalizeBlender = _chunkNIBFKXMDcjs.normalizeBlender; exports.normalizeBrush = _chunkNIBFKXMDcjs.normalizeBrush; exports.normalizeFlow = _chunkDHC4E2DUcjs.normalizeFlow; exports.normalizeHexColor = _chunkNIBFKXMDcjs.normalizeHexColor; exports.normalizeMixer = _chunkNIBFKXMDcjs.normalizeMixer; exports.normalizeRetouch = _chunk62MFUHSIcjs.normalizeRetouch; exports.normalizeSmudge = _chunkNIBFKXMDcjs.normalizeSmudge; exports.normalizeTilt = _chunkDHC4E2DUcjs.normalizeTilt; exports.normalizeWetParams = _chunkDHC4E2DUcjs.normalizeWetParams; exports.packWetParams = _chunkDHC4E2DUcjs.packWetParams; exports.paintGradientMappingFor = _chunkNIBFKXMDcjs.paintGradientMappingFor; exports.paintPathStroke = _chunkSTLTOISWcjs.paintPathStroke; exports.paintSourceColor = _chunkNIBFKXMDcjs.paintSourceColor; exports.paintSourceCss = _chunkNIBFKXMDcjs.paintSourceCss; exports.parsePaintSource = _chunkNIBFKXMDcjs.parsePaintSource; exports.pathStrokeCoverage = _chunkSTLTOISWcjs.pathStrokeCoverage; exports.pathStrokeDabs = _chunkSTLTOISWcjs.pathStrokeDabs; exports.perDabStrength = _chunk62MFUHSIcjs.perDabStrength; exports.pigmentColor = _chunkDHC4E2DUcjs.pigmentColor; exports.pigmentOf = _chunkDHC4E2DUcjs.pigmentOf; exports.pixelPigment = _chunkDHC4E2DUcjs.pixelPigment; exports.pointerPressure = _chunk62MFUHSIcjs.pointerPressure; exports.pointerStrokeSample = _chunk62MFUHSIcjs.pointerStrokeSample; exports.pointerStrokeSamples = _chunk62MFUHSIcjs.pointerStrokeSamples; exports.put255 = _chunkNIBFKXMDcjs.put255; exports.rand01 = _chunk3K6HWEXZcjs.rand01; exports.randSigned = _chunk3K6HWEXZcjs.randSigned; exports.rasterizeDab = _chunkNIBFKXMDcjs.rasterizeDab; exports.readPaintSource = _chunkNIBFKXMDcjs.readPaintSource; exports.readSourceRegion = _chunk62MFUHSIcjs.readSourceRegion; exports.reflectanceToRgb = _chunk2VX55NFMcjs.reflectanceToRgb; exports.removePaintGradientStop = _chunkNIBFKXMDcjs.removePaintGradientStop; exports.renderBrushstroke = _chunkSTLTOISWcjs.renderBrushstroke; exports.resolvePaintGradient = _chunkNIBFKXMDcjs.resolvePaintGradient; exports.retouchFilter = _chunk62MFUHSIcjs.retouchFilter; exports.reversePaintGradient = _chunkNIBFKXMDcjs.reversePaintGradient; exports.rgbToReflectance = _chunk2VX55NFMcjs.rgbToReflectance; exports.rgbaViewOfGrey = _chunk62MFUHSIcjs.rgbaViewOfGrey; exports.saturationOf = _chunk62MFUHSIcjs.saturationOf; exports.scalePaintGradient = _chunkNIBFKXMDcjs.scalePaintGradient; exports.seamlessClone = _chunkBB6TR422cjs.seamlessClone; exports.seedFromString = _chunk3K6HWEXZcjs.seedFromString; exports.setPigmentColor = _chunk2VX55NFMcjs.setPigmentColor; exports.shadeLightTile = _chunkDHC4E2DUcjs.shadeLightTile; exports.shadeTile = _chunkDHC4E2DUcjs.shadeTile; exports.smoothPoints = _chunkNIBFKXMDcjs.smoothPoints; exports.smudgeEffect = _chunk62MFUHSIcjs.smudgeEffect; exports.solidPaint = _chunkNIBFKXMDcjs.solidPaint; exports.solveMembrane = _chunkBB6TR422cjs.solveMembrane; exports.sponge = _chunk62MFUHSIcjs.sponge; exports.spongeEffect = _chunk62MFUHSIcjs.spongeEffect; exports.spotHealPixels = _chunk62MFUHSIcjs.spotHealPixels; exports.spotHealWindow = _chunk62MFUHSIcjs.spotHealWindow; exports.srgbByteToLinear = _chunkDHC4E2DUcjs.srgbByteToLinear; exports.stepSlotTs = _chunkDHC4E2DUcjs.stepSlotTs; exports.strokeGrainCatch = _chunkNIBFKXMDcjs.strokeGrainCatch; exports.tipFalloff = _chunkNIBFKXMDcjs.tipFalloff; exports.tipReach = _chunkNIBFKXMDcjs.tipReach; exports.tipShape = _chunkNIBFKXMDcjs.tipShape; exports.toneOf = _chunk62MFUHSIcjs.toneOf; exports.updatePaintGradientStop = _chunkNIBFKXMDcjs.updatePaintGradientStop; exports.walkDabs = _chunkNIBFKXMDcjs.walkDabs; exports.wetGpuSupport = _chunkDHC4E2DUcjs.wetGpuSupport; exports.wetSimdSupported = _chunkDHC4E2DUcjs.wetSimdSupported; exports.wetSupport = _chunkDHC4E2DUcjs.wetSupport;
515
+
516
+
517
+
518
+
519
+
520
+
521
+
522
+
523
+
524
+
525
+
526
+
527
+
528
+
529
+ exports.BODY_SCATTER = _chunkMITQGHN3cjs.BODY_SCATTER; exports.BRUSHSTROKE_MAX_SCALE = _chunkYQGCPL5Xcjs.BRUSHSTROKE_MAX_SCALE; exports.BRUSHSTROKE_MIN_SCALE = _chunkYQGCPL5Xcjs.BRUSHSTROKE_MIN_SCALE; exports.BrushstrokeCache = _chunkNPPMKMCUcjs.BrushstrokeCache; exports.CoverageMap = _chunkIFWLZZCWcjs.CoverageMap; exports.DEFAULT_BLENDER = _chunkIFWLZZCWcjs.DEFAULT_BLENDER; exports.DEFAULT_BRUSH = _chunkIFWLZZCWcjs.DEFAULT_BRUSH; exports.DEFAULT_FLOW = _chunkMITQGHN3cjs.DEFAULT_FLOW; exports.DEFAULT_LIVE_PATTERNS = _chunkIFWLZZCWcjs.DEFAULT_LIVE_PATTERNS; exports.DEFAULT_MIXER = _chunkIFWLZZCWcjs.DEFAULT_MIXER; exports.DEFAULT_PAINT_GRADIENT = _chunkIFWLZZCWcjs.DEFAULT_PAINT_GRADIENT; exports.DEFAULT_PAINT_GRADIENT_MAPPING = _chunkIFWLZZCWcjs.DEFAULT_PAINT_GRADIENT_MAPPING; exports.DEFAULT_RETOUCH = _chunkUQXULAMQcjs.DEFAULT_RETOUCH; exports.DEFAULT_SMUDGE = _chunkIFWLZZCWcjs.DEFAULT_SMUDGE; exports.DEFAULT_WET_PAPER = _chunkMITQGHN3cjs.DEFAULT_WET_PAPER; exports.DEFAULT_WET_PARAMS = _chunkMITQGHN3cjs.DEFAULT_WET_PARAMS; exports.DRY_EPS = _chunkMITQGHN3cjs.DRY_EPS; exports.DabWalker = _chunkIFWLZZCWcjs.DabWalker; exports.EMPTY_MIXER_LOAD = _chunkIFWLZZCWcjs.EMPTY_MIXER_LOAD; exports.EX = _chunkMITQGHN3cjs.EX; exports.EY = _chunkMITQGHN3cjs.EY; exports.FLAG_ALIVE = _chunkMITQGHN3cjs.FLAG_ALIVE; exports.FLAG_BOTTOM = _chunkMITQGHN3cjs.FLAG_BOTTOM; exports.FLAG_LEFT = _chunkMITQGHN3cjs.FLAG_LEFT; exports.FLAG_RIGHT = _chunkMITQGHN3cjs.FLAG_RIGHT; exports.FLAG_TOP = _chunkMITQGHN3cjs.FLAG_TOP; exports.FLAG_WET = _chunkMITQGHN3cjs.FLAG_WET; exports.FLAT = _chunkMITQGHN3cjs.FLAT; exports.FREE_INTERVAL = _chunkMITQGHN3cjs.FREE_INTERVAL; exports.GRAIN_PATTERNS = _chunkIFWLZZCWcjs.GRAIN_PATTERNS; exports.GRAIN_TILE = _chunkIFWLZZCWcjs.GRAIN_TILE; exports.HIDE = _chunkMITQGHN3cjs.HIDE; exports.IDENTITY_CLONE_TRANSFORM = _chunkUQXULAMQcjs.IDENTITY_CLONE_TRANSFORM; exports.LIVE_PATTERN_KINDS = _chunkIFWLZZCWcjs.LIVE_PATTERN_KINDS; exports.LIVE_PATTERN_PRESETS = _chunkIFWLZZCWcjs.LIVE_PATTERN_PRESETS; exports.LivePatternField = _chunkIFWLZZCWcjs.LivePatternField; exports.MASS_CHANNELS = _chunkMITQGHN3cjs.MASS_CHANNELS; exports.MAX_BATCH = _chunkMITQGHN3cjs.MAX_BATCH; exports.MAX_BRUSH_SIZE = _chunkIFWLZZCWcjs.MAX_BRUSH_SIZE; exports.MAX_TILT_ACCEL = _chunkMITQGHN3cjs.MAX_TILT_ACCEL; exports.MAX_WET_LANES = _chunkMITQGHN3cjs.MAX_WET_LANES; exports.MAX_WET_SLOTS = _chunkMITQGHN3cjs.MAX_WET_SLOTS; exports.MIXER_DRAIN = _chunkIFWLZZCWcjs.MIXER_DRAIN; exports.MIXER_PICKUP_RATE = _chunkIFWLZZCWcjs.MIXER_PICKUP_RATE; exports.MIXING_MODELS = _chunkIFWLZZCWcjs.MIXING_MODELS; exports.MixerStroke = _chunkIFWLZZCWcjs.MixerStroke; exports.OPP = _chunkMITQGHN3cjs.OPP; exports.PAINT_COLOR_JSON_SCHEMA = _chunkIFWLZZCWcjs.PAINT_COLOR_JSON_SCHEMA; exports.PAINT_GRADIENT_FULL_SPEED = _chunkIFWLZZCWcjs.PAINT_GRADIENT_FULL_SPEED; exports.PAINT_GRADIENT_JSON_SCHEMA = _chunkIFWLZZCWcjs.PAINT_GRADIENT_JSON_SCHEMA; exports.PAINT_GRADIENT_KIT = _chunkIFWLZZCWcjs.PAINT_GRADIENT_KIT; exports.PAINT_GRADIENT_MAPPINGS = _chunkIFWLZZCWcjs.PAINT_GRADIENT_MAPPINGS; exports.PAINT_GRADIENT_MAPPING_LABELS = _chunkIFWLZZCWcjs.PAINT_GRADIENT_MAPPING_LABELS; exports.PAINT_GRADIENT_PRESETS = _chunkIFWLZZCWcjs.PAINT_GRADIENT_PRESETS; exports.PAINT_GRADIENT_REPEATS = _chunkIFWLZZCWcjs.PAINT_GRADIENT_REPEATS; exports.PAINT_GRADIENT_REPEAT_LABELS = _chunkIFWLZZCWcjs.PAINT_GRADIENT_REPEAT_LABELS; exports.PAINT_GRADIENT_SPACES = _chunkIFWLZZCWcjs.PAINT_GRADIENT_SPACES; exports.PAINT_GRADIENT_SPACE_LABELS = _chunkIFWLZZCWcjs.PAINT_GRADIENT_SPACE_LABELS; exports.PAINT_SOURCE_JSON_SCHEMA = _chunkIFWLZZCWcjs.PAINT_SOURCE_JSON_SCHEMA; exports.PAPER_CAPACITY = _chunkMITQGHN3cjs.PAPER_CAPACITY; exports.PARAM = _chunkMITQGHN3cjs.PARAM; exports.PARAM_FLOATS = _chunkMITQGHN3cjs.PARAM_FLOATS; exports.PATTERN_CELLS = _chunkIFWLZZCWcjs.PATTERN_CELLS; exports.PATTERN_SUBSTEPS = _chunkIFWLZZCWcjs.PATTERN_SUBSTEPS; exports.PATTERN_TILE = _chunkIFWLZZCWcjs.PATTERN_TILE; exports.PATTERN_V_EPS = _chunkIFWLZZCWcjs.PATTERN_V_EPS; exports.PIGMENT_BANDS = _chunk2VX55NFMcjs.PIGMENT_BANDS; exports.PIGMENT_CHANNELS = _chunkMITQGHN3cjs.PIGMENT_CHANNELS; exports.PIGMENT_LAMBDA_MIN = _chunk2VX55NFMcjs.PIGMENT_LAMBDA_MIN; exports.PIGMENT_LAMBDA_STEP = _chunk2VX55NFMcjs.PIGMENT_LAMBDA_STEP; exports.PIGMENT_UNIT = _chunkMITQGHN3cjs.PIGMENT_UNIT; exports.PIGMENT_WAVELENGTHS = _chunk2VX55NFMcjs.PIGMENT_WAVELENGTHS; exports.PLANE = _chunkMITQGHN3cjs.PLANE; exports.PLANE_BYTES = _chunkMITQGHN3cjs.PLANE_BYTES; exports.P_D0 = _chunkMITQGHN3cjs.P_D0; exports.P_DL = _chunkMITQGHN3cjs.P_DL; exports.P_EDGE = _chunkMITQGHN3cjs.P_EDGE; exports.P_FX = _chunkMITQGHN3cjs.P_FX; exports.P_FY = _chunkMITQGHN3cjs.P_FY; exports.P_H = _chunkMITQGHN3cjs.P_H; exports.P_L = _chunkMITQGHN3cjs.P_L; exports.P_P0 = _chunkMITQGHN3cjs.P_P0; exports.P_RHO = _chunkMITQGHN3cjs.P_RHO; exports.P_SW = _chunkMITQGHN3cjs.P_SW; exports.P_UX = _chunkMITQGHN3cjs.P_UX; exports.P_UY = _chunkMITQGHN3cjs.P_UY; exports.PaintExchange = _chunkIFWLZZCWcjs.PaintExchange; exports.PaintGradientSampler = _chunkIFWLZZCWcjs.PaintGradientSampler; exports.PaintSourceError = _chunkIFWLZZCWcjs.PaintSourceError; exports.PaperGrain = _chunkIFWLZZCWcjs.PaperGrain; exports.RETOUCH_SAMPLES = _chunkUQXULAMQcjs.RETOUCH_SAMPLES; exports.RegionPixelSource = _chunkUQXULAMQcjs.RegionPixelSource; exports.RetouchDabStroke = _chunkUQXULAMQcjs.RetouchDabStroke; exports.SET_PLANES = _chunkMITQGHN3cjs.SET_PLANES; exports.SLOT_BYTES = _chunkMITQGHN3cjs.SLOT_BYTES; exports.SLOT_PLANES = _chunkMITQGHN3cjs.SLOT_PLANES; exports.SLOT_SIDE = _chunkMITQGHN3cjs.SLOT_SIDE; exports.SPOT_HEAL_TYPES = _chunkUQXULAMQcjs.SPOT_HEAL_TYPES; exports.SRGB_TO_LINEAR = _chunkMITQGHN3cjs.SRGB_TO_LINEAR; exports.STRIP = _chunkMITQGHN3cjs.STRIP; exports.SmudgeTip = _chunkIFWLZZCWcjs.SmudgeTip; exports.StrokeCoverage = _chunkIFWLZZCWcjs.StrokeCoverage; exports.TIP_GRADIENT_STEPS = _chunkIFWLZZCWcjs.TIP_GRADIENT_STEPS; exports.TONE_RANGES = _chunkUQXULAMQcjs.TONE_RANGES; exports.TileMedium = _chunkIFWLZZCWcjs.TileMedium; exports.TilePixelSource = _chunkUQXULAMQcjs.TilePixelSource; exports.TileableNoise = _chunk3K6HWEXZcjs.TileableNoise; exports.TransformedPixelSource = _chunkUQXULAMQcjs.TransformedPixelSource; exports.U_MAX = _chunkMITQGHN3cjs.U_MAX; exports.W9 = _chunkMITQGHN3cjs.W9; exports.WET_FLOW_KINDS = _chunkMITQGHN3cjs.WET_FLOW_KINDS; exports.WET_PARAM_KEYS = _chunkMITQGHN3cjs.WET_PARAM_KEYS; exports.WET_TILE = _chunkMITQGHN3cjs.WET_TILE; exports.WGSL_HALO = _chunkMITQGHN3cjs.WGSL_HALO; exports.WGSL_SHADE = _chunkMITQGHN3cjs.WGSL_SHADE; exports.WGSL_STEP = _chunkMITQGHN3cjs.WGSL_STEP; exports.WetGpuEngine = _chunkMITQGHN3cjs.WetGpuEngine; exports.WetMedium = _chunkMITQGHN3cjs.WetMedium; exports.WetWorkerPool = _chunkMITQGHN3cjs.WetWorkerPool; exports.WetWorld = _chunkMITQGHN3cjs.WetWorld; exports.WetWorldError = _chunkMITQGHN3cjs.WetWorldError; exports.addPaintGradientStop = _chunkIFWLZZCWcjs.addPaintGradientStop; exports.applyRetouchToTile = _chunkUQXULAMQcjs.applyRetouchToTile; exports.applyStrokeToDeepTile = _chunkIFWLZZCWcjs.applyStrokeToDeepTile; exports.applyStrokeToTile = _chunkIFWLZZCWcjs.applyStrokeToTile; exports.applyToneToDeepTile = _chunkUQXULAMQcjs.applyToneToDeepTile; exports.bestOffset = _chunkBB6TR422cjs.bestOffset; exports.blendRadius = _chunkIFWLZZCWcjs.blendRadius; exports.blenderDab = _chunkIFWLZZCWcjs.blenderDab; exports.boxBlurPixels = _chunkUQXULAMQcjs.boxBlurPixels; exports.brushstrokeDataUrl = _chunkNPPMKMCUcjs.brushstrokeDataUrl; exports.brushstrokeKey = _chunkNPPMKMCUcjs.brushstrokeKey; exports.brushstrokeSamples = _chunkNPPMKMCUcjs.brushstrokeSamples; exports.brushstrokeScaleBucket = _chunkYQGCPL5Xcjs.brushstrokeScaleBucket; exports.brushstrokeStrokeOptions = _chunkNPPMKMCUcjs.brushstrokeStrokeOptions; exports.brushstrokeToCanvas = _chunkNPPMKMCUcjs.brushstrokeToCanvas; exports.canShareMemory = _chunkMITQGHN3cjs.canShareMemory; exports.cleanMixer = _chunkIFWLZZCWcjs.cleanMixer; exports.cloneSamplePoint = _chunkUQXULAMQcjs.cloneSamplePoint; exports.contentAwareFill = _chunkBB6TR422cjs.contentAwareFill; exports.coverageTileCoord = _chunkIFWLZZCWcjs.coverageTileCoord; exports.createBlenderScratch = _chunkIFWLZZCWcjs.createBlenderScratch; exports.createPigment = _chunk2VX55NFMcjs.createPigment; exports.createPigmentTools = _chunkUQXULAMQcjs.createPigmentTools; exports.createWetGpuEngine = _chunkMITQGHN3cjs.createWetGpuEngine; exports.dabCoverage = _chunkIFWLZZCWcjs.dabCoverage; exports.dabRect = _chunkIFWLZZCWcjs.dabRect; exports.dexp = _chunkMITQGHN3cjs.dexp; exports.dilateMask = _chunkBB6TR422cjs.dilateMask; exports.dlog = _chunkMITQGHN3cjs.dlog; exports.dodgeBurn = _chunkUQXULAMQcjs.dodgeBurn; exports.dodgeBurnCurve = _chunkUQXULAMQcjs.dodgeBurnCurve; exports.dpow = _chunkMITQGHN3cjs.dpow; exports.dsincos = _chunkMITQGHN3cjs.dsincos; exports.edgeBits = _chunkMITQGHN3cjs.edgeBits; exports.exchangeRates = _chunkIFWLZZCWcjs.exchangeRates; exports.expNeg = _chunkMITQGHN3cjs.expNeg; exports.filmPixel = _chunkMITQGHN3cjs.filmPixel; exports.filmReflectance = _chunkMITQGHN3cjs.filmReflectance; exports.findWebGpu = _chunkMITQGHN3cjs.findWebGpu; exports.flowField = _chunkMITQGHN3cjs.flowField; exports.gradientDabColor = _chunkIFWLZZCWcjs.gradientDabColor; exports.grainCatch = _chunkIFWLZZCWcjs.grainCatch; exports.grainHeights = _chunkIFWLZZCWcjs.grainHeights; exports.hash2 = _chunk3K6HWEXZcjs.hash2; exports.healPixels = _chunkUQXULAMQcjs.healPixels; exports.hexToPaintRgb = _chunkIFWLZZCWcjs.hexToPaintRgb; exports.isBrushstrokeBrush = _chunkNPPMKMCUcjs.isBrushstrokeBrush; exports.isGradientPaint = _chunkIFWLZZCWcjs.isGradientPaint; exports.isIdentityCloneTransform = _chunkUQXULAMQcjs.isIdentityCloneTransform; exports.isLivePatternKind = _chunkIFWLZZCWcjs.isLivePatternKind; exports.latticeViscosity = _chunkMITQGHN3cjs.latticeViscosity; exports.lerpPigment = _chunk2VX55NFMcjs.lerpPigment; exports.lerpPigmentInto = _chunk2VX55NFMcjs.lerpPigmentInto; exports.linearToSrgb8 = _chunkMITQGHN3cjs.linearToSrgb8; exports.loadMixer = _chunkIFWLZZCWcjs.loadMixer; exports.loadWetKernel = _chunkMITQGHN3cjs.loadWetKernel; exports.luma = _chunkUQXULAMQcjs.luma; exports.maskBounds = _chunkBB6TR422cjs.maskBounds; exports.membraneFill = _chunkBB6TR422cjs.membraneFill; exports.mix32 = _chunk3K6HWEXZcjs.mix32; exports.mixPigments = _chunk2VX55NFMcjs.mixPigments; exports.mixerRates = _chunkIFWLZZCWcjs.mixerRates; exports.moveLivePatternSnapshot = _chunkIFWLZZCWcjs.moveLivePatternSnapshot; exports.moveWetSnapshot = _chunkMITQGHN3cjs.moveWetSnapshot; exports.normalizeBlender = _chunkIFWLZZCWcjs.normalizeBlender; exports.normalizeBrush = _chunkIFWLZZCWcjs.normalizeBrush; exports.normalizeFlow = _chunkMITQGHN3cjs.normalizeFlow; exports.normalizeHexColor = _chunkIFWLZZCWcjs.normalizeHexColor; exports.normalizeLivePatterns = _chunkIFWLZZCWcjs.normalizeLivePatterns; exports.normalizeMixer = _chunkIFWLZZCWcjs.normalizeMixer; exports.normalizePatternHexColor = _chunkIFWLZZCWcjs.normalizePatternHexColor; exports.normalizeRetouch = _chunkUQXULAMQcjs.normalizeRetouch; exports.normalizeSmudge = _chunkIFWLZZCWcjs.normalizeSmudge; exports.normalizeTilt = _chunkMITQGHN3cjs.normalizeTilt; exports.normalizeWetParams = _chunkMITQGHN3cjs.normalizeWetParams; exports.packWetParams = _chunkMITQGHN3cjs.packWetParams; exports.paintGradientMappingFor = _chunkIFWLZZCWcjs.paintGradientMappingFor; exports.paintPathStroke = _chunkNPPMKMCUcjs.paintPathStroke; exports.paintSourceColor = _chunkIFWLZZCWcjs.paintSourceColor; exports.paintSourceCss = _chunkIFWLZZCWcjs.paintSourceCss; exports.parsePaintSource = _chunkIFWLZZCWcjs.parsePaintSource; exports.parsePatternHexColor = _chunkIFWLZZCWcjs.parsePatternHexColor; exports.pathStrokeCoverage = _chunkNPPMKMCUcjs.pathStrokeCoverage; exports.pathStrokeDabs = _chunkNPPMKMCUcjs.pathStrokeDabs; exports.patternNoise = _chunkIFWLZZCWcjs.patternNoise; exports.perDabStrength = _chunkUQXULAMQcjs.perDabStrength; exports.pigmentColor = _chunkMITQGHN3cjs.pigmentColor; exports.pigmentOf = _chunkMITQGHN3cjs.pigmentOf; exports.pixelPigment = _chunkMITQGHN3cjs.pixelPigment; exports.pointerPressure = _chunkUQXULAMQcjs.pointerPressure; exports.pointerStrokeSample = _chunkUQXULAMQcjs.pointerStrokeSample; exports.pointerStrokeSamples = _chunkUQXULAMQcjs.pointerStrokeSamples; exports.put255 = _chunkIFWLZZCWcjs.put255; exports.rand01 = _chunk3K6HWEXZcjs.rand01; exports.randSigned = _chunk3K6HWEXZcjs.randSigned; exports.rasterizeDab = _chunkIFWLZZCWcjs.rasterizeDab; exports.readPaintSource = _chunkIFWLZZCWcjs.readPaintSource; exports.readSourceRegion = _chunkUQXULAMQcjs.readSourceRegion; exports.reflectanceToRgb = _chunk2VX55NFMcjs.reflectanceToRgb; exports.removePaintGradientStop = _chunkIFWLZZCWcjs.removePaintGradientStop; exports.renderBrushstroke = _chunkNPPMKMCUcjs.renderBrushstroke; exports.resolvePaintGradient = _chunkIFWLZZCWcjs.resolvePaintGradient; exports.retouchFilter = _chunkUQXULAMQcjs.retouchFilter; exports.reversePaintGradient = _chunkIFWLZZCWcjs.reversePaintGradient; exports.rgbToReflectance = _chunk2VX55NFMcjs.rgbToReflectance; exports.rgbaViewOfGrey = _chunkUQXULAMQcjs.rgbaViewOfGrey; exports.saturationOf = _chunkUQXULAMQcjs.saturationOf; exports.scalePaintGradient = _chunkIFWLZZCWcjs.scalePaintGradient; exports.seamlessClone = _chunkBB6TR422cjs.seamlessClone; exports.seedFromString = _chunk3K6HWEXZcjs.seedFromString; exports.setPigmentColor = _chunk2VX55NFMcjs.setPigmentColor; exports.shadeLightTile = _chunkMITQGHN3cjs.shadeLightTile; exports.shadeTile = _chunkMITQGHN3cjs.shadeTile; exports.smoothPoints = _chunkIFWLZZCWcjs.smoothPoints; exports.smudgeEffect = _chunkUQXULAMQcjs.smudgeEffect; exports.solidPaint = _chunkIFWLZZCWcjs.solidPaint; exports.solveMembrane = _chunkBB6TR422cjs.solveMembrane; exports.sponge = _chunkUQXULAMQcjs.sponge; exports.spongeEffect = _chunkUQXULAMQcjs.spongeEffect; exports.spotHealPixels = _chunkUQXULAMQcjs.spotHealPixels; exports.spotHealWindow = _chunkUQXULAMQcjs.spotHealWindow; exports.srgbByteToLinear = _chunkMITQGHN3cjs.srgbByteToLinear; exports.stepSlotTs = _chunkMITQGHN3cjs.stepSlotTs; exports.strokeGrainCatch = _chunkIFWLZZCWcjs.strokeGrainCatch; exports.tipFalloff = _chunkIFWLZZCWcjs.tipFalloff; exports.tipReach = _chunkIFWLZZCWcjs.tipReach; exports.tipShape = _chunkIFWLZZCWcjs.tipShape; exports.toneOf = _chunkUQXULAMQcjs.toneOf; exports.updatePaintGradientStop = _chunkIFWLZZCWcjs.updatePaintGradientStop; exports.walkDabs = _chunkIFWLZZCWcjs.walkDabs; exports.wetGpuSupport = _chunkMITQGHN3cjs.wetGpuSupport; exports.wetSimdSupported = _chunkMITQGHN3cjs.wetSimdSupported; exports.wetSupport = _chunkMITQGHN3cjs.wetSupport;
@@ -22,3 +22,4 @@ export * from './rand.cjs';
22
22
  export * from './brushstroke.cjs';
23
23
  export * from './pointer.cjs';
24
24
  export * from './grain.cjs';
25
+ export * from './live-patterns.cjs';
@@ -22,3 +22,4 @@ export * from './rand.js';
22
22
  export * from './brushstroke.js';
23
23
  export * from './pointer.js';
24
24
  export * from './grain.js';
25
+ export * from './live-patterns.js';
@@ -33,7 +33,7 @@ import {
33
33
  spotHealPixels,
34
34
  spotHealWindow,
35
35
  toneOf
36
- } from "../chunk-HVO6XCI4.js";
36
+ } from "../chunk-JPB65KQ6.js";
37
37
  import {
38
38
  bestOffset,
39
39
  contentAwareFill,
@@ -134,7 +134,7 @@ import {
134
134
  wetGpuSupport,
135
135
  wetSimdSupported,
136
136
  wetSupport
137
- } from "../chunk-LMG57L5A.js";
137
+ } from "../chunk-CTHWXW5M.js";
138
138
  import {
139
139
  BrushstrokeCache,
140
140
  brushstrokeDataUrl,
@@ -147,11 +147,12 @@ import {
147
147
  pathStrokeCoverage,
148
148
  pathStrokeDabs,
149
149
  renderBrushstroke
150
- } from "../chunk-W6JDUXP3.js";
150
+ } from "../chunk-J23JOHPR.js";
151
151
  import {
152
152
  CoverageMap,
153
153
  DEFAULT_BLENDER,
154
154
  DEFAULT_BRUSH,
155
+ DEFAULT_LIVE_PATTERNS,
155
156
  DEFAULT_MIXER,
156
157
  DEFAULT_PAINT_GRADIENT,
157
158
  DEFAULT_PAINT_GRADIENT_MAPPING,
@@ -160,6 +161,9 @@ import {
160
161
  EMPTY_MIXER_LOAD,
161
162
  GRAIN_PATTERNS,
162
163
  GRAIN_TILE,
164
+ LIVE_PATTERN_KINDS,
165
+ LIVE_PATTERN_PRESETS,
166
+ LivePatternField,
163
167
  MAX_BRUSH_SIZE,
164
168
  MIXER_DRAIN,
165
169
  MIXER_PICKUP_RATE,
@@ -177,6 +181,10 @@ import {
177
181
  PAINT_GRADIENT_SPACES,
178
182
  PAINT_GRADIENT_SPACE_LABELS,
179
183
  PAINT_SOURCE_JSON_SCHEMA,
184
+ PATTERN_CELLS,
185
+ PATTERN_SUBSTEPS,
186
+ PATTERN_TILE,
187
+ PATTERN_V_EPS,
180
188
  PaintExchange,
181
189
  PaintGradientSampler,
182
190
  PaintSourceError,
@@ -201,17 +209,23 @@ import {
201
209
  grainHeights,
202
210
  hexToPaintRgb,
203
211
  isGradientPaint,
212
+ isLivePatternKind,
204
213
  loadMixer,
205
214
  mixerRates,
215
+ moveLivePatternSnapshot,
206
216
  normalizeBlender,
207
217
  normalizeBrush,
208
218
  normalizeHexColor,
219
+ normalizeLivePatterns,
209
220
  normalizeMixer,
221
+ normalizePatternHexColor,
210
222
  normalizeSmudge,
211
223
  paintGradientMappingFor,
212
224
  paintSourceColor,
213
225
  paintSourceCss,
214
226
  parsePaintSource,
227
+ parsePatternHexColor,
228
+ patternNoise,
215
229
  put255,
216
230
  rasterizeDab,
217
231
  readPaintSource,
@@ -227,7 +241,7 @@ import {
227
241
  tipShape,
228
242
  updatePaintGradientStop,
229
243
  walkDabs
230
- } from "../chunk-ACTHSQOI.js";
244
+ } from "../chunk-LDZOXESA.js";
231
245
  import {
232
246
  TileableNoise,
233
247
  hash2,
@@ -266,6 +280,7 @@ export {
266
280
  DEFAULT_BLENDER,
267
281
  DEFAULT_BRUSH,
268
282
  DEFAULT_FLOW,
283
+ DEFAULT_LIVE_PATTERNS,
269
284
  DEFAULT_MIXER,
270
285
  DEFAULT_PAINT_GRADIENT,
271
286
  DEFAULT_PAINT_GRADIENT_MAPPING,
@@ -290,6 +305,9 @@ export {
290
305
  GRAIN_TILE,
291
306
  HIDE,
292
307
  IDENTITY_CLONE_TRANSFORM,
308
+ LIVE_PATTERN_KINDS,
309
+ LIVE_PATTERN_PRESETS,
310
+ LivePatternField,
293
311
  MASS_CHANNELS,
294
312
  MAX_BATCH,
295
313
  MAX_BRUSH_SIZE,
@@ -316,6 +334,10 @@ export {
316
334
  PAPER_CAPACITY,
317
335
  PARAM,
318
336
  PARAM_FLOATS,
337
+ PATTERN_CELLS,
338
+ PATTERN_SUBSTEPS,
339
+ PATTERN_TILE,
340
+ PATTERN_V_EPS,
319
341
  PIGMENT_BANDS,
320
342
  PIGMENT_CHANNELS,
321
343
  PIGMENT_LAMBDA_MIN,
@@ -420,6 +442,7 @@ export {
420
442
  isBrushstrokeBrush,
421
443
  isGradientPaint,
422
444
  isIdentityCloneTransform,
445
+ isLivePatternKind,
423
446
  latticeViscosity,
424
447
  lerpPigment,
425
448
  lerpPigmentInto,
@@ -432,12 +455,15 @@ export {
432
455
  mix32,
433
456
  mixPigments,
434
457
  mixerRates,
458
+ moveLivePatternSnapshot,
435
459
  moveWetSnapshot,
436
460
  normalizeBlender,
437
461
  normalizeBrush,
438
462
  normalizeFlow,
439
463
  normalizeHexColor,
464
+ normalizeLivePatterns,
440
465
  normalizeMixer,
466
+ normalizePatternHexColor,
441
467
  normalizeRetouch,
442
468
  normalizeSmudge,
443
469
  normalizeTilt,
@@ -448,8 +474,10 @@ export {
448
474
  paintSourceColor,
449
475
  paintSourceCss,
450
476
  parsePaintSource,
477
+ parsePatternHexColor,
451
478
  pathStrokeCoverage,
452
479
  pathStrokeDabs,
480
+ patternNoise,
453
481
  perDabStrength,
454
482
  pigmentColor,
455
483
  pigmentOf,
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Live patterns: Gray-Scott reaction-diffusion fields `(U, V)` that grow inside wet paint and
3
+ * freeze where the paint dries.
4
+ *
5
+ * Each wet layer with live patterns active holds a sparse set of half-resolution (`128 × 128`)
6
+ * pattern tiles paired with the `256 × 256` tiles of `WetWorld`, outside the wet-media LBM kernel.
7
+ * Every wet simulation step runs Gray-Scott substeps gated by the wet layer's water (`P_RHO` +
8
+ * `P_SW > DRY_EPS`): where water remains, `U` and `V` react and diffuse into Turing spots,
9
+ * stripes, coral dendrites, mazes or worms; where the paint has dried, the reaction and diffusion
10
+ * rates drop to zero so the pattern freezes in place.
11
+ */
12
+ import { TiledSurface, type RasterRect } from '../raster/surface.cjs';
13
+ /** Side length of one half-resolution pattern tile (`WET_TILE / 2`). */
14
+ export declare const PATTERN_TILE = 128;
15
+ /** Cells per pattern tile (`128 × 128`). */
16
+ export declare const PATTERN_CELLS: number;
17
+ /** Gray-Scott substeps run for each wet simulation step. */
18
+ export declare const PATTERN_SUBSTEPS = 4;
19
+ /** Threshold of `V` above which a cell counts as pattern-bearing in stats and relief. */
20
+ export declare const PATTERN_V_EPS = 0.02;
21
+ /** Named Gray-Scott Pearson pattern presets. */
22
+ export declare const LIVE_PATTERN_KINDS: readonly ["spots", "stripes", "coral", "maze", "worms"];
23
+ export type LivePatternKind = (typeof LIVE_PATTERN_KINDS)[number];
24
+ export interface LivePatternPresetInfo {
25
+ readonly kind: LivePatternKind;
26
+ readonly label: string;
27
+ readonly description: string;
28
+ readonly feed: number;
29
+ readonly kill: number;
30
+ }
31
+ /** Built-in Pearson (1993) feed / kill parameter presets. */
32
+ export declare const LIVE_PATTERN_PRESETS: Readonly<Record<LivePatternKind, LivePatternPresetInfo>>;
33
+ /** Resolved live-pattern parameters for a brush or wet layer. */
34
+ export interface LivePatternsSettings {
35
+ /** Named Gray-Scott preset (`spots`, `stripes`, `coral`, `maze`, `worms`). */
36
+ pattern: LivePatternKind;
37
+ /** Gray-Scott feed rate F (0.01..0.1). */
38
+ feed: number;
39
+ /** Gray-Scott kill rate k (0.03..0.08). */
40
+ kill: number;
41
+ /** Pattern feature scale (0.5..4, default 1). Scales the diffusion rates. */
42
+ scale: number;
43
+ /** Visual contrast of the V concentration field (0..2, default 1). */
44
+ contrast: number;
45
+ /** Optional hex colour (`#rrggbb`) that V blends the wet paint towards; `null` modulates pigment contrast. */
46
+ secondColor: string | null;
47
+ /** Impasto relief written to the layer's thick height map as patterns grow (0..1, default 0). */
48
+ relief: number;
49
+ }
50
+ export type LivePatternsInput = Partial<LivePatternsSettings>;
51
+ export declare const DEFAULT_LIVE_PATTERNS: Readonly<LivePatternsSettings>;
52
+ export declare function isLivePatternKind(v: unknown): v is LivePatternKind;
53
+ /** Normalizes a hex colour string (`#rgb` or `#rrggbb`) to lowercase `#rrggbb`, or `null`. */
54
+ export declare function normalizePatternHexColor(v: unknown, fallback?: string | null): string | null;
55
+ /** Parses a `#rrggbb` colour to `[r, g, b]` bytes, or `null`. */
56
+ export declare function parsePatternHexColor(hex: string | null): [number, number, number] | null;
57
+ /** Clamps and fills a `LivePatternsSettings` object from partial input. */
58
+ export declare function normalizeLivePatterns(raw?: LivePatternsInput | null | undefined, base?: LivePatternsSettings): LivePatternsSettings;
59
+ /** Deterministic 32-bit integer hash in `[0, 1)` shared between TypeScript and Swift. */
60
+ export declare function patternNoise(gx: number, gy: number, seed: number): number;
61
+ /** Summary statistics for one wet layer's Gray-Scott field. */
62
+ export interface LivePatternStats {
63
+ /** Whether live patterns are enabled on this layer. */
64
+ enabled: boolean;
65
+ /** Current Gray-Scott reaction-diffusion settings for this layer. */
66
+ settings: LivePatternsSettings;
67
+ /** Half-resolution (`128 × 128`) tiles currently holding pattern state. */
68
+ activeTiles: number;
69
+ /** Pattern cells (`2 × 2` px each) where `V >= PATTERN_V_EPS`. */
70
+ patternCells: number;
71
+ /** Pattern cells where `V >= PATTERN_V_EPS` that are still wet (actively growing). */
72
+ wetPatternCells: number;
73
+ /** Mean `V` concentration across active pattern cells (0..1). */
74
+ meanV: number;
75
+ /** Peak `V` concentration across the layer (0..1). */
76
+ maxV: number;
77
+ /** Document pixel bounding box of active pattern cells, or `null` when none. */
78
+ bounds: RasterRect | null;
79
+ }
80
+ export interface LivePatternTileState {
81
+ readonly u: Float64Array;
82
+ readonly v: Float64Array;
83
+ readonly bakedV: Float64Array;
84
+ }
85
+ export interface LivePatternFieldSnapshot {
86
+ readonly settings: LivePatternsSettings;
87
+ readonly enabled: boolean;
88
+ readonly tiles: ReadonlyMap<number, LivePatternTileState>;
89
+ readonly bytes: number;
90
+ }
91
+ /** Callback returning whether a half-res pattern cell `(tx, ty, lx, ly)` still holds water. */
92
+ export type WetCellPredicate = (tx: number, ty: number, lx: number, ly: number) => boolean;
93
+ /**
94
+ * Per-wet-layer Gray-Scott reaction-diffusion field `(U, V)` stored in `128 × 128` tiles.
95
+ */
96
+ export declare class LivePatternField {
97
+ width: number;
98
+ height: number;
99
+ tilesX: number;
100
+ tilesY: number;
101
+ settings: LivePatternsSettings;
102
+ enabled: boolean;
103
+ readonly tiles: Map<number, {
104
+ u: Float64Array;
105
+ v: Float64Array;
106
+ bakedV: Float64Array;
107
+ }>;
108
+ constructor(width: number, height: number, settings?: LivePatternsInput);
109
+ resize(width: number, height: number): void;
110
+ configure(settings: LivePatternsInput): LivePatternsSettings;
111
+ clear(): void;
112
+ private ensureTile;
113
+ /**
114
+ * Seeds Gray-Scott reagent `V` inside a circle at document coordinates `(cx, cy)` with document
115
+ * `radius` (pixels). Returns the number of half-resolution cells seeded.
116
+ */
117
+ seedDisc(cx: number, cy: number, radius: number, seed?: number, strength?: number): number;
118
+ /**
119
+ * Advances the Gray-Scott reaction-diffusion field for `wetSteps` wet simulation steps.
120
+ * Only cells where `isWetCell(tx, ty, lx, ly)` is true update; dry cells have zero rate and freeze.
121
+ * Returns whether any cell updated.
122
+ */
123
+ step(wetSteps: number, isWetCell: WetCellPredicate, canWakeTile?: (tx: number, ty: number) => boolean): boolean;
124
+ /**
125
+ * Bilinearly samples unbaked `V` (`max(0, v - bakedV)`) at document-tile pixel `(x, y)` in `0..255`.
126
+ */
127
+ private sampleUnbakedV;
128
+ /**
129
+ * Blends the pattern's `V` concentration into a shaded `256 × 256` RGBA wet tile `out`.
130
+ * Returns whether any pixel in `out` was modified.
131
+ */
132
+ shadeTile(tx: number, ty: number, out: Uint8ClampedArray, w: number, h: number): boolean;
133
+ /** Marks a tile's current `V` values as baked into the layer's base surface so they are not baked twice. */
134
+ markBaked(tx: number, ty: number): void;
135
+ /**
136
+ * When `settings.relief > 0`, writes pattern `V` ridges into a 1-channel thick height surface.
137
+ * Returns the updated height `TiledSurface`, or `currentHeight` when `relief <= 0` or nothing changed.
138
+ */
139
+ applyReliefHeight(currentHeight: TiledSurface): TiledSurface;
140
+ /** Computes summary statistics of the layer's live pattern field. */
141
+ stats(isWetCell?: WetCellPredicate): LivePatternStats;
142
+ snapshot(): LivePatternFieldSnapshot;
143
+ restore(snap: LivePatternFieldSnapshot): void;
144
+ }
145
+ /** Shifts a `LivePatternFieldSnapshot` by `(tx0, ty0)` whole wet tiles for a resized canvas `to`. */
146
+ export declare function moveLivePatternSnapshot(snap: LivePatternFieldSnapshot, to: {
147
+ width: number;
148
+ height: number;
149
+ }, tx0: number, ty0: number): LivePatternFieldSnapshot;