Как сгенерить кривую, заполняющую полотно, с учётом яркости исходного изображения как на примере:

Понятно, как это можно сделать
кривой Гильберта, но та рисуется по клеточкам, состоит из ортогональных сегментов. А на картинке довольно симпатичная «органика» – как это сделано?