-- Code originally by Luiz Henrique de Figueiredo
-- At http://lua-users.org/lists/lua-l/2010-10/msg00754.html
-- Ported to lua-xpm by Matthew Wild
local xpm = require "xpm";
local N=255
local pic = xpm.new(N,N);
for i=1,N do
local y=2-4*(i-1)/(N-1)
for j=1,N do
local x=-2+4*(j-1)/(N-1)
local xc,yc=x,y
local X,Y=0,0
local p=0
for n=1,255 do
X,Y = X^2-Y^2+xc, 2*X*Y+yc
if X^2+Y^2>4 then p=n break end
end
pic:setpixel(j, i, ("#%02x%02x%02x"):format(p,p,p));
end
end
pic:render(io.stdout);