Agenten en groei
Elk kent alleen zijn omgeving. De vorm komt voort uit hun aantal.
De regel
Een agent ziet het doek niet: hij kent alleen wat vlak voor hem ligt. In het physarum-netwerk leest hij het spoor van de anderen op drie plaatsen, links, vooruit en rechts. Hij draait naar de sterkste kant, zet een stap en legt dan zijn eigen spoor neer. Bij elke stap vervaagt het spoor van iedereen een beetje.
richting ← richting ± draaihoek, dan x ← x + stap · cos(richting), y ← y + stap · sin(richting), dan spoor ← spoor · afname
Niemand tekent het netwerk. De agenten volgen elkaar omdat ze het spoor van de anderen voelen, en dat spoor vervaagt snel, behalve waar velen langskomen. Drukke paden worden sterker, de rest verdwijnt: de vorm komt voort uit het aantal agenten en de hoek van hun sensoren.
Hetzelfde idee van een lokale regel geldt voor de Voronoi-betegeling: elk vakje van het doek neemt de dichtstbijzijnde kiem, meer niet. Verplaats of voeg een kiem toe, en alle grenzen worden opnieuw getekend.
Aan u
De eerste schets laat agenten los op een raster dat op zichzelf sluit: wat rechts verdwijnt, komt links weer binnen. Als u hun aantal verandert, begint alles opnieuw, de sensorhoek kunt u onderweg bijstellen. “Afspelen” zet één stap per beeld, “Tien stappen” zet er in één keer tien. In de tweede plaatst een klik of tik een kiem, of gebruikt u de twee positieschuiven en “Toevoegen”. “Verwijderen” haalt de laatste kiem weg, “Wissen” alle.
De tekening hierboven is een didactisch schema, niet het kunstwerk: ze toont de regel, maar geeft de kleuren, de grootte van de punten en de korrel van de afdruk niet weer.
Wat per algoritme verschilt
- Physarum
- Agenten “voelen, draaien, bewegen” en leggen een feromoon neer dat bij elke stap vervaagt, op een raster dat op zichzelf sluit. Er is geen toeval in de lus: de loting plaatst de agenten alleen aan het begin. De video speelt het groeiende netwerk af.
- Prooi & roofdieren
- Twee populaties die op elkaar inwerken: prooien vluchten voor de dichtstbijzijnde jager terwijl ze meedrijven in een ruisveld, jagers achtervolgen de dichtstbijzijnde prooi. Elke stap trekt een lijnstuk. De knopen en achtervolgingsspiralen zouden in een gewoon stromingsveld, waar de deeltjes onafhankelijk zijn, niet bestaan.
- Kristalgroei
- Kiemen op een cirkel, een vertakte dendritische groei en kristalhoeken die naar veelvouden van π/6 worden gebogen. De oorspronkelijke naam, een verhaal over geluid en fonetiek, was fictie: er bestaat nergens geluid in de pijplijn.
- Adernetwerk
- Ruimtekolonisatie, naar Runions en collega's. Elk te bereiken punt stemt op het dichtstbijzijnde knooppunt binnen zijn invloedsstraal, elk knooppunt met stemmen schuift naar het gemiddelde van zijn kiezers, en bereikte punten verdwijnen. De kolonie stopt als niemand meer stemt. De dikte loopt van de bladeren terug naar de wortel: een tak is zo dik als de som van wat hij draagt.
- Voronoi
- Willekeurig gezaaide kiemen, en elke cel neemt de kleur van de dichtstbijzijnde kiem: een glas-in-loodeffect of mozaïek. De afstand is euclidisch of Manhattan. De weergave kan ook alleen de randen houden, of de kiemen trianguleren (Delaunay).
Wat het toeval beslist
Voor elk werk trekt het programma deze instellingen willekeurig, binnen vooraf vastgelegde grenzen.
- Aantal agenten Physarum van 200 tot 900
- Sensorhoek (°) Physarum van 15 tot 60
- Aantal kiemen Voronoi van 8 tot 200
De algoritmes in deze familie
- Physarum
- Prooi & roofdieren
- Kristalgroei
- Adernetwerk
- Voronoi