概要

PhotonMixerは、デジタルネイティブなイラストソフト。 float32リニアカラー・WebGPUネイティブ・SAIレベルのペン体験を核とし、アナログ模倣を捨ててデジタルの正確性を表現ツールとして再定義する。

ペンエンジン

生入力 → 近似で整形 → 4xバッファで高精度描画 → ペンアップ確定 → float32リニアキャンバスに合成 → OCIO → 画面
  • Catmull-Romスプラインを基本に拡張
  • EMA + 速度連動の手ブレ補正(低速時:強い補正、高速時:ほぼ素通し)
  • 4xサブピクセルバッファでブラシ範囲のみGPU内で高精度処理
  • スタンプ連打が基本構造、テクスチャはキャンバス座標系で適用

カラーパイプライン

入力(HSV/RGB)→ float32リニア変換 → 内部保持 → 混色演算 → OCIO表示変換 → 出力
  • 内部は全てfloat32リニア(1.0超えのHDR値も保持)
  • 混色: Normal→Oklab空間、Screen/Add→リニア空間
  • 表示: OCIO経由でトーンマッピング(PBR Neutral / AgX / Reinhard / None)
  • 出力: sRGB 8bit / HDR10 / P3 / OpenEXR

Photon Experience MVP

  • Light Panel: 表示露出(±6EV)、トーンマップ切り替え、白飛び確認モード
  • Color EV: 光量スライダー、SDR域/HDR域を同一スライダー上で視覚的に分離
  • Glow / Bloom: 非破壊効果レイヤー、HDR部分を抽出して発光
  • 加算(光): リニア空間で光量を足す作画

スタック

役割選択
ランタイムElectron
言語TypeScript統一
GPU APIWebGPU raw + @webgpu/types
シェーダーWGSL
EXRtinyexr → WASM
UIReact + TypeScript
ビルドVite

ファイルフォーマット

ネイティブ形式 .pmx(ZIPコンテナ、manifest.json + document.json + layers/*.exr)。インポートはPSD/PNG/JPEG/OpenEXR対応。