¶-- title: moon river -- author: Gasman / Hooy-program -- desc: a moody scene live-coded in ~1 hour for the Inercia 2022 byte jam -- script: lua -- ok, so the literate programming -- thing seemed to work last time, -- so let's try that again shall we -- ok, 10 minutes for... something? -- stars I guess m=math s=m.sin cls() -- what if we make them twinkle starx={} stary={} for i=0,32 do starx[i]=m.random(240) stary[i]=m.random(68) end function SCN(y) if y<68 then -- yeah, let's go with that poke(16321+15*3,y*3) poke(16322+15*3,y*3) else for i=0,48 do v=i/48 if i%3==0 then poke(16320+i,(v*v)*255) elseif i%3==1 then poke(16320+i,(v*v)*255) else poke(16320+i,v*192+(y-68)) end poke(16321+15*3,68*3) poke(16322+15*3,68*3) end end end function TIC() t=time() -- ok, midnight blue-y gradient palette for i=0,48 do -- I guess I want a gradient from -- black to white, but with the blue -- increasing on a steeper gradient? v=i/48 -- FINALLY if i%3==0 then poke(16320+i,(v*v)*255) elseif i%3==1 then poke(16320+i,(v*v)*255) else poke(16320+i,v*255) end end for i=0,32 do pix(starx[i],stary[i],8+((t*0.01+i)%8)) end circ(120,68,30,15) -- right, I want a sort of water wave -- effect, so let's try a sine plasma -- as a first pass for y=68,136 do for x=0,240 do -- let's try and do a perspective -- projection on this -- sort of there...? let's move on pz=(y-68) py=-y*20/(2+pz*0.1) px=(x-120)/(pz*0.01) -- right, I want the water to be -- a reflection of the moon, and -- the wave to serve as an offset -- to which pixel we pick for the -- reflection dx=(1.5*s(px*0.09+t*0.0075) -1.5*s(px*0.095-t*0.007) ) dy=(1.5*s(py*0.2-t*0.01) -1.5*s(py*0.22-t*0.012) ) -- let's add a bit of the greyscale -- as a sort of ambient element amb=dy+dx refl=pix(x+dx*2,68-(y-68)*1.5+dy*2) if refl>14 then refl=14 end pix(x,y,3+amb/12+refl) end end end `áww௰‘›Ç,O3JdáàÊÌC;#XÀ?fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff¦fffffffffff&ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff&ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff&fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffÆfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff&ffffffffffffffffffffffffffffffffffffffffffffffffjffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffflffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff&fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffÆffffffffffffffff&ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff`fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff&ffffffffffffffffffffffffffffffffffffff`ffffffffffffffjfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ™ ™ ™ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ™ ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff ™ ™ ™ ™™`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbfffffffffffffffffffffffffffffffff–™™™ ™ ™ ™™™ ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff™™™™™™™™™™™™™™`ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff–™™™ ™™™ ™™™™™™™™™™ ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff™™™™™™™™™™™™™™™™™™™™™™iffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff–™™™™™™™™™™™™™™™™™™™™™™ fffffffffffffffffffffffffffffffffff&ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff™™‘™‘™™™‘™™™™™™‘ifffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff&ffffffffffff–™‘‘™‘™™‘‘™‘™™™ffffffff¦fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff–‘™‘‘‘ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff‘™‘‘™ifffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffjffffffffffffffffffffffffffffff–‘‘‘‘‘‘ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff¦fffffffffff‘‘‘‘‘‘‘‘ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff‘‘‘‘ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff‘‘‘‘‘ifffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffff&ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff¡¡¡¡¡¡¡¡¡¡ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffflffffffffffffffffffffffffffffffª¡ª¡¡¡¡ª¡ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffªª¡ª¡ª¡¡ª¡¡¡¡¡¡¡¡¡¡¡afffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffff¡¡ªª¡ª¡ª¡ª¡¡ª¡¡ª¡ªª¡ª¡¡jfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff¡ªª¡ª¡ª¡ª¡ªª¡ª¡ª¡ª¡ªªªªªafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffjfffffffffffffffª¡ªªªªªªª¡ªªªª¡¡ª¡ªªªªªªªªªjffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffffffffffffffffffffffffffffffªªªªªªªªªªªªªªªªªªªªªªªªªªªªaffffffffffffffffffffffffjfffffffffffffffffff¡ªªª¡ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª¡ªª¡ªªªªªªªªªªªªªªªªªªoomÿooooooföffoooööööfföööÖÖßöfööööfoooföffojjªªªªªªªªªªªªªªªªªªªªªªªªªªªªªjúúöfooomfffoooooffooomfßÿÿffföööööfföööööfoýÝ3õ3Ý5ÝU]SSSS]ÓSÓ]Õ5Õ5555=3=S=£]Ó]Õ55Õ5Õ5Ý5ýª¯ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªúª==S]S_S]SSSÓUÓ5Õ5Ý5=3333=Õ]Ó]Õ5Õ5555Õ5=5]3=_?==?ÝõóÓÓóÓÓóõÓÓóÓóÓÓóÓ=ÝÓÓóÓÓÓÓóÓóÓóÓóÓÓÓ=¯¦¦ªªªªªªªªªªªªªªªªªªªªªªªªªªªÚ::_?ýÓ?=?===_?_?==_===]=ÝÓÝÓÓÓó3=?==?=?_?=?ÝÓÓ=ÝÓÓ=ÝÓÝÝÝÝÝÝÝÝÝÕ=ÝõÕ]ÝÓÓ=ÝÕ=]ÝÓ]ßÝÝÝÝÝÝÕó­Ýúª¦ªªªªªªªªªªªªªªªªªªªªªªªªªª¯:Ú£Ó]ÝÕÝ]ßÝÝÝÝÝÝÓ=ÝÓÓ=ÝÓ3=ÝÓ=]Ýõ=óÝÝÝÝÝÝÝÝ]ÝÓSS355SSSS=Õ3ÕS=Õ3ÓS=5=ÓS=5S3SS3SSSS555ÕSÓ3]ڣ󪦪ªªªªªªªªªªªªªªªªªªªªªªªªª3ª£:Õ3=5]ÓSÓ5]S35555S353333ÕS=S_Ó5]S=ÕSÕS=Õ3ÓÓÝ]Ó]3]ÓÝÕÝÕ=ÓÝÕÝÕ=ÕÝÝÝÓÝÝÝÝÝÝÝÝÝÝ­Ý]Ú]Ý]Ý]Ý]ݣߪjªªªªªªªªªªªªªªªªªªªªªªªª¯úÕÚÕÝÕóÕÝUÝUÝ5Ý]Ý]ÝÝÝ=ÝÝÝÝÓÝÝ=ÝÝ=?ÝÝ=ÝÝÕÝÕÝÕÓÕÓUÕ]U]UÕUÕ]U]UUUU5UUUUUUUUUÕUUSUÕUÕ]UÝU5UÕ]:ÓªÚ¦ªªªªªªªªªªªªªªªªªªªªªªªªªªªUªUÕ]UÓ5ÕUÕ]UÓUÕ]USUÕUÕSU]UUUUUUUUUUUUUUÕUU]5=UÕSS=55=UÕSUSSS5ÕSUÝUÕÓUÕSU=]U=UÕÓU=]5=UÕÓUÕ]ªóªªªªªªªªªªªªªªªªªªªªªªªªªªSÕÚU5SU=]UÝUÕÓU=]UÝUÓÓUÕ]U=]5=UÕÝUÕ]UÝU55UUSÓU=Ó3Ó3Ó3=Ó33======ÓÓ=ÓÓÓÜ3Ó533Õ=ÓU33U3Ó\ÓÓÅÓÓS33ªú¦ªªªªªªªªªªªªªªªªªªªªªªªÝÓ3ÓÓÓ]Ó3S33]5ÓS5ÓS5=S53Ã53ÓÜ3ÓÕ33Õ3==ÓÓÓ3===33\ÅUUUUUUUUUU\\\\ÅUÅ\ÅÅUUUÅUUUÅUUUUUUUÅUU\UU\U¥ª:¥ªªªªªªªªªªªªªªªªªªªªªªªªªZUUUÅUÅUUUU\UU\ZÅZU¥UUU]UU\UUUU\UÅU\\UUUU\\\UU==33Ó33333353=]Ü3=S5ÓÓ\3ÓS\33]<3ÓÅ5=3Å==S5Ó3S5=ÓªÚoªªªªªªªªªªªªªªªªªªªªªÝ333333Ó5ÓÓ3Ü33S53=U33Ó\33S<33S53ÓU3=ÓU33Ã5==Í=S53S333Ã533ÃÕ33Ã533Ã533S\33ÍU33S\33Ã\333Ì=35U333¥Ó=£ªªªªªªªªªªªªªªªªªªªªª=333335333<33SU3=SÅ333Å333U=33ÌÜ3S\<33Ì533\<33Ã5ÌÅÌÌÌÌÅÌ\\ÌÌÅ̬ÌÌÊÅÅÌÌÍÌÅÌÜÌÌÅÌÍÌ\\ÌÅÅ\ÅÌÌ\Ì\Uªª¥ªªªªªªªªªªªªªªªªªªªªªªªªªUÌ\ÌÅÌÅÅÌÅÅÌÌÅ\\ÅÅÅÅ\\\ÌÌÅÅ\Å<ÅÅÅÅÃ\ÌÌÜ\ÌÅÌÌÅÌ5ÃÅÅ=3ÃÅ533ÌÌÕ33\Ì33SÌÌ33SÌ<35\Ì533\\3SÃ\\33Å\USS¥ªªªªªªªªªªªªªªªªªªªªúU