OpenStreetMapのデータを使い、選んだ都市の全道路をブラウザー上で地図風に一括描画します。
enpts/sho
点のリストから筆の動きを描き、毛先や墨、かすれの効果を再現するブラウザベースの毛筆エンジンです。
- スター
- 14
- フォーク
- 0
- 未解決の Issue
- 0
- 最終コミット
- 3 日前
これは何?
sho.jsは、ブラウザ上で動作するJavaScript製の毛筆エンジンです。筆の動きを点のリストで指定し、各点には位置、筆圧、筆の角度、速度、一時停止を設定できます。エンジンは紙のキャンバス上に、ストロークを1本ずつ描画します。
筆の物理的な動きをシミュレートし、1本1本の毛先、ストロークに沿って墨が薄れていく様子、高速時のかすれ、筆を置いた箇所に墨がたまる様子、薄墨のにじみを表現します。はねや払いなどの技法は、専用のプリセットではなく、点の配置によって表現します。出力は決定的で、同じデータと設定からは常に同じ絵が生成されます。
データを逐次入力できる設計のため、LLMの出力をストリーミングしながら、行ごとに描画できます。パッケージは依存関係がなく、単一のスクリプトと紙の画像1枚で構成され、グローバルなShoオブジェクトとして読み込めます。デモページとサンプルのシステムプロンプトも含まれています。
主な機能
- 01筆圧、角度、速度、一時停止を指定した点のリストでストロークを定義できます。
- 02筆の毛先、墨の減り、かすれ、墨だまりをシミュレートします。
- 03薄墨のにじみ方として、毛細管状と輪状の2種類を用意しています。
- 04ストロークの座標から決定的に描画でき、アニメーション表示と即時描画に対応します。
- 05StreamParserを使ってLLMの出力をストリーミングできます。
- 06依存関係はなく、スクリプト1本と紙の画像1枚で構成されています。
ユースケース
- Webページやデモ上で、毛筆の書き文字をアニメーション表示する。
- LLMに筆で文字や単語を書かせる視覚的な実験を行う。
- PNGとして書き出せる、決定的な毛筆画像を生成する。
- Canvasコードで筆の物理的な動きをどう近似できるかを調べる。
クイックスタート
- 1
sho.js と paper.webp を同じフォルダーにコピーします
- 2
HTML ページでスクリプトを読み込みます
<script src="sho.js"></script> - 3
canvas 上にエンジンを作成し、ストロークをキューに追加します
const engine = new Sho.Engine(document.getElementById('paper'), { pxPerUnit: 1 });
使う前に知っておきたいこと
- npm パッケージ版や ES module ビルドはなく、通常のスクリプトとして読み込みます。
- Chrome でのみテスト済みで、canvas と DOM に対応したブラウザーが必要です。
- 開発初期のプロジェクトで、スター数(9)もコミュニティもまだ少数です。
トピック
よくある質問
- sho とは?
- 点のリストから筆の動きを描き、毛先や墨、かすれの効果を再現するブラウザベースの毛筆エンジンです。 sho.jsは、ブラウザ上で動作するJavaScript製の毛筆エンジンです。筆の動きを点のリストで指定し、各点には位置、筆圧、筆の角度、速度、一時停止を設定できます。エンジンは紙のキャンバス上に、ストロークを1本ずつ描画します。
- sho は無料で使えますか?ライセンスは?
- sho は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- sho は今もメンテナンスされていますか?
- 活発にメンテナンス中。sho の最終コミットは 2026年11月5日 です。
- sho は何に使えますか?
- Webページやデモ上で、毛筆の書き文字をアニメーション表示する。 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 をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
装飾的なドロップキャップや飾り文字を無数に生成し、閲覧、ブックマーク、ダウンロードできるブラウザベースのジェネレーター。
アートスタイルのレシピや解説動画の文法をコード駆動のアニメーションに変換し、絵画や図解を動かすエージェントスキル。
プロンプトから短いプロシージャルなCanvasアニメーションを作り、ヘッドレスブラウザーとffmpegでMP4に出力するClaude Codeスキル。
コードから手描き風イラスト、ループアニメ、映像、インタラクティブなWebアートを32種類のスタイルで生成し、毎回同じ結果を描画します。
あらゆるフォントを、React、Vue、Svelte、Solid、Astro、vanilla JSで使える、一画ずつ描かれる手書き風アニメーションに変換します。