Aboriginal ArtJuly 10, 2014
Budyari yaguna, Señor William Dawes. In my Australian adventure, I not only came across media about creativity but also creative media, especially of the aboriginal variety. Before getting to that, however, let me give a shout out to the Bhullar brothers, about whom a viral campaign we never did start, for getting a toehold in the NBA.
On the first day of the trip, we saw a traditional aboriginal didgeridoo and dance performance at Currumbin in Queensland. Later in the trip, we saw the aboriginal-inspired contemporary dance production Patyegarang at the Sydney Opera House. Didgeridoo street performers greeted us at Circular Quay before we made our way by ferry to Manly.
Some of the beach-front galleries there were of aboriginal art. I was especially drawn to the works of Tarisse King including her Earth Images. The dot paintings are mesmerizing in a unique way. They are meant to represent a view of the earth from above.
Upon looking at her paintings, I wondered to myself whether something similar could be created using Gaussian processes and morphological image processing. Here is my attempt at computer art via the following Matlab script:
seed = 1234; %random seed n = 50; %grid size r = 10; %repititions per point s = 8; %resize scale for skeleton l = 0.05; %squared exponential kernel parameter rng(seed); %create a grid [X1,X2] = meshgrid(linspace(0,1,n),linspace(0,1,n)); x = [X1(:),X2(:)]; %covariance calculation using squared exponential kernel K = exp(-squareform(pdist(x).^2/(2*l^2))); [V,D]=eig(K); A=V*(D.^(1/2)); %sample from Gaussian process gaussian_process_sample = A*randn(n^2,1); %calculate skeleton of the peaks skeleton = bwmorph(imresize(reshape(real(gaussian_process_sample),n,n),s)>0,'skel',Inf); %plot the painting on a black background using randomly perturbed copies of points from the Gaussian process sample and overlay the skeleton figure; hold on; scatter(repmat(x(:,1),r,1)+randn(r*n^2,1)/100,repmat(x(:,2),r,1)+randn(r*n^2,1)/100,12,repmat(gaussian_process_sample,r,1)+randn(r*n^2,1)/50,'filled'); h = imshow(cat(3,ones(n*s,n*s),ones(n*s,n*s),0.8*ones(n*s,n*s)),'XData',linspace(0,1,n*s),'YData',linspace(0,1,n*s)); set(h,'AlphaData',skeleton); axis on; axis image; whitebg(gcf,'k'); set(gca,'XTick',,'YTick',,'box','on'); colormap([[linspace(0.04,1,24).';ones(40,1)],[zeros(24,1);linspace(0,0.84,40).'],zeros(64,1)]);
What do you think?