This is yet another experimental tool for procedural art. Use simple scripts to describe graphical banners and posters with many repetitive elements, then export them as SVG for further use. Scripts can be edited and previewed in place for rapid turnaround.

Screenshot of a desktop app with two vertical panes: one shows a few lines of code, the other a graphic design with many concentric circles clipped by a frame.

Rationale: I make vector art by hand (see the Pocket Guide to Writing SVG). It's a wonderful artistic medium, but turnaround can be slow between my text editor and image viewer. Also, that way it's hard to add repetitive elements. Genoa is meant to help with that as a first step, and for quick iteration of ideas.

(Here's some early art made with Genoa.)


As of mid-September 2023, Genoa is in beta. It proved stable so far, but could use more testing. Please back up your data.

System requirements

Genoa is open source under the MIT License. The built-in text editor is based on Toyed.


Genoa is powered by a little language based on Tcl. For example its own promotional cover is defined like this:

Three sets of concentric circles in red, green and blue make up moire patterns over a dark gray background. On top, in white, are the words 'generate original art'.
# The viewport declaration can be anywhere.
viewport 75 50 630 500

width 0
fill darkslategray
box 75 50 630 500
width 10
fill ""

proc circles {cx cy} {
	repeat 10 {
		incr i 30
		circle $cx $cy $i
color darkred; circles 200 200
color green; circles 500 100
color darkblue; circles 400 400

font "Noto Sans"; size 48
color white; set j 0
	incr j 64
	text 225 [+ 225 $j] $i

The image on the right is the exact file exported from Genoa.

Abstract art suggesting a bright blue planet with large moons and a ring system, on the backdrop of broad purple bands in the dark. Abstract art suggesting a lake at night, a wooden pier and the moon as it sets, all seen from a porch with a houseplant. Abstract art suggesting red, yellow and green laser beams sweeping an empty dance floor lined in neon blue.