Lulucat

Блог Lulucat

Lulucat Blog — это место, где мы записываем, как на самом деле создаются приложения. Здесь будут подробные разборы движков отрисовки, лежащих в основе наших инструментов для рукописного ввода, — моделей штрихов, ластиков и графических конвейеров GPU, — измерительных и проверочных инструментов, которые мы создаём, чтобы им доверять, и честные заметки о работе с ИИ-агентами для программирования: что они сделали правильно, что сломали и что мы оставили. Фиксированного графика нет; новые публикации появляются, когда есть что-то настоящее, что можно показать.

RSS-лента
The blue-tiled roof of the Temple of Heaven above a red wall in Beijing, scanned from Fuji slide film with the sprocket border visible
Photo by Zhen Yao · Original · Unsplash License

Производительность инструмента мела: от полноэкранных проходов до scissor-прямоугольников

Инструмент мела в Lulucat Notes замедлялся в областях с плотным рукописным вводом. Узким местом были не 3,571 входных образцов — им оказались 70 полноэкранных scratch-проходов на каждый кадр. Отклонённый кэш низкого разрешения и scissor-прямоугольник для каждого штриха дополняют эту историю.

Gaoge ZhangGaoge Zhang

Почему мы пока не используем базу данных

Мы оценили Turso/libSQL для нашего приложения рукописных заметок на iPad, всё измерили и выбрали плоские файлы снимков. Этой нагрузке не нужна база данных — каждый следующий шаг должен оплачивать только уже существующие проблемы.

Gaoge ZhangGaoge Zhang

Как Kimi K3 самостоятельно создала цифровой штрих перьевой ручки

Мы хотели добавить в Lulucat Notes направленную перьевую ручку из Freeform. Техническим заданием был скриншот почерка. Две модели, один разграничивающий вопрос и эллиптическое перо спустя — водяная ручка пишет так, как должна. Исследование, код и валидацию выполнила Kimi K3 на Fireworks.

Gaoge ZhangGaoge Zhang

Перестройка конвейера рендеринга Lulucat Notes вместе с Kimi K3

Наш тайловый конвейер Core Graphics превратился в конвейер точечных спрайтов Metal за шесть небольших шагов, каждый из которых проверен на реальном iPad. Код был написан в парном программировании с Kimi K3 на Fireworks.

Gaoge ZhangGaoge Zhang

Два ластика и почему стирание принадлежит штриху

Штрих ластика как отдельный элемент кажется очевидным решением. Перемещение объектов ломает эту модель, поэтому в Lulucat Notes стирание принадлежит штриху, из которого удаляются чернила.

Gaoge ZhangGaoge Zhang