Вы можете использовать привязку Imagemagick к php.
Вот некоторые функции искажения: http://www.imagemagick.org/Usage/distorts/
А вот и скрипт калейдоскопа: http://www.fmwconcepts.com/imagemagick/kaleidoscope/index.php
Вы можете комбинировать искажения и калейдоскоп, чтобы получить красивые картинки.
например. как то так (bash, а не php):
$ mkkal='dx=i-50; dy=j-50; rad=hypot(dx,dy); tt=mod((atan2(dy,dx)+6.28319+0)*5/(6.28319),1.0); ang=2*(tt<0.5?tt:1-tt); u.p{50+rad*cos(ang),50+rad*sin(ang)}'
$ convert -size 100x100 pattern:checkerboard -distort Barrel '-0.2 -3.0 0.2 1.3' -fx "$mkkal" tile.png
$ display tile.png
Попробуйте использовать разные аргументы Barrel или методы искажения, чтобы получить более интересные результаты.
![enter image description here](https://i.stack.imgur.com/8tWbg.gif)