Repolode
enpts

enpts/sho

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

Звёзды
12
Форки
0
Открытые issues
0
Последний коммит
позавчера

Что это?

sho.js — движок каллиграфии кистью на JavaScript, работающий в браузере. Каждый штрих задаётся списком точек: для каждой можно указать положение, нажим, угол кисти, скорость и паузу. Движок выводит штрихи по очереди на холст с текстурой бумаги.

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

Движок рассчитан на постепенную подачу данных, поэтому строки, сгенерированные LLM, можно рисовать по мере их поступления. Пакет состоит из одного скрипта и изображения бумаги, не имеет зависимостей и загружается как глобальный объект Sho. В комплект входят демо-страница и примеры системных промптов.

Ключевые возможности

  • 01Штрихи задаются списками точек с нажимом, углом, скоростью и паузой.
  • 02Имитирует щетинки, расход чернил, полосы сухой кисти и скопление чернил.
  • 03Два стиля растекания бледных чернил: капиллярный и кольцевой.
  • 04Детерминированная отрисовка по координатам штрихов — с анимацией или мгновенно.
  • 05Поддержка потоковой обработки вывода LLM через StreamParser.
  • 06Без зависимостей: один скрипт и одно изображение бумаги.

Сценарии использования

  • Анимация рукописной каллиграфии на веб-странице или в демо.
  • Эксперименты с визуализацией того, как LLM выводит символы или слова кистью.
  • Создание детерминированных изображений каллиграфии для экспорта в PNG.
  • Изучение способов приближённо моделировать физику кисти с помощью кода для canvas.

Быстрый старт

  1. 1

    Скопируйте sho.js и paper.webp в одну папку

  2. 2

    Подключите скрипт на HTML-странице

    <script src="sho.js"></script>
  3. 3

    Создайте движок на canvas и добавьте штрих в очередь

    const engine = new Sho.Engine(document.getElementById('paper'), { pxPerUnit: 1 });

Что важно знать

  • Пакета npm и сборки в виде ES-модуля нет; скрипт подключается как обычный.
  • Протестировано только в Chrome; нужен браузер с поддержкой canvas и DOM.
  • Проект находится на ранней стадии: у него мало звёзд (9) и небольшое сообщество.

Темы

#calligraphy#canvas#javascript#generative-art#brush-simulation#llm-streaming

Частые вопросы

Что такое sho?
Браузерный движок каллиграфии кистью, который рисует штрихи по спискам точек, имитируя щетину, чернила и сухую кисть. sho.js — движок каллиграфии кистью на JavaScript, работающий в браузере. Каждый штрих задаётся списком точек: для каждой можно указать положение, нажим, угол кисти, скорость и паузу. Движок выводит штрихи по очереди на холст с текстурой бумаги.
sho можно использовать бесплатно? Какая у него лицензия?
sho распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
sho всё ещё поддерживается?
Активно поддерживается. Последний коммит в sho — 5 нояб. 2026 г..
Для чего можно использовать sho?
Анимация рукописной каллиграфии на веб-странице или в демо. Эксперименты с визуализацией того, как LLM выводит символы или слова кистью. Создание детерминированных изображений каллиграфии для экспорта в PNG. Изучение способов приближённо моделировать физику кисти с помощью кода для canvas.
Как установить sho?
Скопируйте sho.js и paper.webp в одну папку Подключите скрипт на HTML-странице: <script src="sho.js"></script> Создайте движок на canvas и добавьте штрих в очередь: const engine = new Sho.Engine(document.getElementById('paper'), { pxPerUnit: 1 });
Где скачать sho?
Исходный код и инструкции по установке — на GitHub: https://github.com/enpts/sho

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты