Table of Contents "Algorithmic Art & A.I."       IAAA       


"Die Schönheit einer Sternfigur – eines Sechseck-Sterns etwa – wird beeinträchtigt, wenn man sie symmetrisch bezüglich einer bestimmten Achse sieht."

Ludwig Wittgenstein, 1948. (Vermischte Bemerkungen, p. 135.)



Course "Algorithmic Art & A.I."  –  Jos de Bruin en Remko Scha

Gestalt Perception


Structure of (static) visual input: "Gestalt". (Cf. taal: oppervlaktestructuur van zinnen en teksten.)

Factoren:

(1) Herkenning
(2) 3D
(3) eenvoud & regelmatigheid

Nu: focus op abstracte patronen waarin herkenning en 3D geen rol spelen. Gestaltperceptie.


Wertheimer's Gestalt Principles

Max Wertheimer: "Untersuchungen zur Lehre von der Gestalt." Psychologische Forschung 4 (1923), pp. 301-350. (English translation of important parts of this paper: "Laws of Organization in Perceptual Forms." In: W. Ellis: A source book of Gestalt psychology. London: Routledge & Kegan Paul, 1938, pp. 71-88. Voor een on-line samenvatting zie: Charles F. Schmidt: "On Perceptual Grouping.")

Afstand:       O OO O OO O OO O OO O OO O O

Kleur:           OOOOOOOOOOOOOOOOOOOO

Grootte:       OOOooOoOOoooooOOOOOOooO

Vorm:           OOO+OO++OOOOOO+OO+++O+

Herhaling:    OOOOOOOOOOOAXQAXQAXQAXQ

Symmetrie:           AAAXXXQQQXXXAAA

Continuering: Zie Wertheimer artikel

Ervaring: Herkenning van eerder gezien patroon


Proximity Gestalts: Moiré Effects.


Leeuwenberg's Coding Theory: Structural Information Theory (SIT).

Domein: sequenties van symbolen.

Operaties in de codeertaal: Herhaling, Symmetrie, Alternatie.
B.v.:

Rep3(AB)           =  ABABAB
Sym(AB, C)        =  ABCBA
Altright(ABC, K) =  AKBKCK

Elk input-patroon heeft talrijke alternatieve coderingen.
B.v.:

ABABAB

= Rep3(AB)
= AB Rep2(AB)
= A Rep2(BA) B
= A Sym(BA, B)
= Altright(AAA, B)
= Altright(Rep3(A), B)

Analyse is disambiguering. Disambigueringscriterium: kies de kortste code.

Andere psychologische literatuur met dit soort ideeën erin: Attneave. Ook: Max Clowes.

Hoe kan dit toegepast worden op visuele input? Antwoord: door die input te her-coderen als een sequentie van symbolen. Patronen uit rechte lijnen kunnen weergegeven worden d.m.v. "turtle graphics" (zoals bij de programmeertaal Logo). Een lijn wordt gedefinieerd als een sequentie van paren: hoekverdraaiïng/verplaatsingsafstand.

Een vierkant met ribbe a wordt dan b.v.: pi/2 a  pi/2 a  pi/2 a  pi/2 a
— oftewel: rep4(pi/2 a)

Een zigzaglijn: b a  —b a  b a  —b a  b a  —b a  b a  —b a  b a  —b a  
— oftewel: repN(b a —b a)

Aan de zigzaglijn zie je dat er nog een regelmatigheid in zit die niet door de codeertaal verantwoord wordt. Daar is dus een uitbreiding van de codeertaal voor nodig.

Een vierkant met ribbe c met op de hoekpunten vierkantjes met ribbe a: rep4(pi/2 c rep4(pi/2 a))

Deze figuur "zie" je ook als het vierkant met ribbe b helemaal niet expliciet getekend wordt. Om dat soort voorbeelden aan te kunnen moeten de "lift pen" en "lower pen" operaties aan de codeertaal toegevoegd worden.

Een SIT-Interpreter Java-applet, ontworpen en gecodeerd door Jos de Bruin, staat online. Let op: deze interpreter gebruikt de SIT-notatie zoals gedefinieerd in Hoofdstuk 2 ("Gestalt Perception and Structural Information Theory") van het proefschrift Languages of Perception van Mehdi Dastani. (Dit is een andere notatie dan gebruikt werd in de voorbeeldjes hierboven. Gebruik het knopje "Auto" om willekeurige voorbeelden van zulke expressies te zien te krijgen.)

Er zijn twee algoritmes geïmplementeerd die een "basis-code" (sequentie van paren: hoek + afstand) inlezen en dan de kortste SIT-code bepalen. Dit lukt niet op een betrouwbare deterministische manier; als gevolg van de alternatie-operatie is het bepalen van de kortste SIT-code een NP-compleet probleem.
Het programma PISA van Peter van der Helm (KUN) is wel deterministisch maar levert soms verkeerde resultaten. Het is geschreven in C en draait onder Unix.
Robert Voorn (VU) heeft in C++ een genetisch algoritme gecodeerd dat dit probleem te lijf gaat. Het levert vaak (maar niet altijd) de optimale code. Dit programma draait eveneens onder Unix.
Beide programma's zijn te bekomen via Mehdi Dastani.

Nakijken: hoe gaat occlusie eigenlijk? Ik meen dat dat een van hun standaardvoorbeelden is, maar het is me niet duidelijk hoe het eruit komt rollen dat b.v. een vierkant dat door een ander vierkant wordt afgedekt, in de code toch een compleet vierkant is (als je niet expliciet een notie van overdekking in je taal hebt).


References Gestalt Perception. [In Reader 1991]

R. Collard, P. Vos and E. Leeuwenberg: "What Melody Tells about Metre in Music." Zeitschrift für Psychologie, 189 (1981).

Mohammad Mehdi Dastani: Languages of Perception. Ph. D. Thesis University of Amsterdam, 1998. ILLC Dissertation Series 1998-05.

Emanuel L. J. Leeuwenberg: "A Perceptual Coding Language for Visual and Auditory Patterns." American Journal of Psychology 84, 3 (1971).

Irvin Rock and Stephen Palmer: "The Legacy of Gestalt Psychology." Scientific American, December 1990, pp. 48–61.

Max Wertheimer: "Laws of Organization in Perceptual Forms." In: W. Ellis: A source book of Gestalt psychology. London: Routledge & Kegan Paul, 1938, pp. 71-88. [English Translation of selected parts from: "Untersuchungen zur Lehre von der Gestalt", II, Psychologische Forschung 4 (1923), pp. 301–350.]


References Complexity. [In Reader 1991]

G. Birkhoff: "A Mathematical Approach to Aesthetics." Scientia 50 (1931), pp. 133-146.

R. Gunzenhäuser: "Birkhoff's Anwendungen." In: Maß und Information als Ästhetische Kategorien. Baden-Baden: Agis Verlag, 1975.

Frans Boselie and Emanuel Leeuwenberg: "A General Notion of Beauty Used to Quantify the Aesthetic Attractiveness of Geometric Forms." In: W. Crozier and A. Chapman (eds.): Cognitive Processes in the Perception of Art. Elsevier Science Publishers, 1984.



Acknowledgments

Léon van Noorden attendeerde ons lang geleden op Leeuwenberg's werk. René Glas vond enkele nuttige web-links.