--star crossed
pal({7,135,10,9,137},1)l=line
cls()s=sin
::_::
for i=-1,1,2do
for k=1,4do
l()
c=s(t()/10)*63*i
r=s(t()/10)*63
l(63+c,63+r)
d=1
while d<160do
a=t()/10+k/4
n=1+(s(a*2)+cos(s(a/4))+s(a*3.1))/3
d+=9*n
l(63+c+cos(a)*d,63+r+s(a)*d,1+d/3%5)
end
end
end
goto _
--

pal({2,136,8,14,137},1)
cls()
r=rnd
::_::
for d=1,10do
f=(d*11+t()*11)%110
a=t()/5
circ(63+cos(a)*f,63+sin(a)*f,min(f,4),1+d%5)
end
a=t()/30
for i=0,999do
x=r(128)y=r(128)c=pget(x-x%x,y-y%y)d=r(6)
if(c>0)pset(x+sin(a)*d,y+cos(a)*d,c)
end
flip()goto _
--

Here is a non tweet-length version that shows a green line traversing the labyrinth.

It touches all parts of the maze, which is so cool!

The thread I linked to in my previous post is really great.

Show thread

v=line::_::cls(0)s=0for r=0,30 do
l=0for c=0,30 do
if s>rnd()or c>29then
y=r*4+1x=l*4+1b=(c+1)*4+1rect(x,y,b,y+4,7)v(x+2,y+2,b-2,y+2,7)n=flr(l+rnd(c-l))x=n*4+1v(x+1,y,x+3,y,0)v(x+2,y-2,x+2,y+2,7)l=c+1flip()end
end
s=.5end
for i=0,60do
flip()end
goto _--

The labyrinths drawn by this cart are fully traversable & solvable!

Its a condensed version of the technique really brilliantly shown in this thread.

twitter.com/aemkei/status/1388

One more in this series because I'm enjoying it.

Loping Lines #3
9" x 12"
Micron on Bristol

As always, this drawing and others are available at shop.andymakes.com/

Two new drawings: Loping Lines #1 & #2
9" x 12"
Micron on Bristol

I've been sketching with the code while away on work and finally had a chance to plot them.

These drawings and others available at shop.andymakes.com/

I totally forgot that there's a web editor for p5js!

You can run and modify this code here: editor.p5js.org/AndyMakes/sket

Just click the play button to see it in its pure form.

Show thread

Non-looping version. This one will go forever, but it does not create a nice looping gif.

t=0
draw=_=>{createCanvas(w=400,w)
t+=0.006
for(y=0;y<41;y++)for(x=0;x<41;x++)text(String.fromCodePoint(floor(9472+(noise(50-x*.02,y*.02,t)+noise(t*1.1,x*.1,y*.1))*140)),x*10,y*10);}
//#p5t

Show thread

a=0
draw=_=>{createCanvas(w=400,w)
a+=TAU/200
c=1+cos(a)/2
s=1+sin(a)/2
for(y=0;y<41;y++)for(x=0;x<41;x++)text(String.fromCodePoint(floor(9472+(noise(50-x*.1,y*.1+s,c)+noise(x*.1+c,y*.1,s))*140)),x*10,y*10);}
//#p5t

Sunburn

pal({9,14},1)
::☀️::
cls(1)
c=t()/3
for d=5,1,-1 do
for l=0,4 do
z=3+l*5
for i=0,z do
a=c+i/z
if(l%2<1)a*=-1;
r=l*20
s=d^1.2*(1.3+sin(c*2+i/z))+l*2
circfill(64+cos(a)*r,64+sin(a)*r,s,1+(d+l)%2)
end
end
end
flip()goto ☀️

Sunburn

pal({9,14},1)
::☀️::
cls(1)
c=t()/3
for d=5,1,-1 do
for l=0,4 do
z=3+l*5
for i=0,z do
a=c+i/z
if(l%2<1)a*=-1;
r=l*20
s=d^1.2*(1.3+sin(c*2+i/z))+l*2
circfill(64+cos(a)*r,64+sin(a)*r,s,1+(d+l)%2)
end
end
end
flip()goto ☀️

Rejected by the cold earth and unable to die, the necromancer's refuse came back writhing, crawling, and angry.



