diff --git a/pyscriptjs/examples/antigravity.html b/pyscriptjs/examples/antigravity.html
new file mode 100644
index 00000000..f1be76d3
--- /dev/null
+++ b/pyscriptjs/examples/antigravity.html
@@ -0,0 +1,73 @@
+
+
+ Antigravity
+
+
+
+
+
+
+
+
+
+
+ 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')
+console.log(node)
+node.replaceChildren()
+
+Antigravity(node)
+
+
+
+
diff --git a/pyscriptjs/examples/antigravity.svg b/pyscriptjs/examples/antigravity.svg
new file mode 100644
index 00000000..092a9e7a
--- /dev/null
+++ b/pyscriptjs/examples/antigravity.svg
@@ -0,0 +1,72 @@
+
+