?@DD @DD$@D """@D DD BDD@ww` ""DE@DD$DD"" ""DD DDDDD"@ """D@pDD@DD"@DD BDD @DD D www@D DDED@DD@D  @D"DD@D @D"D *DD @D@Dg@D@D ""@"DDD @D D """x @DD$DE@@""" "DDD"@-D "" "@DD Dx@p@!""""@DDDDDD" """"@"@DxDD @DD$E@$""" "@DD@"DDD """"@" @D@D BDDxp'"""@"DDDD@DD$DD  "@DDDDxDD @DD RUEDD$@ @DD"@DD@D"DD""@"DD@D@D$DDww'D@DD"@DDDD@D""̼ DD"DDDDDxDD"" bPUU$DDDDD @DDDD"" .@DD$DD@DD DD """ "@DD DD"DDDD""""@ BDD"DDDD""""bU@ BDD"DDD D""" "@ BDDDDD@""" "@D @DD @DD@"""D @D BDD"@D"""DD`U@D BDD"@"""""DD@D DD"D̻" "DD @D$DD"D@DDD @DD D""@D"@D`U@DD @ 33""!@DD @DDD "@D +DD BDDDD"D""@D"@DD$DD+@D """ DD DD"@`UD """ 303DD"DDD BD@""""@DD"@DD$D( """"@ODD"DDD  ,"" "@ " D@DD BDD"`fU"""" 4D0BDD"DDD B/"""@ @DDDD BDD"(""""@ D@D@DDDD" ,@""@DD@DDDD BDDr`fffVD"DD4@DD0BDD"@DD / "@DD DDD@DD$DD"@ DDDD@DD "" ,@DD$DDDD DD""rwwgf`@DD BD4@DD0DD""  DDD"@DD @DD@DD "" )@DD"DD  """DDD @""""rgDDD B4D3""""$DDD @D@""""@$DDD"@D" ""D@@DDDD " ""DDgDDDD @430" ""D@D"DDD """DD D"DDD @ DDDDDD$DD "@D"DDD@DgDD"@DRD@D33"@D"@DD@@D"@D" ,@D @DD@ @DD"D"xw"DDD DD@D@D"" "@DD"DDD@gD""""@DD@ DDD"@DD@@D "" DDD DD*@D""" pw@D DDD @DD@""" " D"@DDDDDp"" """D@D DDD"@D "" " " DD"@DD$DD """"@D BDD"D-""DD @D"@DD$Dwwp' ""@DUDDD DDD @""DD DDD"@DD*@""@DDDD"D".DD DD DD"Dw'@DD DDUD@DD "@D """"@DD"@D@ @DD @ *DD"@D@""""@DDD DD""" D DDD DUDD""""""@ DDD BD.D """"@ DDD @D""DD@DD DDD B """" DD@DD$DDD BUD""" "DDDD$DDD """" DD@D@DDD DDDDDDDD BDD" ̼  "DD@DDDDD DDD PUUUD "DD#@DDDD"DDD "@""@DDLDDDD"@DD xDDDDDDD"@" +DD"@DD@DDDDD "D fffPUU"@DD DD0@DD@DD"@ .DD"DDD DDD DD"""(DD@DD@"""" "@DD"@DDDDD(D """"bfV DDD DD0BDD@""""@"@DD"@DDDD+D """"$@@""" @"@DD"D@("""""bD$DDD DD0"""""""@"D BDDD"@@D @+""""D @/ "DD@@D"DDD @( "DDg@D$DDD 203""""@""@DDDD DD"̻"@""@DD DD/DD"@DD @DD "D )DD"@Dg`@DD "D B3333 "DD"@D@DD "D @,@DD"@D@DD@D$DDD$DD ,D """"DD"@DD"DDg`%D """"B03@D"@DD"@D/@"""" DDD"@DDD"@D)@@DD DDD D ,"" "@"@DD"DDD"@pf`&""" BD3DD"@DD"@""""@" D DDD DDD """"DDD"@DD""@""@DD D DDD$DDD rpwff& "DDDD3DDD"@DD""@""@DD @DD DDD$DDD ) "DD"D""@DD DD D DDD "D www`&DDD"@DDD@D3DD"@  @DD"DD@DD@DD"@ @DD @D"""" BDDD BD  @D """ ww"@DDD"@DDD0@ """ "@DD"@DD@"""" "DDD" ""@D"@DDD"@ *"" ""Dw@"@DDD"@D0#"" ""@"@DDD"@ """ ""@@"@DDD""DD@DDDD"@DD" * ""DD@DwDD"@DD"@DDD0#""DDDDDD"@DD -""DDDD DD DDD BDDDDDD @DD$@D""@DD DDDDDwDD"D UU@D@D$DD"@DDDDDDD @D @DD BDD DD @DD "D"@DDDD DD"""" DDD DDDDDw@D "" RPUD"@DD"@DDDDD@D """" DDD DDD @DD""" DDDD." " " D"@DDD DDD@w"" """RP"@DD"@DDD"!"""""@D DDD"DDD"" " "DD" """D D"@DDD"DDw" """@D`PDD"@DD"DD" """@D@D"DDD"D * ""@D"@D"DD DD"@DD x"@D"DD`PDD"@DD """"@D"DD@DD"@DD "@D DD@DD"@D DD "@ @"@DD"@D`PDDD ""2""""@"DDD DD@DD""" ̼+DDD DDDDD DDD DD" """" @DD"DDD"@`P$@ """"" "@DD@"BDDD D.""""""@D @DD DDD"@DDD"@DDD """ "@ DDDDDD$DDD"fUP%""""D"3DD"@DDD DDD """"" DDD @DD"@DDD"BDDD"@DD"  ""@DD@DDDDD DDD"`fUUU% "@DD0@DD"@DDD DDD " "DDD DDD@DDD"@DD @DDD @D" ,DD DD@DD@DDD @D"gf`fU%DDD DDD03@DD"@DDD D"/DDD DDDDDDDDD "D@DD """ "DDD"@DD DDDDD """"wfff"@DDD DDD03@DD"DD"""""@DDD DDD@DDD @D""" " """ @ DDD"@D @D"" " ""w`"@DDD @D03@D """"""D"DDD$"DDDDD"" " " """"@D @D"DDD$"" """D w`D"@DDD @033"""""@D@D DDD" """"DD""@DDD @D"@DD "@"DDDwD`DD"@DD"D03333"@ "DDD@DD DDD ,D "@DD "BDDD@ DDD "@" "@DD"@DDpwDfDDD "@"DDD433"@DD"@DDDDD "@" @"@DD"@DD @"@DD @D """" D DDD"@DDp@f@D""" DD4D DDDD"BDDD"""" DD"@DDD DD DDD"" " ""@DD DDD"@Dp`"""""B4DDD "DDDD DD """" " @DD"@DDD "DD "@D """D  DD"@DDD$"@Dww`&""""@DP4DDD$"@DDD """DD@@DDD DDD"-@ "DDD D DD"@DD wwwg&D "@DDPD4DDD$"@DD""D @DD@DDDD DDD -DDD "DD DDD "@ ww'DDD "@DPD4DDD "@"" DDD$"@DDDDD "" *@ "DDDD DDD """ xw"@DDD "DDP4@D"""" "@"BDDD"@DD-D""""" @DD DDD"@"" " ""DDxD@"@DDD DP@""""" ""@DD"DDD"@-"" """@@$DDD"@DDD" """DDDDx@DD "@DDD UD@$""""D "@DDDDD DDD"""""@D @DD DD@DDD "@DD *@ "DDD@DDDx@DD DDD"UUUDDD$@ "DDD"@DDDDD DDD"-D "DDDļ@DD @DD@DD D" +@DD"@DDD@DDDw@DDD "D fUUUUD$@DD"@DDD"@DDDDD "@ @DD"BDDDDDDDDDDD """̼ "@DDD "@DDD@DDD@DD """ bPUUU"BDDD"@DDD"@DDDD"""  DDDD DDDD @DD @D"""" """ @ DDDD DDD@DD" """"bU"@DDD"@DDD"D!""""""@ "@DDD "DDDD @"" """""@ @"DDD"DDD@"""""@ bU@D"@DDD"@DDD ""!"""""D D"@DDD"@DDD+"""" ""@DD@D"@DDD"D"""@DDfU@D"@DDD"@"""""""@DD@D"BDDD" D̼ "@"" DDDDDD "@DD" "@D"@DDfU@DD"DD 23"" ""DD"DDD@DDD @DD +DD "DD DDD""@""@DDD "@D`fU@DDD "" 233#"D"DDD"DDDDD""""@"@DDD "@DD@D"""""DD DDDD DD`fP%@D """""23#@DD"DDDD D.@ """"" @ DDD"@DDD D """" ""@ DDD"DDDD D@`U"""" ""3D#DDDD"DDDD D""""" ""@D DDDD DDDD" ,"""""@D DD@DDD"@DDD"ffU" """"D 4@DD#DDDD DDDD """""DD DDD DDDD "@DDD,@""@DD DDD@DDD"@DDD"wfffffU"""DDD4DDD#DDDD DDD /@ "@DD @DDD@DDD"@DDD ,@DD "@DD DD DDDD "DD"wwwffff"DD "@DD4DDD#DDDD DD ""DD DDDDDD@DDD"D,DDDD DDD@DD DDD"""wpwwgf&DDDD "DDD4DDD3DDD""""/DDDD "@DDDDDD DDD""" "@DDD"DD DD""""""wwg"DDDD DDD4DD3"@""""""@ DDDD"@D@D DD, """""D DDDD "@@ )"""" ""wpf@"@DDDD D@4D0#"" " "D "@DDD"@D D"""""""@D"@DDDD )"""""D x@p@D"@DDDD @430#"""""@D @D "@DDD",""""@D DDD "@DDD" )@"""DDDx@Dw@DD "@DDD"D@D43333"@ ""DDD@DDD"@DDD "@ ""DDD@DD"DDD" )@D"DDDDw@DgDDD "DD BDD@D333"DD DDD@DDDD"@DD ",@DD"@DDD DDD "D" *@DDD "@DDDDDgDDD"" REDDDDD0"DDDD "@DDD@D@DDD""" "DDD"DDDDDD """ "@DDDD "@DDDx@pg@D """ RUDDDD"@DDDD "@DDDD@D""""" "@DDDD "@DDD""""" @@ "@DDD"DDDDxw"" " """UDDD"@DDDD "@DDD " "" """@DD"DDDD"@DDD""" " @DD"DDDD"@DDDxw"""" "@ "UD@DD"@DDDD "@DD """""""DDDD @DDD"DDD"""DD DDD"@DDDD "DDwww" """@DDUD@DD"@DDDD "D" """@DD @DDD "@DDDD ""@DDD@DDD "@DDD"wwww"D ""@DDDUDD@DD "@DDD""" @""DDD @DDD"DDD "@DDD DDD"DD"pww'@DD"DDDUDD@DDD "@D """"!"@DDD "@DDDD DDD"DD"̻ DD DDD ""@"p'@DDD"DDU@D@DDD"""@"" """DDDD"@DD@DDD""" ̰@D@D """""D"@DDDD"@DPU@D@D """"""""DDDD"DD """"" D +"""""""@DD@ "@DDDD "@DPUD"" """"""@D"@D"DDDD"D."""" """D +"""""""@DD@DDDD @DDDD "@PUD$""""""""DDD"DDD"DDDD""""""""" @DD̻+ """"DD DDDDDDDD"DDDD"PUUU@$""""@D#DDDD"DDD"DDDDD .""""@DD DDDD̼ +"""DDDD@DDDDDDDD"DDDD"fPUUUUU@$"@""@DDD#DDDD"DDD @DDD "D ""DDDD@DDD "DD"DDDD @DDD@DDDD "DDD"fffUUPUUE"DD"DDDD#DDDD"DDDD "DDD "."@DD "@DDDDDDD"DDDD "@DDDDDDDDDDDD""D"bfffUUPU"DDDD "@DDDD#DDDD"@DDD "D""DDDD"DDDD DDD"DDDD"DDDD@DDDDDDD"""""bffVU @DDDD "@DDDD#DDDD"@DDD """" ""DDDD"DDDDD@DD"@DDDD "@DDDD DDDD(D """"""b`fV"DDDDD "@DDDD#DDDD"!D""""""""DDDDD "@DDDDDD@ "DDDD"DDDDD@DD("" """"b`V@"DDDDD "@DDDD#@DD """ "" ""@"@DDDD "@DDDD @DD"@DDDD "DDD("""" "@ "bf`U@D"DDDD "@DDD0#"@D"""""""D "DD "@DDDD"DDD DD "DDDD"@D( """""@DDpgfDD "DDDD"@D3#""""""""@DD@DD "DDDD"@DDD"DDDDD " @ (@ """@DDDpfVDDD "@DDDD"203#""" """""DDDD@DD"DDDD DD "@DDD " (@D""DDDDw`VDDD "@DDD B33033"""""DD"@DDDDDD"@DDD" D"DD " (@DDD"DDDDpg`U@DDD""@D "433333"""@DDD"@DDD@DDD "D " @"""@ @"@DDDD "DDDpffU@DDD """@"D33333@""DDDD""@DDDDDD""" DD""""" @DD "@DDDD "@DDDwfDD """""B3333@DD "@DDDD""@DDDD """""" DD"""""" DDDD"DDDDD"DDDDg`&"D"""""""BD033DDDD "@DDDD "@DD"@""""""" @DD """ DDDDD "DDDDD "@DDDpg`f"""""""""DD03DDDD "@DDDD "@DD/""" """""@DD "" @DDDD"@DDDD"@@wf`f"""""""""DDD03DDDD "@DDDD "@D""""" "" " @D@DDDDDDD "DDDDD "wgfff" """""DDDDD33DDDD "@DDDD "/""""""@DD @DD DD DD @DDDD""@DDDD "pwgfff"""""DDDDD@DD3DDDD""@DDDD """"""DDDD DDDD@DDDDDDDD "DDDD "wpwwfffff&@D ""@DDD@DDDD3@DDDD""@DDDD"/"D "DDDD@DDD@DDDD @DDDD""DDD "xwwpww`fff&"DD""@DDDD@D@DDD3@DDDD""DDD "/@DDD""@DDDD@DDD D @DDDDDD "@D "wwwpwwff&"DDDD"@DDD@D@DD03@DDDD""DD""@DDDD "@DDD DDD@DD DDDD """ "xwwwwww`&"DDDDD "DDDDD@DD03DDDD """  "DDDDD "DDD DDDD @DDDD """" "wwwww"@DDDDD "DDDDDD03@DDD"""""" "@DDDDD"DDD@DDD @D """""" "pwww "DDDDD""@D@@DD3#@D"""""""" "DDDDD"@D @D,*""@ """""""@ww""@DDDDD"@D@D@03"" "" """"D "DDDDD""@D @"*"""""""""@ww@D"DDDDDD "D@D@3#"""""""""@D "DDDDD "D"*""""""" "@Dpw@DD "DDDDD""@DD3#""""" ""@""DDD"@DDDDD """"""""""DD @DDwwDDD""@DDDDD"DDDD03"""""""@DD"@DDDDD"@DDDDD"-"""""""DDD@DDDpw@DDDD "DDDDDD "@DDDDD03""""""DDD"DDDDDD""@DDDDD"" -"*" """@DDDD@DDDDwwDDDD""@DDDDD "@DDDDDD3#" """@DDDD"@DDDDDD""@DDDDD" -""D ""@DDDDDDDDpw@DDDD"@DDDD "UUDDD@DDD43"@D""DDDDD"@DDD@DDD "DDDD""DD "@DDDDD@DDDDwwDDDD "@DDD "UUUDDDDDD4"DDD "@DDDDD"@DDDDDDD "@DDD ""DDDD""@DDDDDDDDDpwDDDDD""DD "RUUUU@DD@DD#"DDDD "DDDDDD"@DDD@DDDD "@DD ""DDD""DDDDD@DDDDwwDDDDD"""D"RUUUUUEDDD$"@DDDD "DDDDDD"@DDDDDDDD ""@D""DD "DDDDDDDDDDpwDDDDD """@"RUUUUUDDD@"@DDDDD "DDDDDD@DDDDDDDD"""" " "DD "@DDDDDDDDDww@DDD """"""RUPUUUDD "DDDDDD""DDDDDD @DDDDDD """"" """D""@DDDDD@DDDpw@DD """"""""UUUED "DDDDDD""@DDDDDD DD"@DD """"""""@ """DDDDDDDDDpw"@D """""""""UUUD""@DDDDDD""@DDDDDD @D!"@"""""""""D@ " "DDDDDD@DDpw""" "" """""UPUDD "@DDDDDD "@DDDDD """ """"""""DDD""DDDDDD@Dpw"""" "" """"UUPE@ "DDDDDD "DDDDDD """" """"""@DD @DDDDD@Dww""""" """""RUUD@D""DDDDDD "DDDDDD !"""""""" """DDD@DDDDDDww"""""" ""D""RUPEDDDD""@DDDDDD""DDDDDD"""""""""""@ "DDDDDDDDw'""""""""""DD"bUUE@DDDD "@DDDDDD""@DDDDD "!""""""""DD DDDDDDDDw'" """""""DDDbVUDDDDD""DDDDDDD ""DDDDD""!" """"""@DDDDDDDDDw'" """"""DDDDfUPE@DDDD""DDDDDD "@DDD """""""""@DDDD@DDDDpw'" """""DDDDD`VUDDDDDD "@DDDDDD""@DDD"""!""""""DDDDDDDDpw'"@"""""DDDDD`fUPEDDDD""DDDDDD"""DD """""D """DDDDDDDD-- title: hivedrive -- author: Gasman -- desc: live-coding with hexagons for the Field-FX Monday Night Bytes stream, 2023-01-09 -- script: lua -- hello from gasman! it's been a while -- Greetings to ^ Mantratronic, Alia -- and ToBach! -- are we live? WE'RE LIVE! -- OK, so I'm going to try the hexagon -- thing I totally failed at a month -- or two back -- and hopefully I'll either succeed -- this time, or fail in a different -- interesting way from last time -- how about some last-minute -- palette jiggerypokery pal={} for i=0,48 do pal[i+1]=peek(i+16320) end function BDR(y) -- subtle. subtle is good. k=0.4+0.6*y/136 for i=0,48 do poke(i+16320,k*pal[i+1]) end end function TIC() t=time() a=t/2000 cx=120+60*math.sin(t/1234) cy=68+60*math.sin(t/1345) for sy=0,135 do for sx=0,239 do -- let's get some rotozoomy action -- going on x=((sx-cx)*math.cos(a)+(sy-cy)*math.sin(a))*(1+(146-sy)/80) y=((sy-cy)*math.cos(a)-(sx-cx)*math.sin(a))*(1+(146-sy)/80) sc=32+20*math.sin(t/1634) -- now let's push these back over -- so they're regular hexagons -- again tx=x/sc+(y/sc)/2 ty=y/sc -- I'm not sure the aspect ratio -- is right, but it looks OK so -- let's run with it -- if you draw a tesselating hexagon -- pattern, but push it over so that -- it's aligned to a square grid, -- you get three different 'modes' -- of square -- I'd do an ASCII art diagram, but -- that would get fiddly. Just trust me -- YAY HEXAGONS!!!!!! mode=(tx//1+ty//1)%3 if mode==0 then v=1-math.min(tx%1,ty%1) elseif mode==1 then v=1-math.abs(tx%1-ty%1) if ty%1>tx%1 then hx=hx+1 end else v=math.max(tx%1,ty%1) end -- okay, so now I want to have -- different phases for different -- hexagons. The only problem is it's -- going to be hard to translate x/y -- to "which hexagon am I", isn't it hx=tx//2 if ty//2%2==0 then hx=2 end core=math.max(0.3+0.35*math.sin(t/1456+hx)) -- still can't get things aligned, -- but at least the colour scheme's -- nice now... if v>0.8 then pix(sx,sy,hx) elseif v