À?™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™©ªªDD3“™ªªº»ËÌÌÝÝíîîÿÿªªš™¹ÌÌ<33U%¢¶»w™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™©ªªDD3™™ªªº»»ÌœÙÝ™îžÿÿªªš™¹ÌÌ<33TUU23»Ë̈™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™»;U%ˆ™™©ª™»›™™™™™™™ùÿ*"º»YªÊÜÝ3MDU33³ÌÌŒ˜¡ª™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™¹»»U…ˆ™™™™™™™™™™™™™™™™™‘""²»«ªªÝݽDDTf6³DÄŒ˜™ªêñÿ™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™¹»»U…ˆ˜™™™™™™™™™™™™™™™™™™""²»«ªªÝݽDDdffCDDŒÝ©º»ÿ™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™¹Ì¼v‡ˆˆ™™™™™™™™™™™™™™™™™™""23Ë̪»ÛíîDTUfKDDÕÝÝ©ªºû™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™ÉÌÌwwˆ˜™™™™™™™™™™™™™™™™™™)"33Ã̼»»îîNUUewGDÕÝÝ©ªªûÌ™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™ÉÌlww—™™™™™™™™™™™™™™™™™™™™™33Ã̼»»îî¾UUuww´UÕÝËÌÌ™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™ÙÝfww—™™™™™™™™™™™™™™™™™™™™™33Ã̼»»îî¾UUuww[UUíîîªÄÌÌ"™™™™™™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ @DÓÝ+ÌìõÿUPåîî*»ËÌ)"™™™™™™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ @DÔÝÍÌÌÿÿoPåîî²»»œÝ-™™™™™™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ @DÔÝÍÌÌÿÿo°fæ.ÿ¿»ÔÝÝ™™™™™™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ @DÔÝÍÌÌÿÿo`ffõÿÿ»ÌÜÝ™™™™™™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ @DÓÝîÎÜÝÿ`ffõÿÿËÌÌÝ ™™™™™™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ ™UåîîÝÝffõÿÿÂÌÌM™™™™™™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ YUUîîÝÝivwÿ/ÂÌÌä™™™™™™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ YUUîîÝݹwwWÌLä™™™™™™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ YUUî.ÒÝU¹wwW!ÒÝ™™™™™™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ ™U53óÿ"î^»wwW!ÝÝ ™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ ™™™™ ™™f6ÿÿïîîЪzwU™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ ™™™™ ™iffÿÿïîî ªª»ˆP™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ ™™™™ ™iffÿÿïîî ªª‹ˆP™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ ™™™™ ™iffóÿ"î^ ªª‹ˆP™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ ™™™™ ™™f63#"òÿЪº‹ˆP™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ ™™™™ ™™™w7!ÿÿÐÝ»»ˆP™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ ™™™™ ™™ywwÿÿ½»»› `f™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ ™™™™ ™™ywwÿÿ½»»™ `f™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ ™™™™ ™™ywwòÿ½»»™ `f™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ ™™™™ ™™™w7!"RÐÝ»»™ `f™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ ™™™™™™™™™ PED»«ªÝÝ»› ™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ ™™™™™™™™™ DD´ªªÚÍÌ» ™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ ™™™™™™™™™ DD´ªªÚÌ̼ ™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ ™™™™™™™™™ DD´ªªÚÌ̬ ™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ ™™™™™™™™™ PED»«ªÝÌ̬ ™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ ™™™™™™™™™ PUUµ»ÝÝÍÌ« ™™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ ™™™™™™™™™ UUU»»ÝÝÝ» Й™™™™™™™™™™™™™™™™™ ™™™™™™™™™ ™™™™™™™™™ UUU»»ÛÝݽ ÐÝ™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ ™™™™™™™™™ UUU»»ÛÝݽ ÐÝ™™™™™™™™™™™™™™™™™™ ™™™™™™™™™ ™™™™™™™™™ PUUµ»»ÛÝݽ ™™™™™™™™™ ™™™™™™™™™™™™™™™™™™™ 3#""UUµ»»»ÝÝÝ»»»[UU™™™™™™™™™ ™™™™™™™™™™™™™™™™™™™ 0CD"3Sef»ÌÜÝÝ»»»»UUU™™™™™™™™™ ™™™™™™™™™™™™™™™™™™™  DD433ffÆÌÌÝî¾»Ì\UUU™™™™™™™™™ ™™™™™™™™™™™™™™™™™™™  DD433ffÆÌÌíîîËÌÌUf&™™™™™™™™™ ™™™™™™™™™™™™™™™™™™™  DD433ffÆÌÌíîîËÌÌeff™™™™™™™™™ ™™™™™™™™™™™™™™™™™™™ 0CD"3Sef»ÌÜíîîËÌÌeff™™™™™™™™™ ™™™™™™™™™™™™™™™™™™™ PU"DTuw»ÛÝÝÝî¾»Ì\eff™™™™™™™™™ ™™™™™™™™™™™™™™™™™™™ PUEDDww·ÝÝÝýÿ»Ý]UUf&™™™™™™™™™ ™™™™™™™™™™™™™™™™™™™ PUEDDww·ÝÝÝÿÿßÝÝUw'"™™™™™™™™™ ™™™™™™™™™™™™™™™™™™™ PUEDDww·ÝÝÝÿÿßÝÝuww"±»™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™¹»SU"DTuw»ÛÝÝÿÿßÝÝuwwBDDDD”™©ªª»»›™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™ÉÌcf"UU…ˆ»ëîÝÝýÿ»Ý]uwwBDDDf–™™ª»»›™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™ÌÌlfVUUˆˆ¸îîÞ±»î^UUw'BDDdff™»»»›™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™ÌÌlfVUUˆˆ¸îîëîîUˆ(""DDdff¹»»±»™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™ÌÌlfVUUˆˆ¸îîëîî…ˆˆ"UEDdff¹»»™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™ÉÌgffU•‰ˆ»ëîëîî…ˆˆRUUDDf–¹»»ªš™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™Ý}wwff–™™ûÿÝ-"±»î^…ˆˆRUUDw—™™»¡ªª™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™ÙÝÝwwff–™™ÿÿß""²ûÿUUUˆ(RUUtww™Ì¡ªª™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™ÙÝÝwwff–™™ÿÿß""²ÿÿ_•™"""UEtwwÉÌÌ¡ªª™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™ÙÝÝwwbfU™¹ÿÿß""²ÿÿ_™™)bfDDtwwÉÌÌªš™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™îŽÝwwWªº»ñÿ3-"»ÿÿ_™™)ffF„ˆw—ÉÌÌ‘™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™éîww§ªª33³õÿU™™)ffFˆˆ˜ÙÝÌ™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™éîww§ªª33³Q¥ª’™"ffFˆˆ˜ÝÝ‘™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™ùÿéîîˆ(rw«ªª33³Qªª*rwdfDˆˆ˜ÝÝ‘™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™ÿÿŸîžˆˆµ»»ª*ÝA=3»Qªª*wwG”™„ˆ™ÝÝ‘™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™ÿÿŸ™™ˆˆµ»»""ÒDD´+"Uªª*wwG™™™™™ÙÝ™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™ÿÿŸ™™ˆˆµ»»""ÒDD´""Rµ»¢ª"wwG™™™éî‘™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™‘úÿ’™YˆX»»»""ÒDD´""R»»+‚ˆtwD™™™î™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™ªª™™ÉÌÌ;33-"UKD»""R»»+ˆˆHªJ™™™î˜™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™ªª™™ÉÌÌ;33]UU33S%"U»»+ˆˆ¨ªª™ÿŸî˜™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™"’ªª™™ÉÌÌ;33]UU33SÌÌ,²»"ˆˆ¨ªªùÿÿá˜™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™)""»¡ªª™MÌLm3c»Uµ33SÌÌ,™™I„ˆ¤ªªùÿÿˆ™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™3“)""»»«ªªÝÝMDDmffKDD53]ÌÌ,™™I»»›ªšùÿÿqw™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™933)""»»«ªªÝÝMDDmffKDDÕÝÝÂÌ*™™I»»›ÿww—™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™933Ì"²»»îªZÕÝ}Dt»f¶KDDÕÝÝ¢ªª”™L»»›™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™D”933Ì̼»»îî@TÕÝÝ¢ªªÄÌ̹»™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™™IDDÝ3ÃÌÌÿ»kæîàî"Ý-¢ªªÄÌÌ™"’™™™™™™™™™™™™™™™™™™™™™™™™™™™™YU™IDDÝÝÌÌüÿÿkffàî²»»DªJÄÌÌ)""™™™™™™™™™™™™™™™™™™™™™™™™™™™™UU•NDDÝÝÁÌ÷ÿÿmffàî²»»ÔÝݙ̜)""™™™™™™™™™™™™™™™™™™™™™™™™™if™UUåîDÔÝwÿß™f¶à.´»»ÔÝÝ933!""™™™™™™™™™™™™™™™™™™™™™™™™™fföUUåîîÝÝww×™™¹ÀLî»KÙÝÝ933"™™™™™™™™™™™™™™™™™™™™™™Ìœ™ffö_Uîî.Ò݈¡zw‹™™¹ÀLîîžIÝ933™™™™™™™™™™™™™™™™™™ÙÝ™ÉÌÌffföÿïîî""‚ˆˆ­ªª‹˜™%ÀOîîžDD3™™™™™™™™™™™™™™™™™™ÝÝÉÌÌfffõÿˆîî."ˆ¸îªº…ˆˆ%ðŸéî™DD™™™™™™™™™™™™™™™éî™ÝÝ}ÇÌÌf–YUÿˆØâîî±îî^ˆˆX"ðŸUUDDQUU™ ™™™™ îîžÝÝ}wÌl_îîQUU™ ™™™™ îîŽØÝww§jðÿ_éî U•™ ™™™™ îxwwªª ðÿ_™™ AD™ ™™™™ é»w·¢ªðÿr™™ DD” ™™™™™‰ˆˆ»»Û"" ªr—™DD” ™™"’™ÉˆÈ³»Ó%" ŠrwwDD” ™)""™ÍÌÌ33cUU€ˆ¤w§AD“ 03)"" ÐÝMÌL=3f[U€ˆ¤ªª 133 03#"" ÐÝEDDgffKD€¸«ªª 133 03Ó" PU…Dt·fVED°»›ª ™™DD43ÓÌÌ PU…xwgUUUD°»›ñÿÿ™UED43ÝÍÌ PUˆxwfVUõî°»™ÿ`fUUDäÝÝÍÌ™ˆxffVUÿï "`fVUDîîÝ-"™ˆwgfÿÿï "pfVUÿîîÝ""™ˆwgfñÿß "pgVõÿÿî<#" ‰ˆx'"ñÿÝ "pg*ññÎ<#2 ‰ˆx#"áîÝ p§"‘ñÌD3#  ™ˆ83"îîÞ p™#ˆ±»E""  šˆL3"òïîÞ‰ƒˆ»«E" °šÌK4"ÿî.íîî ª3DÔ!"Ýî® šÿ23ÒÑÝñÿ!"þÿáîÿÿññÿððÿðÿñÿÿññÿÿññÿññÿñññÿñÿñÿñÿÿñÿÿÿðÿÿÿðÿñÿñññÿÿñÿñÿÿÿÿññññÿÿñÿñÿÿÿñÿñðÿÿðñðÿÿÿÿÿñÿÿññÿñÿññÿñññññÿÿÿÿÿÿÿÿðÿÿñðñÿÿñÿñññÿññññÿÿÿññññÿÿÿññÿñÿÿñÿÿðÿðÿÿÿÿÿÿñÿñÿÿÿñÿñÿñÿÿñÿñŽ -- title: Lovebyte Reminder -- author: jtruk -- desc: A 1hr livecoded knockabout -- script: lua -- Greetz: Violet, Vurpo, Polynomial -- Aldroid, Mantratronic, Catnip -- My lovely cute new keyboard -- and the Bytejam chat crew! :) DO_TEETH=false local S,C,PI=math.sin,math.cos,math.pi local ABS=math.abs local T=0 local TAU=PI*2 local RIPPLE=0 local YTEETH=0 function BDR(y) ripple=0 rippleD=ABS(y-RIPPLE) if rippleD<32 then ripple=1-(rippleD/32) end vbank(0) for i=1,15 do local r=127+S(i*.1)*127 local c=ripple*255 setRGB(i,r-c,c,c/3) end poke(0x3FF9,S(ripple*PI)*8) vbank(1) for i=1,14 do local g=127+S(i*.1-y*.017-T*.12)*127 local b=127+S(i*.1+y*.02+T*.08)*127 setRGB(i+1,0,g,b) end poke(0x3FF9,S(ripple*PI)*-8) end function BOOT() vbank(0) setRGB(0,0,0,0) vbank(1) setRGB(1,0,0,0) end function setRGB(i,r,g,b) local a=16320+i*3 poke(a,r) poke(a+1,g) poke(a+2,b) end function TIC() RIPPLE=-T%260 vbank(0) cls() ps=getPoints(100,T*.01) for i=0,10 do local sh=i*.1 local x=120+S(T*.08+sh)*60 local y=68+S(T*.06+sh)*20 local sc=60+S(T*.06+1-sh)*30 local cSh=S(T*.1+i) -- drawPoints(ps,x,y,sc,cSh) drawTris(ps,x,y,sc,8) drawPoints(ps,x,y,sc,cSh) end vbank(1) cls(1) for i=0,10 do local sh=i*.1 local x=120+S(T*.03-sh)*60 local y=68-S(T*.04-sh)*20 local sc=60+S(T*.1)*40 local c=8+S(T*.1+i)*6 ps1=rotAllZ(ps,S(T*.02)*TAU) drawTris(ps1,x,y,sc,c) drawPoints(ps1,x,y,sc,c) end local x=5+S(T*.1)*20 local y=8+S(T*.08)*10 print("Love",x,y,0,false,10) local x=5+S(T*.07)*20 local y=68+S(T*.09)*10 print("Byte",x,y,0,false,10) if DO_TEETH then local y=ABS(S(T*.1))*30 for x=0,240,50 do rect(x,0,40,y,15) rect(x,136-y,40,y,15) end rect(0,0,240,y-20,10) rect(0,156-y,240,y,10) end local x=30 local y=130-ABS(S(T*.1))*10 text="This weekend, folks (9-11 Feb 24) :)" print(text,x+1,y+1,1) print(text,x,y,15) T=T+1 end function getPoints(nps,aShift) -- Gonna steal some <3 math local p={} for i=0,nps do local a=i/nps*TAU+aShift p[i+1]={ x=(16*S(a)^3)/16, y=-(13*C(a)-5*C(2*a)-2*C(3*a)-C(4*a))/16-.2, } end return p end function drawPoints(ps,xc,yc,sc,cSh) for i,p in ipairs(ps) do local x=xc+p.x*sc local y=yc+p.y*sc local c=1+(i+cSh)%15 circ(x,y,2,c) end end function drawTris(ps,xc,yc,sc,c) local lastX,lastY for i,p in ipairs(ps) do local x=xc+p.x*sc local y=yc+p.y*sc if i>1 then tri(xc,yc,x,y,lastX,lastY,c) end lastX,lastY=x,y end end function rotAllZ(ps,a) local newPs={} for i,p in ipairs(ps) do newPs[i]=rotZ(p,a) end return newPs end function rotZ(p,a) return { x=p.x*C(a)-p.y*S(a), y=p.x*S(a)+p.y*C(a), } end