Seni is going to be an Android app which generates unique wallpapers for your device.
It renders images from scripts written in a Scheme-like language. Genetic programming techniques are then used to generate variations of the image based on user feedback.
Here’s a very early screenshot, it’s using primitive drawing operations from the Canvas element, but the final release of the app will be based on an OpenGL renderer:
Whilst the seni scripts won’t be visible for end-users, here’s an example of their syntax. As you can see it’s based on Scheme but with additional square brackets, these are points in the program that can be modified by the runtime:
(metadata title "art1405c" description "a more volatile version of earlier scripts" author "indy" created "2014-02-04") (define squ (lambda (angle colour box-radius) (begin (set-colour colour) (scope (rotate angle) (translate 0.0 (/ canvas-height 5)) (circle 0.0 0.0 box-radius)) (let ((br2 box-radius) (ang [20.0 (in-range 0.0 90.0)]) (to-center-factor (/ (/ canvas-height 5) [13.3333 (in-range 5.0 50.0)])) (shrink-factor [0.9 (in-range 0.1 2.1)]) (ang-delta [8.0 (in-range 1.0 59.0)])) (do-times i 10 (set! br2 (* br2 shrink-factor)) (set! ang (+ ang ang-delta)) (scope (rotate (- angle ang)) (translate 0.0 (- (/ canvas-height 5) (* (as-float i) to-center-factor))) (circle 0.0 0.0 br2)) (scope (rotate (+ angle ang)) (translate 0.0 (- (/ canvas-height 5) (* (as-float i) to-center-factor))) (circle 0.0 0.0 br2))))))) (let ((primary (colour [0.0] [0.9] [0.9] 0.3)) (triads (triad primary)) (box-radius (/ canvas-width 12.0)) (focal-x (/ canvas-width 2.0)) (focal-y (/ canvas-height 2.0)) (angle [0.0 (in-range 0.0 360.0)])) (do-times i 3 (scope (translate focal-x focal-y) (squ angle (nth triads i) box-radius) (set! angle (+ angle (/ 360.0 3.0))))))
The app is currently under development but the source code is on Github