Based on xkcd: antigravity https://xkcd.com/353/.
import random from js import document, setInterval from pyodide import create_proxy from pyodide.http import open_url class Antigravity(): def __init__(self, node): self.node = node self.xoffset, self.yoffset = 0, 0 setInterval(create_proxy(self.move), 10) def move(self): char = document.getElementById('python') console.log(char) char.setAttribute('transform', f'translate({self.xoffset}, {-self.yoffset})') self.xoffset += random.normalvariate(0, 1)/20 if self.yoffset < 50: self.yoffset += 0.1 else: self.yoffset += random.normalvariate(0, 1)/20 def _repr_svg_(self): return open_url('./antigravity.svg').read() node = document.getElementById('antigravity') node.replaceChildren() Antigravity(node)