pal({3,2,8})t=0s=128o=ovalfill
f=fillp
cls()r=rnd::_::u=sin(t)*2t+=.01f()for x=0,s do
for y=0,s do
if(pget(x,y)>0and r(9)<2)pset(x-1+r(3),y-1+r(3),max(3-r(5)))
end
end
p={⧗,░,░,▤}f(p[flr(3+u)])for c=42,84,42do
h=u+4o(c-9,32-h,c+9,32+h,3)end
h*=2o(44,75-h,84,75+h)flip()goto _

// 170 char looping animation.
//

t=0
draw=_=>{t+=.04
createCanvas(w=300,w)
fill(0)
for(c=3,s=10;c<28;c++)for (r=3;r<28;r++)rect(c*s,r*s,p=s*sin(random(PI)+t),p,randomSeed(99+(c+r*30)*(200+sin(t/4)*10)))}

If you are curious about how this code works, I wrote a highly commented version of it here: gist.github.com/andymasteroffi

The actual code is identical, but I broke it up with whitespace, line breaks a ton of comments describing what each part does

(it also probably has a lot of typos)

Show thread

if(k==1 and sqrt((x-a[3])^2+(y-a[5])^2)<s+a[1])g=1
if(b(64-x)>66or 66<b(64-y))g=1end
end
flip()goto _

Show thread

t=0g=0r=rnd
w=128b=abs
o=circ::_::if g>0then
pal({5,2},1)print("score:"..t,9,9,7)
if(btn(5))t,g=0,0
else
if(t<1)a={9,9,88,0,40,0,0,0,0,0,40,0,88}
i=btn()pal({7,8},1)t+=1
for k=0,200do
o(r(w),r(w),5,0)end
for k=0,10do
s=2^k
l=s*2
a[k+3]+=band(i,l)/l-band(i,s)/s
end
for k=0,1do
x=a[3+k*8]y=a[5+k*8]s=a[k+1]o(x,y,s,1+k)o(x,y,s+2,1+k)
for c=0,w do
srand(c+t)if r(8)<1then
p=1+flr(r(2))z=r(w)o(c,z,4,p)
if(sqrt((x-c)^2+(y-z)^2)<s)a[k+1]+=b(1+k-p)/5-.01end
end

Show thread

Hand Cram!
A game that fits into just 2 tweets (560 chars). It *almost* fits in a single toot.

Arrows control white, ESDF controls red.
If the two circles touch, you lose.
Hitting opposite color dots grows the circle

Src in replies

Play it here: andymakes.itch.io/hand-cram

What's your high score?

pal({14,7,11,7},1)
::🔀::
cls()
for d=1,4 do
camera(d-64,d-64)
for y=-74,74,10 do
for x=-74,74,10 do
o=.25
if(d>2)o=.2
a=mid(-.25,sin(t()*o+(sqrt(x*x+y*y))*.005),0.5)
line(x,y,x+sin(a)*10,y+cos(a)*10, d)
end
end
end
flip()goto 🔀

(forgot to post this one yesterday)

t=0pal({1,131,135,10,9,137},1)r=rnd::_::cls()t+=1camera(-64,-64)for z=5,99 do
srand(z-t)if r(2)<1then
d=z*.8s=flr(r(9))/9+t/300c=1+flr(r(3))*2+s%1*2for p=0,1,1/z do
a=s-p*.1line(cos(a)*d,sin(a)*d,cos(a)*z,sin(a)*z,c)end
end
if(r(9)<1)circ(0,0,z*1.3)end
flip()goto _--

Back in my art school days I used to ride the 710 COPSA line from Parque Del Plata to Montevideo almost everyday.
I did a ton of drawing while riding buses since my round trip commute was around 3-4 hours.
This is the Marcopolo Viaggio G4 Mercedes Benz model from the late 80s, one of the older bus models that was running on the line.

Show older
Mastodon.ART

Mastodon.ART — Your friendly creative home on the Fediverse! Interact with friends and discover new ones, all on a platform that is community-owned and ad-free. Admin: @Curator. Moderators: @EmergencyBattle, @ScribbleAddict, @TapiocaPearl, @Otherbuttons, @katwylder