(The above and below diagrams show the quality of image scaling that can be achieved using Scalable Function Graphics, both in ‘sharp edge more’ and ‘detail recovery mode’. The above iris image was originally a wiki commons photograph by Laitr Keiows.

Here it has been scaled down to a 40 by 40 thumbnail, and then back up again using different techniques)

The input values to this function are decimal x,y co-ordinates, and the three outputs correspond to the red, green, and blue values of a precise point at that location. Before converting into an SFG the original image will have consisted of a fixed number of points (or pixels). Through the conversion process the learning algorithm steadily manipulates constants of an extremely long mathematical function such that the output of the function will directly match up with the RGB values of each pixel in the original image (so long as the inputs to the function were the co-ordinate values of the respective pixel).

A comparison can be drawn between Scalable Function Graphics and Scalable Vector Graphics (SVG). SVGs also store images as a scalable mathematical model, but with an important difference. SVGs store values that directly represent colours, heights, widths and other attributes of a fixed number of geometric shapes. As mathematically defined objects these shapes maintain the same characteristics at any scale. Unfortunately, however, this mechanism only remains useful for text, and relatively simple illustrations such as logos. Photographic images are far too complex to be stored using simple geometric objects. This is where Scalable Function Graphics are intended to be useful.

## The Development of Scalable Function Graphics

The below sequence of images are rendered bivariate, vector-valued function graphics that have been produced without a learning process. Instead the constituent functions, mathematical operators, variables and constants have been generated and combined into a single function randomly. Discontinuous functions such as tan, min, max, abs, random, and if-then-else were also included, facilitating infinite sharpness and granularity. The fact that these functions are discontinuous means that they will produce the same sharp characteristics no-matter what resolution the image is displayed at (so long as it is stored as a function graphic).

The initial intention was that this behaviour would serve as a means of preserving sharp edges in photographic images when they are scaled up, however it quickly became apparent that discontinuous functions directly impeded the learning process.

Here the Wikipedia commons photograph ‘Feathered Dusk’ taken by Jessie Eastland, has been converted into a mathematical function using a machine learning algorithm. Through an iterative process the algorithm has developed a bivariate, vector valued, mathematical function, the outputs of which correspond to the RGB values of each pixel in the image (as long as the two inputs are the x,y co-ordinates of the respective pixel).

Explore Scalable Function Graphics for yourself and download PhotoFunction; the free, prototype software that allows you to convert thumbnail images into Scalable Function Graphics.

###

Alexander O.D. Lorimer is a computer programmer and emergent systems researcher, focusing on the application of self-organising systems to solve complex design problems. An overarching aim is the development of an artificial and collective intelligence system to better optimise and decentralise the products and processes of architectural design.

www.aodlorimer.com