PhotoCircus

The PhotoCircus iOS app is the youngest member of the family of automated image-generating programs. Remko Scha is the founding father of this family.

 

The app samples the Photo Library on the device and feeds its drawing operations with the sampled photos. The drawing operations include:

  • Transformations in color or coordinate space (filters).
  • Distribution of a series of images on the available canvas in the form of a regular grid, a collage or a scatter of the images.
  • A put-on operation that draws foreground images on top of a background image.
  • Various blends or mixes of 2 to 4 images.
  • In addition, the app is capable of drawing lines and curves using a variety of brushes.
    This also enables an operation without photos, for instance if access to the Photo Library has not been granted.

Relying heavily on Apple’s Core Graphics framework, the app can also be seen as a demonstration of the capabilities of that framework.

Expression

Each new drawing starts with the creation of an expression that consists of the drawing operations to use. It uniquely defines the drawing that will be made. 

 

The app, obviously being aware of its drawing operations, devises the expression in a way that satisfies its rules about foreground and background operations.

 

The maximum number of drawing operations to use for a drawing is one of the app settings, as is the maximum number of photos sampled per drawing.

 

Another setting that probably needs some explanation is the Photo/Drawing Ratio:

 

The app distinguishes photo- and drawing-like inputs of its operations, as drawings are more suitable to draw on top of other images. Photos from the library  are considered to be – you guessed it – photos. However, a photo with an overlay filter that outlines the edges looks more like a (black & white) drawing, and is considered as such. The creation of lines and curves is also seen as a drawing-like operation.

The more the slider is moved to the right, the more likely is the use of plain photos in the expression.

 

A summary of the expression is shown for a moment, after which the drawing operations are executed as described by the expression.

Production

The production phase of the app consists of the creation of the drawing that was envisioned a moment earlier by means of the generated expression.

 

The result of each but the latest drawing operation is the input of another operation. The progress of the drawing process can be monitored at the bottom of the screen. The process can be interrupted  – stopped or paused/continued – at any moment.

The speed of drawing is adjusted in the settings, also available via a long press while drawing. The default is a moderate speed, but much faster or slower drawing is possible as well.

Drawing is possible in low or high resolution. The latter utilizes the higher pixel density of Retina displays.

 

Having done the final operation in the expression, the drawing is complete. A few of the finished products are on display in the Gallery.

History

Upon completion, the drawing is saved, along with the expression that is needed to reproduce the image. Storage is done locally on disk or in iCloud (if available). From 0 (no storage) up to 100 drawings can be retained. The default History Limit is 25. 

The History tab shows the most recently produced drawings. Selecting a drawing in the list transitions to a full-detail view of the image. Swiping a row to the left or right reveals buttons to:

  • Share the image.
  • Delete the drawing.
  • Draw the drawing again.
  • (Un)lock the drawing.
    Locked drawings are not removed automatically, if the History Limit is reached.

Via the Edit button multiple or all drawings can be selected for removal or toggling the lock state. The Select all button does not select locked drawings. Such drawings can be removed or unlocked on an individual basis.

Tapping the more button () in the full-detail view of the drawing gives access to the following actions:

  • Copy the file location (URL) to the clipboard.
  • Share the image.
  • Share the drawing file, including the expression.

These actions can also be invoked by a tap on the image.

A tap on the camera button () initiates a step-by-step run of the drawing.

Step by Step

The Step by Step view seeks to highlight the structure of the drawing expression by presenting the result of each drawing operation in a tree-like view, while scrolling up and down to the current operation.