hey @lidia_p maybe you know about the Processed World magazine but it's awesome enough to just leave it here for anyone to find
Every once a year I need to use a remote desktop tool, and it's pretty frequent that the one I have doesn't work anymore (until now I was using xpra, which was removed from the debian repos)
So apparently the current tool is x2go, which is surprisingly seamless and gets you to the other desktop real quick. Super pleased with it.
I had set myself to do daily Shoebot sketches more than a month ago, and silently lost the pace a few days into it. I'm still bummed that I didn't make it, but there was a decent reason.
I've been rather active around covid contact tracing apps, doing media outreach and general activism as part of the PT digital rights group (@d3). After months of hard work (and confirmation of failure scenarios), we got a grant from a European NGO to write a report about the portuguese corona tracing app experiment.
So I switched my evenings from Shoebot dabbling to investigative mode, sourcing hundreds of news to establish a timeline, gathering data and making charts. The report was delivered but we're energised enough to adapt it into a format aimed at a Portuguese audience -- lawmakers, media and concerned citizens.
As a way to kind of redeem myself from setting Shoebot aside, I'm using it to make the visualizations for the report. And now I have loads of plans to build a plugin for Shoebot to provide easy ways to visualise datasets -- the Python coding style is bliss for me, compared to other specialised frameworks like Bokeh or D3 (which I love and use for more demanding contexts).
This is a work-in-progress chart, made for analysis and not (yet) aesthetics, but I'm pretty excited with how it's turning out.
- Non-daily #ShoebotSketch 10 -
Some buggy flickering at the start, but there's some sine wave motion
for n in range(20):
angle1 = FRAME/2
angle2 = FRAME*5 % 360
arc(WIDTH/2, HEIGHT/2, n*12, angle1, angle2-n*5)
messy source code
i'm sorry, this is really bad atm!
rsz = 30
cols = 16
rows = 16
def __init__(self, step=3, sz=rsz, offset=0.5, gap=2):
self.step = step
self.size = sz
self.offset = offset
self.flipped = False
self.gap = gap
self.frontcolor = "#283618"
self.backcolor = "#fefae0"
self.stepamount = self.offset
if self.step >= self.size:
self.stepamount = -self.offset
elif self.step <= 1:
self.stepamount = self.offset
self.flipped = not self.flipped
self.step += self.stepamount
def draw(self, x, y):
col = self.backcolor if self.flipped else self.frontcolor
rect(x, y, self.step-self.gap/2, self.size-self.gap/2, fill=col)
lilsquares = [[LilSquare(step=x%3+y%2, offset=(y+1)%4+0.2) for y in range(rows)] for x in range(cols)]
firstlsq = lilsquares
for x,y in grid(cols, rows, rsz, rsz):
tx, ty = (int(x/rsz), int(y/rsz))
lsq = lilsquares[tx][ty]
- Daily #ShoebotSketches 8 -
I spent more time than would be reasonable to implement squares that flip. First I tried to avoid saving their states, but got fed up and just did things with a class. Still grumpy that I couldn't find a nicer way.
Next time I'll see if trig motion makes this less monotonous
- Daily #ShoebotSketch 7 -
Going deeper into @aqua 's epitrochoids and playing with numbers until something nice appears.
One happy discovery -- this particle-like effect is actually a dashed stroke which happens to move nicely as the paths shift shapes. Reminds me of Processing particle examples (and using dashes speeds up rendering considerably)
from math import sin, cos
lines = True
radius = WIDTH * 0.45
center = WIDTH * 0.5
theta_count = 5
k = 1
global lines, radius, center, theta_count, k
if FRAME > 300:
k += 1
td = (300 / (FRAME % 300 + 1)) - 1
start = False
for i in range(360 * theta_count):
theta = i / theta_count
# fill(sin(theta) + 1, 1, 0.4)
stroke(sin(theta) + 1, 1, 0.4)
t_r = 1
tr = t_r / k
t_total = t_r + tr + td
t_scale = radius / t_total
rr = t_r * t_scale
r = tr * t_scale
d = td * t_scale
x = (center + (rr+r)*cos(theta) - (d*cos(((rr+r)/r)*theta)))
y = (center + (rr+r)*sin(theta) - (d*sin(((rr+r)/r)*theta)))
if not start:
start = True
rect(x, y, 1, 1)
- Daily #ShoebotSketch 6 -
Fell behind a couple of days because of work, so let's begin catching up
The only goal for now was getting anything on the screen; it's still pretty glitchy, I'll probably keep playing with this more as I try to understand what's going on
Straight from the birdsite: Cool data embedded in the Bitcoin blockchain
margin = 60
spacing = 40
swidth = 20
colors = ["fec5bb","fcd5ce","fae1dd","f8edeb","e8e8e4",
for n in range(2,12):
arc(margin, HEIGHT-margin, n*spacing, -90, 0,
strokedash=[50, 25, 100, 25], dashoffset=n*20+FRAME*1.5)
for n in range(1,12):
arc(WIDTH-margin, margin, n*spacing, 90, 180,
strokedash=[50, 25, 100, 25], dashoffset=-n*20-FRAME*1.5)
- Daily #ShoebotSketch 3 -
Started as an experiment with moirés, but got distracted with stroke dashes again
i design and i hack and i teach and i write and i play, not necessarily in that order
Welcome to post.lurk.org, an instance for discussions around cultural freedom, experimental, new media art, net and computational culture, and things like that.