Mr. Baby Paint: рисовальное приложение для малышей и случайное открытие клеточного автомата

Разработчик столкнулся с проблемой: его трёхлетний сын хотел рисовать на компьютере, но стандартные приложения вроде MS Paint требовали слишком точного управления мышью и постоянно переходили в случайные меню, что отвлекало ребёнка. Он создал Mr. Baby Paint, радикально простое совместное приложение для рисования, где весь экран служит холстом без меню и панелей инструментов. Левый клик рисует, скролл генерирует песок, правый клик работает как ведро краски; скорость рисования влияет на эффект брызг. Родитель управляет функциями клавиатурой (Cmd+S для сохранения, Cmd+E для очистки, Alt для удержания режима рисования), а ребёнок сосредоточен только на рисовании.

В процессе разработки автор столкнулся с проблемой прерывистого отслеживания движения мыши, быстрые движения создавали угловые линии вместо гладких кривых. Он решил эту задачу, применив сплайны Катмулла-Рома для соединения дискретных точек в плавную кривую, затем штампуя текстуру кисти вдоль этой кривой.

Самое интересное произошло с инструментом заливки. Вдохновляясь Mario Paint, где заливка видна в реальном времени, он реализовал параллельную заливку нескольких областей одновременно. При случайном тестировании, запуская заливки друг рядом с другом, области начали взаимодействовать, возникали органические рябые узоры, которые развивались тысячи поколений, прежде чем стабилизироваться в колебательный паттерн. Это произошло потому, что растущие заливки делят общий бюджет расширения (максимум 1000 пикселей в кадр), и меньшие области растут быстрее. Автор понял, что случайно открыл клеточный автомат на основе заливки, и оставил это как интересный вычислительный побочный эффект.

Отдельно разработчик решал проблему утолщения обводок пиксельных шрифтов. Попробовав около 15 различных алгоритмов, от простого расширения квадратов до сложных методов с использованием преобразований расстояния, определения скелетов белых областей и анализа 16-направленного луча, он остановился на методе с обнаружением зазоров по углам и пост-обработкой заполнения. Результат выглядит объёмным и подходит к стилю приложения.

Автор выпустил Mr. Baby Paint на itch.io за $4.99 для Mac, Windows и Linux. На момент написания статьи продано около 30 копий. В приложении 16 шрифтов, большинство из них, классические монобитовые шрифты из ретро-компьютеров (Apple Macintosh и других).

Ключевые факты

  • Минималистичный дизайн: весь экран, холст без меню, все сложные функции доступны через клавиши для родителя, а ребёнок сосредоточен только на рисовании
  • Гладкие линии реализованы через сплайны Катмулла-Рома, которые соединяют дискретные точки движения мыши в плавные кривые, решая проблему угловатости при быстрых движениях
  • Случайное открытие клеточного автомата: параллельная заливка нескольких областей с общим бюджетом расширения создаёт органические взаимодействующие паттерны, стабилизирующиеся в колебательные структуры
  • Около 15 экспериментальных алгоритмов для утолщения обводок пиксельных шрифтов, от простых до сложных методов с использованием преобразований расстояния и анализа зазоров
  • Приложение доступно на itch.io для всех основных платформ (Mac, Windows, Linux) с поддержкой 16 классических монобитовых шрифтов

Почему это важно

Проект демонстрирует нестандартный подход к проектированию цифровых инструментов для маленьких детей: вместо стандартного инструментария, дизайн опирается на совместную работу родителя и ребёнка, где каждый контролирует то, что может делать хорошо. Это философия, актуальная для любого инструмента, где опыт пользователей сильно различается. Кроме того, случайное открытие нового клеточного автомата показывает, что экспериментальное тестирование может привести к неожиданным научным наблюдениям. Проект также интересен как пример прозрачной инженерной работы: автор подробно объясняет каждый выбор и проблему, которую он решал.

Кому это важно

В первую очередь, родителям маленьких детей, которые ищут простые приложения для творчества без раздражающих меню. Разработчикам пригодятся решения по интерполяции линий и различные подходы к обработке растровых изображений. Исследователям в области клеточных автоматов интересна неожиданная система, которая самоорганизуется из простых правил заливки. Дизайнерам полезны идеи о совместном использовании и разделении контроля между участниками разной квалификации.

Как это применить

Если у вас есть маленький ребёнок, приложение доступно на itch.io за $4.99. Разработчикам подойдут объяснённые алгоритмы: сплайны Катмулла-Рома для гладкого интерполирования дискретных точек, параллельная заливка с бюджетом расширения для интерактивной графики, или любой из 15 методов утолщения пиксельных шрифтов. Авторы приложений для детей найдут структуру совместного управления (родитель, функции, ребёнок, основное действие) полезной для снижения фрустрации от ошибочных кликов.

Можно ли доверять

Автор демонстрирует высокий уровень технического мастерства и полную прозрачность. Он рассказывает не только о успехах, но и о методах, которые не сработали, показывает исходные и обработанные варианты шрифтов, объясняет каждое инженерное решение. Проект опубликован и продаётся реально (30 продаж), что подтверждает, что система работает в боевых условиях. Случайное открытие клеточного автомата, честное наблюдение при экспериментировании, а не постфактум выдумка.

Риски и подводные камни

Приложение разработано в узком контексте, для малышей, которые могут сидеть на коленях у взрослого. Оно не предназначено для самостоятельного использования очень маленькими детьми. Клеточный автомат, открытый случайно, остаётся в приложении как интересный побочный эффект, но это может привести к непредсказуемому поведению если пользователь случайно его активирует. CPU-реализация (без GPU) намеренно медленнее, чтобы автомат был визуально интересным, но это может быть ограничением на слабых устройствах. Проект находится в единичном экземпляре, масштабирования дизайна на другие возрастные группы или типы приложений неизвестны.

«Каждое действие либо оставляет след, либо производит звуковой эффект, визуальный эффект или их комбинацию. Нет способа 'испортить' результат.»

— Разработчик Mr. Baby Paint о философии дизайна приложения