Abracadobbelstenificeer!

A

Jaren geleden, toen ik nog geen Python schreef maar het wel graag wilde leren, liet een collega eens een foto zien: een huiskamer met aan de wand een foto, die helemaal was opgebouwd uit dobbelstenen. Een beetje zoals in dit filmpje:

Dat is natuurlijk episch. Wie zoekt op ‘dice art’, vindt veel meer voorbeelden van mensen die duizenden dobbelstenen naast elkaar hebben gelegd om een plaatje te maken.

Ik vroeg me af hoe je een afbeelding ‘dobbelstenificeert’. Als je zo’n kunstwerkje wilt maken, hoe weet je dan hoe je de dobbelstenen moet neerleggen? Voor een mens lijkt me dit erg moeilijk, maar een computer moet dit kunnen. Aangezien ik toch de basis van Python wilde leren, zag ik mijn kans schoon…

Het is niet zo moeilijk om een programmaatje te schrijven dat van een bestaande afbeelding een versie in dobbelstenen maakt. Ik heb de Python Image Library (PIL) gebruikt om afbeeldingen in te lezen en nieuwe afbeeldingen in dobbelstenen op te bouwen.

Bij het proces van dobbelstenificatie heb je verschillende keuzes: welke lichtsterktes vertaal je in welke dobbelsteen? Draai je de dobbelstenen 2, 4 en 6 een kwartslag als dat beter uitkomt in de afbeelding, en hoe bepaal je of dat beter uitkomt? Pas je dithering toe of niet? En hoeveel dobbelstenen wil je eigenlijk gebruiken? In de voorbeelden hieronder heb ik het simpel aangepakt: de lichtste pixel geeft een dobbelsteen op een, de donkerste een dobbelsteen op zes. De rest zit ertussenin. Gelijke dobbelstenen hebben dezelfde oriëntatie en ik heb geen dithering toegepast.

Het origineel: een rode appel.
De appel in 30×30 dobbelstenen.
De appel in 50×50 dobbelstenen.

Zoals je kunt zien, kun je een appel herkenbaar weergeven in een raster van 30 bij 30 dobbelstenen. Door de oriëntatie van de drie is zelfs het steeltje duidelijk zichtbaar. Wanneer je een raster van 50 bij 50 dobbelstenen gebruikt, zie je duidelijk meer detail en de lijnen wordt vloeiender. Dat kost wel veel meer dobbelstenen, 2.500 in plaats van 900. Bijna drie keer zoveel!

Om complexere vormen herkenbaar te laten zijn, heb je al gauw heel veel dobbelstenen nodig. Ik heb hieronder een afbeelding van twee dobbelstenen gedobbelstenificeerd. De versie van 30 bij 30 dobbelstenen wordt erg rommelig op plekken waar het origineel veel details heeft, zoals waar de ogen van de vier en vijf dicht bij elkaar staan. De afbeelding van 50 bij 50 dobbelstenen is een stuk rustiger om naar te kijken. Om zo’n afbeelding met dobbelstenen na te maken, kost wel veel meer werk en dobbelstenen.

Twee dobbelstenen (bron: Steaphan Greene)
De twee dobbelstenen in 30×30 dobbelstenen.
De twee dobbelstenen in 50×50 dobbelstenen.

Over kosten gesproken: wat kost het eigenlijk om zo’n kunstwerk van dobbelstenen te maken? Een korte zoektocht op Alibaba geeft een groothandelsprijs van ongeveer € 0,10 voor een standaarddobbelsteen van 16x16x16 mm. Met een volumeprijs van € 25 / liter zijn dobbelstenen dus een stuk duurder dan melk en de meeste houtsoorten, goedkoper dan koper en vergelijkbaar met garnalen. Maar waarom zou je dat willen weten?

Stel dat we de afbeelding van twee dobbelstenen in 50×50 = 2.500 dobbelstenen na zouden willen maken, zijn we ongeveer € 250 kwijt aan dobbelstenen. Tenzij je exotische houtsoorten gebruikt voor het frame of whisky drinkt tijdens het dobbelsteenleggen, zijn dit de belangrijkste kosten. In ruil daarvoor krijg je, na wat uurtjes werk, een afbeelding van 80×80 cm aan de muur te hangen. Met een prijs van € 390 / m2 is je kunstwerk per oppervlakte-eenheid ongeveer even duur als bladgoud.

Goud is waardevast, maar dobbelstenen isoleren beter. Als je je kunstwerk, nadat je het eindelijk hebt afgemaakt, aan een buitenmuur hangt, zorgt het voor extra isolatie. Veel dobbelstenen zijn van acryl. Acryl isoleert beter dan glas, maar slechter dan hout. Stel dat de dobbelstenen het warmteverlies door 0,64 m2 gevel doen afnemen van 0,5 W/m2.K naar 0,45 W/m2.K, dan scheelt dat zo’n 5 kWh aan warmte in het jaar. Dit komt overeen met een halve kuub gas. Voor een gebruiker met een ongunstig energiecontract kan het dobbelstenenkunstwerk jaarlijks € 1,50 opleveren. Dit geeft het kunstwerk een terugverdientijd van 167 jaar. Als je een warmtepomp hebt, en dus goedkoper aan je warmte komt, is de terugverdientijd langer: zo’n 250 jaar.

Voor het geld hoef je het niet te doen, maar afbeeldingen maken van dobbelstenen is best wel cool, of het nou virtueel is of in het echt. Dit projectje gaf mij een leuke reden om te beginnen met Python. Het script werkt nog steeds: als je een afbeelding verdobbelsteend wilt hebben, stuur je ‘m maar op. De resultaten voor de appel en de twee dobbelstenen vind je al op deze pagina. Maar als je graag twee dobbelstenen aan je muur wilt, zou ik toch iets anders adviseren…

Reageer

Over mij

Ik probeer de wereld, de ander en mezelf te begrijpen. Daarom denk ik met mijn hoofd, voel ik met mijn buik, en schrijf ik op het web.