実績のサムネを6枚の板ポリとして円弧に並べ、カメラ(ビュー行列)の注視点を回して巡る実績ブロック。3Dライブラリは使わず、射影行列・lookAt・モデル行列の3本をJSで組んで素のWebGL(GLSL ES 1.00)へ渡すだけで動く。板は頂点4つのTRIANGLE_STRIPを1個だけ持ち、uniform(MVP・図案番号・面の向き・強調度)を差し替えて6回描くので、バッファもテクスチャも増えない。絵柄は画像ではなくフラグメントシェーダの関数で描くため画像素材ゼロで、板が何枚並んでもネットワーク転送は発生しない。当たり判定はレイを飛ばさず、描画に使ったMVPで4隅を画面座標へ射影して多角形の内外判定を行う(逆行列も交差計算も不要・カメラ背面のw<=0だけ弾く)。ホバーした板は自分の法線方向へ引き寄せて手前へせり出し、同時に下の実績台帳の行が強調される。逆に台帳の行にホバー/フォーカスするとカメラがその板の正面へ回り込むため、キーボードだけでも同じ体験になり、canvasはaria-hiddenの装飾に徹して内容は罫線リスト(DOM)を正にできる。無操作時はパンが端で反転する往復になりループの継ぎ目が出ない。prefers-reduced-motion時はrAFを回さず、円弧をやめた3×2の静止グリッドを1枚だけ描いて強調はアンバーの枠線のみで示す。画面外(IntersectionObserver)とタブ非表示でも停止し、起動直後48フレームの平均フレーム時間が32msを超えたらバッキングストアを0.6倍、それでも超えたらCSSの静的グラデーションへ降りる。webglcontextlostは必ずpreventDefaultで握り、アンマウント時はWEBGL_lose_contextでGPUリソースを明示的に解放する。文言・配色・構成はすべてFirst CHのオリジナル。
フルスクリーンの三角形1枚とフラグメントシェーダ1本だけで、ヒーロー背景に屈折するガラスの塊を敷いたブロック。3Dライブラリは使わず素のWebGL(GLSL ES 1.00)で組んでいるので、webgl2でもwebglでも同じシェーダが動き、依存ライブラリはゼロ。背景の方眼ドットとアンバーの斜め帯はテクスチャではなくシェーダ内の関数で描き、それを法線方向にずらして再サンプルすることで屈折を作る(R/G/Bで屈折率を1.035/1.00/0.965とずらす色収差つき)。塊どうしは距離場のsmin(多項式スムーズ最小値)で結合するため、近づくと首を作って溶け合う=メルトになり、粘性kを時間で揺らすと呼吸して見える。ポインタは6つ目の塊として振る舞い、無操作が続くとリサージュ曲線の仮想ポインタが引き継ぐのでタッチ環境でも成立する。低スペック対策は解像度スケールの二段落とし(起動直後48フレームの平均が32msを超えたらバッキングストアを0.6倍、それでも超えたらrAFを止めてCSSの静的グラデーションへ降りる)。prefers-reduced-motion時はrAFを回さず同じシェーダで静止フレームを1枚だけ描き、画面外(IntersectionObserver)とタブ非表示でも停止する。webglcontextlostは必ずpreventDefaultで握り、アンマウント時はWEBGL_lose_contextでGPUリソースを明示的に解放する(同種ブロックが並ぶ一覧ページではコンテキスト数の上限に当たるため)。テキスト・配色・構図はすべてFirst CHのオリジナル、画像素材ゼロ。屈折・メルトのシェーダーをヒーロー背景に敷き通常のDOMを上に重ねるという構造だけを着想として再構築した(外部コードの取り込みなし・2026-08-14)。