Every letter is a circle.
Type a sentence and a turtle draws it, one circle per letter, one color per word. Leave it running and it becomes a screensaver that reads poems, quotes or your own PDFs.
Sifar
noun · zero, nothingness
The words of great poets leave nothing behind in the material world. They are spoken, and they vanish. Yet they move people to make things.
Here every word is drawn as circles, a row of zeros, and then fades away to make room for the next line.
The words return to nothing. The thought remains.
How it works
It started in 2019 as a 50-line Python turtle script. The web version follows the same rules step by step, so the same words make the same shapes.
- Each word gets a color and a stepThe pen picks a random color and moves forward 200 units.
- Each letter becomes a circleThe radius is the letter’s place in the alphabet times 5:
ais 5,zis 130. After each circle the pen turns right 45°. - Overlaps punch holesThe word is filled with the even-odd rule, so where circles overlap the paper shows through.
- The sentence is written lastYour text appears beside the drawing, where the original script placed it.
# graphics.py, 2019
for word in s.split():
pencolor(r, g, b); fillcolor(r, g, b)
forward(200)
begin_fill()
for letter in word:
p = alphabet.index(letter)
circle(p * 5)
right(45)
end_fill()
What it does
Everything runs in your browser. Nothing is uploaded anywhere.
Sloth, Tortoise, Turtle, Hare and Cheetah. The pen moves at a constant on-screen speed.
Classic random colors, two-tone gradients, or iridescent glass that slowly shifts hue.
Fullscreen, keeps the screen awake, starts on its own when idle, exits on any key.
A built-in public-domain library: Dickinson, Frost, Wordsworth, Shelley, Marcus Aurelius, Seneca and more.
Paste text or drop a PDF. It scrolls sentence by sentence, each one drawn as it passes.
Each piece is set in one of thirteen typefaces, sometimes italic, sometimes in spaced capitals.
Tech stack
No framework and no build step: two static HTML files you can open straight from disk or host anywhere.
| Layer | What | Used for |
|---|---|---|
| Language | HTML, CSS, vanilla JavaScript (ES2020) | The whole app in one file, app.html |
| Rendering | Canvas 2D API | Turtle drawing, Path2D even-odd fills, gradients, glow and sheen |
| Animation | requestAnimationFrame, CSS transitions | Constant-speed pen, crossfades, scrolling reader |
| pdf.js 3.11 (Mozilla, Apache-2.0) | Text extraction, loaded from cdnjs only when you open a PDF | |
| Type | Google Fonts | Bricolage Grotesque, Newsreader, IBM Plex Mono and ten display faces |
| Browser APIs | Fullscreen, Screen Wake Lock, Clipboard, File and drag-and-drop, localStorage, ResizeObserver | Screensaver mode, sharing, opening files, remembering settings |
| Hosting | Sevalla static site hosting | Serves the static files, deployed from GitHub on every push |
| Origin | Python 3 turtle | The original script, kept in python/graphics.py |
Made by Manoj Manduva
Principal Product Designer · Vancouver, BC
“I work between a founder’s vision and people’s needs, bringing product thinking and design together.”
Manoj is a product designer and strategist with a background in computer science engineering and a master’s in interaction design. He has designed EV charging for Volkswagen, AI video editing at Pictory, and enterprise software at Oracle. Sifar started in 2019 as a small Python experiment called Text to Graphics, part of making room for curiosity in what he builds.