このプロジェクトについて

Darklyは、画家を主な対象としたPhotoshop代替として位置づけられたオープンソースのペイントアプリケーションである。WebAssemblyとWebGPUを通じてブラウザ上で動作し、ログインなしでオフラインでも利用でき、他のグラフィックツールに埋め込める独立したRustクレートとしても公開されている。 READMEに記載されている主な機能: - ノードベースのブラシエンジン。ラウンド、インクペン、木炭、スミッジ、水彩、リキファイ、クローン、ブラー、カリグラフィーなどのブラシ。筆圧、傾き、間隔、距離、角度の入力。Laplacianスタビライザー。 - ラスターレイヤーとグループ、レイヤーマスク、16種類のブレンドモード、フローティングレイヤー、スマートオブジェクト、および一連のフィルターレイヤー(明るさ/コントラスト、HSL、レベル、カーブ、反転、彩度低下、色収差)。 - 選択ツール:矩形、楕円、投げ縄、多角形、マジックワンド。置換/追加/減算/交差モードに対応し、さらにフェザー、アンチエイリアス、拡大、縮小、境界、スムーズの操作を備える。 - 変形ツール:汎用および遠近法の変形、選択範囲へのクロップ、キャンバスサイズ変更、画像リスケール、DPI処理、キャンバス反転、90度回転。 - ドキュメント処理:新規ドキュメント、画像を開く、ネイティブの.darkly形式の保存/開封、PNG/JPEG/WebP書き出し、クリップボード操作、クラッシュ復元付き自動保存、プロセス記録。 - インターフェース機能:コマンドパレット、アプリケーションメニュー、ドッキング可能でタイル状のパネル、別のOSウィンドウにポップアウトできるパネル、テーマシステム、検索可能なチートシート付きホットキーシステム、Krita/Photoshop/GIMPのホットキープリセット、インストール可能なPWA。 特徴的な機能: - Veils:キャンバスを覆う非破壊のシェーダー風レイヤー。色収差、フローズン、グレイン、レンズブラー、ペインティング、ピクセレート、レイニーグラス、VHSなどのエフェクトを含む。READMEでは、細部への早すぎる固執、白紙状態症候群、アート疲労に対する助けとして位置づけられている。 - Voids:ノイズジェネレーターや別アプリケーションからの画面共有ストリームなど、外部ソースを取り込むレイヤー。参照やハイブリッドワークフローに有用。Voidsはマスクとブレンドモードに対応し、専用のBlender拡張も存在する。 アーキテクチャと使用方法: - コアはdarklyという名前のプラットフォーム非依存のRustクレートで、ドキュメントモデル、ブラシエンジン、GPUコンポジター、アンドゥシステムを含み、wgpuが動作するあらゆる環境(Vulkan、Metal、DX12、またはブラウザ内のWebGPU)で動作する。 - 提供されるアプリは、WebAssemblyブリッジを通じてそのクレート上に構築されたSvelteフロントエンドである。 - ビルドにはRust stable、Node.js 22以降、make、binaryenのwasm-optが必要。WebGPU対応ブラウザ(Chrome 113+、Edge 113+、またはフラグを有効にしたFirefox Nightly)が必要。Linuxでは、ChromiumでVulkanとunsafe WebGPUフラグを有効にする必要がある場合がある。 - 開発者はcargo add darklyでクレートを追加でき、実行可能な例についてはREADMEとAPIドキュメントを参照できる。 このプロジェクトはベータ版で、実装済みおよび計画中の機能の公開ロードマップがある。コントリビューションは歓迎されており、READMEには、AI支援コーディングは許可されるが不注意なバイブコーディングは禁止であること、すべてのPRには人間が書いた根拠が必要であること、Darkly内の生成AI機能は、サードパーティAPIなしで完全にオフラインで動作しアーティストの制御を保つ場合を除き、受け入れられる可能性は低いことが記載されている。READMEはまた、GIMP、Krita、Graphiteを影響源として挙げ、一部のveilおよびvoidシェーダーはShadertoy作品の移植または改変であることに言及している。