Image Processing and Array Language Playground



New view on plasma fractals, from the high point of Array Languages

Plasma fractals is a technique to generate random and realistic clouds, textures and terrains -- traditionally using recursive subdivision. We demonstrate a new approach, based on iterative expansion. It gives a family of algorithms that includes the standard square-diamond algorithm and offers various interesting ways of extending it, and hence generating nicer pictures. The approach came about from exploring plasma fractals from the point of view of an array language (which we implemented as an embedded DSL in OCaml) -- that is, from the perspective of declaring whole image transformations rather than fiddling with individual pixels.

Joint work with Toshihiro Nakayama.

The current version is September 2022
FARM.pdf [450K]
Extended abstract for a demo presented at the ACM SIGPLAN FARM workshop, Ljubljana, Slovenia, September 2022.

PPL2022.pdf [204K]
PPL 2022 poster [26K]
Array language embedded in OCaml: introduction, motivation, explanation, advocation. Stepwise, detailed development of 1D, 2D and shape-polymorphic primitives [4K]
Reading and writing images [17K]
A few neat colormaps [24K]
Generation of Plasma Fractals

Sample generated plasma fractals (Resampling by bicubic interpolation)
noise factor 1.2: c1_2.png [36K]
noise factor 2.0, diagonal seed: c2_0-diag.png [32K]
noise factor 2.0: c2_0.png [39K]
noise factor 3.0: c3_0.png [21K]