Generatief kunstwerk

Piet Mondriaan - Victory Boogie Woogie, 1944

Peter Struyken - Wetmatige Beweging, 1966

Vera Molnar - Structure A, 1988

Joshua Davis - the End of August, 2017

Michael Connolly - Elementals, 2021

Ben Kovach - Luminary, 2021
In deze opdracht ga je een algoritme schrijven om een eigen generatief kunstwerk te creëren. Hierboven zie je een aantal voorbeelden ter inspiratie. Het is dus niet de bedoeling dit werk na te maken, je bepaalt zelf hoe je kunstwerk er ongeveer uit komt te zien. Ongeveer, want je gaat natuurlijk een mate van willekeur programmeren in je algoritme. Je stelt hiervoor een aantal regels op waaraan je programma zich moet houden. Je maakt de opdracht weer in de p5 editor.
Regels
Welke regels ga je opstellen? Dat mag je helemaal zelf weten, maar je gebruikt minimaal 3 regels voor je algoritme. Hierbij kun je denken aan:
- Compositie
- Maak je gebruik van een regelmatig grid of wordt je compositie meer chaotisch? Of doe je beide, bijv. links regelmatig, naar rechts toe steeds onregelmatiger.
- Moet je compositie op sommige plekken drukker ogen dan op ander plekken?
- Gebruik je veel verschillende vormen en kleuren of juist heel weinig?
- Vormen
- Gebruik je standaard vormen, ga je speciale vormen maken om te gebruiken?
- Mag je bepaalde vormen niet gebruiken, of moeten bepaalde vormen vaker voorkomen dan andere? Moeten sommige vormen groter getekend worden dan andere?
- Maak je het type vorm afhankelijk van de plaats in je compositie, bijv. bovenin meer cirkels, onderin meer vierkanten?
- Mogen vormen overlappen of moet er juist ruimte zitten tussen vormen?
- Kleuren
- Gebruik je één of meer kleurenpaletten in je compositie, gebruik je willekeurige kleuren?
- Maak je gebruik van vulkleuren en/of lijnkleuren, en is de lijnkleur bijv. afhankelijk van de vulkleur?
- Sluit je bepaalde kleuren uit of gebruik je bijv. alleen pasteltinten of juist alleen harde kleuren?
- Is de kleur afhankelijk van de plaats in je compositie, bijv. in het midden meer geeltinten, aan de randen meer blauw?
- Gebruik je transparante kleuren, laat je kleuren overlappen om zo nieuwe kleuren te genereren?
De regels voor je algoritme voeg je als "comments" toe boven je code in de editor. Dat doe je door een regel te beginnen met // de tekst die na die regel volgt wordt door de computer genegeerd (het zal ook een licht grijze kleur krijgen).
Als je meerdere regels comments achter elkaar wilt invoegen, of een blok code even "uit wilt zetten", moet je voor de eerste regel /* zetten en na de laatste regel */. Nu wordt alles tussen deze tekens niet gelezen door de computer.
Beoordeling
Waaraan moet je werk voldoen?
- Je schrijft een werkend algoritme, dwz. je code functioneert en je sketch moet iets laten zien.
- Je sketch bevat de regels waaraan je algoritme zich houdt.
- Je sketch maakt gebruik van variabelen.
- Je sketch maakt gebruik van for en/of while loops voor herhalingsopdrachten.
- Je sketch maakt gebruik van de random functie om ervoor te zorgen dat je compositie er telkens anders uitziet.
- Je sketch maakt gebruik van arrays voor bijv. kleurenpaletten of standaard maten.
- Je code is goed gestructureerd.
| cijfer | onderdelen |
|---|---|
| onvoldoende | sketch laat niets zien en/of is één op één gekopieerd van iemand anders, sketch toont wel vormen maar ziet er altijd hetzelfde uit |
| 6 | sketch heeft minimaal 3 regels, genoteerd in comments, sketch bevat willekeurige elementen, je laat zien dat je duidelijk in de materie bent gedoken om een sketch te maken |
| 7 | sketch gebruikt variabelen, loops en willekeur, het resultaat ziet er altijd anders uit en je hebt leesbare code geschreven |
| 8 | sketch gebruikt variabelen, loops en willekeur, je vorm- en kleurgebruik leveren aantrekkelijke, wisselende composities op en je hebt goed leesbare, gestructureerde code geschreven |
| 9 | sketch maakt gebruik van variabelen, loops, willekeur, arrays, evt. een if statement, vorm- en kleurgebruik en positionering van elementen tonen aantrekkelijke, verrassende composities en je code is goed gestructureerd en efficiënt |
| 10 | sketch maakt gebruik van variabelen, loops, willekeur, arrays, if statements, vorm- en kleurgebruik en positionering van elementen tonen aantrekkelijke, verrassende composities en je code is perfect gestructureerd, optimaal efficiënt en overdraagbaar |
Hoe moeilijker je code is, maar ook hoe creatiever, hoe hoger je cijfer. Programmeren is veel oefenen, uitproberen, goed nadenken en af en toe even loslaten. Je kunt altijd info opzoeken op de referentiepagina van p5.js. Ook mag je gebruik maken van eerder gemaakte sketches, voorbeelden uit de lessen en de voorbeelden op de p5.js examples pagina. Je mag stukken code kopiëren en aanpassen of alleen gebruiken voor inspiratie. Creativiteit wordt beloond dus leef je uit.
Inleveren
In het File menu van de webeditor, selecteer je Share. Kies Edit en deel de link met je docent.