- Daily 6 -

Fell behind a couple of days because of work, so let's begin catching up

This is my first take at porting @aqua 's beautiful epitrochoids demo to Shoebot. Original at

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

· · Web · 2 · 1 · 6

source code 

from math import sin, cos

lines = True
radius = WIDTH * 0.45
center = WIDTH * 0.5
theta_count = 5
k = 1


def draw():
global lines, radius, center, theta_count, k
if FRAME > 300:
k += 1

td = (300 / (FRAME % 300 + 1)) - 1

if lines:
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 lines:
if not start:
moveto(x, y)
start = True
lineto(x, y)
rect(x, y, 1, 1)
if lines:

Show thread
@rlafuente If it helps you decode what's happening i wrote a desmos graph to explain the maths behind what my vanitas animation was doing

@aqua This is awesome. One day I will get to grok this, but for now I'm having too much fun just fiddling with numbers and strokes

@rlafuente im envious of all this fun you've been having. i've been tearing my hair out at CSS

@aqua oof :( I hope you can quickly get to the fun part of CSS in whatever you're making. I've been fighting JavaScript in working hours, so number fiddling (and dogfooding this tool) is my evening therapy.

@rlafuente writing this music player, and im a purist so i hate having css rules that dont need to be there. its my own fault really isnt it...

@aqua You're going for the "I did it right" feeling and that's worth the work, no?

And here's my baby

@aqua yep it's Atom, i made an extension so that i could run Shoebot scripts inside it. The canvas and sliders window is Shoebot being called from inside atom

@rlafuente i use VSCod(ium)
I was gonna recommend a plugin that made writing shaders in GLSL much easier when I was doing that. GLSL canvas. I dunno, maybe there's an Atom one for that when you wanna try it.

@aqua GLSL! There's another toy I'll play with someday. I've had some fun with Hydra, which runs on Atom --

and btw that audio player looks slick, what are you building? (i see it's a widget on the bottom so i wonder what's going to be in the rest of the page)

Sign in to participate in the conversation

Welcome to, an instance for discussions around cultural freedom, experimental, new media art, net and computational culture, and things like that.