// compile with 164.2ppi #import "@preview/cetz:0.3.1"; #let fps = 60; #let frames = 6 * fps; #set page(paper: "presentation-16-9", fill: rgb("202020")) #set text(font: "Departure Mono", size: 36pt, fill: rgb("ffffff")) #let cursor(t, blink_rate: 0.3) = { text(if calc.rem(t, blink_rate * 2) < blink_rate { "ω" } else { " " }) } #let done = false; #let frame = 0; #while not done { frame += 1 if frame > frames { done = true } else { let t = frame / fps page[#cetz.canvas({ import cetz.draw: * // rect((0 + t * 10, 0), (2 + t * 10, 10), fill: white) // rect((30,0), (40,1), fill: white) circle((1,1), name: "spinner") line( (1, 1), ..range(0, frame + 1).map(f => (anchor: f * 1deg, name: "spinner")), fill: white, stroke: 0pt ) })] } }