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.

Version
The current version is September 2022
References
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

intro2023.ml [32K]
Array language embedded in OCaml: introduction, motivation, explanation, advocation. Stepwise, detailed development of 1D, 2D and shape-polymorphic primitives

image.ml [4K]
Reading and writing images

cmaps.ml [17K]
A few neat colormaps

plasma2d.ml [23K]
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]