function generateMosaicBackground (size = 200) {
  // Create canvas with transparent background
  const canvas = document.createElement('canvas')
  canvas.width = size
  canvas.height = size
  const ctx = canvas.getContext('2d')

  // Clear with transparent background
  ctx.clearRect(0, 0, size, size)

  // Available pattern generators
  const patterns = [
    generateFluidDynamics,
    generateQuantumWave,
    generateRelativityField,
    generateFluidFlow,
    generateParticlePhysics,
    generateWaveInterference,
    generateStringTheory,
    generateQuantumField
  ]

  // Select a random pattern
  const selectedPattern = patterns[Math.floor(Math.random() * patterns.length)]

  // Generate random color parameters
  const hue = Math.floor(Math.random() * 360)
  const saturation = 70 + Math.floor(Math.random() * 20)
  const lightness = 70 + Math.floor(Math.random() * 20)

  // Generate the pattern with given color
  selectedPattern(ctx, size, `hsla(${hue}, ${saturation}%, ${lightness}%, 0.3)`)

  // Return the canvas as a data URL
  return canvas.toDataURL()
}
Generate a canvas with a mathematical or physical pattern
@param {number} size - Size of the canvas
@returns {string} - Data URL of the generated canvas