Мне кажется
Inkscape тут поможет.
Живет на
https://inkscape.org/, есть под все популярные ОСи, опенсорсный, есть не просит.
Как мне это всё видится (в скобках хоткеи, либо можно кнопки в панелях/меню искать):
Создаем круг (F5) 20х20 пикселей. Размеры и координаты левого нижнего угла задаются на панели сверху (я не нашел как в Инкскейпе задать центр окружности, буду рад если кто-нибудь поправит):

Дублируем (Ctrl+D) нужное количество раз, задаем цвета, раскидываем в нужные места.
Включаем привязку к центрам объектов (см. нажатые кнопочки на панели):

Включаем режим создания кривых (Shift+F6). Подносим курсор к центру любого кружка, должна включиться привязка. Соединяем необходимое количество центров. После создания первого отрезка лучше сразу задать ему толщину и цвет, чтобы все последующие были такие же. Либо позже выделяем с шифтом нужные объекты, нажимаем Shift+Ctrl+F и настраиваем цвет/толщину/тип обводки.
Дальше используя клавиши PageUp и PageDown задаем порядок объектов. Можно для этих целей использовать слои, но я, как правило, ими не пользуюсь, поэтому тут ничего не подскажу.
Ну и дальше экспорт картинки в растр (Shift+Ctrl+E). Там всё просто.
Будут вопросы - постараюсь помочь.