[Astro] #124 STEP / IGES / BREP 3D Viewer v2 — 測定機能の拡張・肉厚/勾配/曲率解析・分解図表示を実装
Three.js + occt-import-jsによるSTEP/IGES 3D Viewerのv2アップデート。マルチモード測定(距離・角度・面・パーツ体積)、肉厚/勾配/曲率の各種3D解析ヒートマップ、分解図(Explode View)機能を実装。
Three.js + occt-import-jsによるSTEP/IGES 3D Viewerのv2アップデート。マルチモード測定(距離・角度・面・パーツ体積)、肉厚/勾配/曲率の各種3D解析ヒートマップ、分解図(Explode View)機能を実装。
gdal3.js(GDAL C/C++ライブラリのEmscripten WASMビルド)をブラウザに組み込み、ドロップされたGISファイルのメタデータ表示・フォーマット変換・地図プレビューを実現。ogr2ogr/gdal_translate/gdalwarpの各APIをブラウザ内で実行し、ベクタ9形式・ラスタ6形式の相互変換とCRS再投影をサーバー不要で完結。
web-ifc WASMモジュールをブラウザに組み込み、IFCファイルのジオメトリをストリーミング処理でThree.jsメッシュに変換。IFCタイプ別の要素ツリー表示、クリックによるプロパティ参照、タイプ別ハイライト、エッジ表示、GLBエクスポート対応。完全ブラウザ完結、広告なし。
assimpjs(assimp C++ライブラリのEmscripten WASMビルド)をブラウザに組み込み、ドロップされた3Dモデルファイルをglb2形式に変換、Three.js GLTFLoaderで表示。ZIP内テクスチャ・MTL自動解決、ネイティブThree.jsローダーへのフォールバック、アニメーション再生、GLBエクスポートに対応。
reSIDとfake6502をSTANDALONE_WASMビルドし、AudioWorkletスレッド内で直接instantiateしてCommodore 64のSID音源をブラウザでリアルタイム再生。PSIDヘッダー解析、C64メモリマップ配線、50Hz playルーチン、3Voice分離波形ビジュアライザー、チップモデル切替まで実装。
reSID(MOS 6581/8580エミュレーター)とfake6502(6502 CPUエミュレーター)をEmscriptenでSTANDALONE_WASMビルドし、AudioWorkletスレッド内で直接WASMをinstantiateしてリアルタイム音声合成を実現。PSIDヘッダー解析、C64メモリマップ配線、50Hz playルーチン呼び出しまで。
OpenJPEGのWASMデコーダーとCanvas API、JSZipを用いて構築したブラウザ完結型のJPEG 2000 (.jp2) 画像コンバーター。DPR対応の高精細プレビュー、toBlobによるメモリ最適化、複数ファイルの一括ZIPダウンロード機能を実装。
occt-import-js(OpenCASCADE WASM)とThree.jsによるSTEP/IGES/BREPファイルのブラウザ完結型3Dビューア。階層ツリー表示、per-face color、テッセレーション品質調整、断面表示、2点間距離測定、GLBエクスポートまで実装。
DXFファイルのブラウザ完結型3Dビューアを構築。dxf-parserでのパース、Three.jsによるエンティティ描画、レイヤー管理、Shift-JIS自動判定、Point Cloud ViewerのDXF出力との連携まで。
C++ライブラリ(libjxl)のWASM化、EmscriptenによるSIMDフラグ指定、Web Workerでの非同期エンコード処理、そしてAstro UIからのパラメータ動的制御まで。15.16秒から1.01秒への15倍高速化とエラーハンドリングのハマりどころを解説。
WebAssemblyの基本概念、Emscriptenのビルドパイプライン、C/C++ライブラリのWASM化手順を、laz-perfカスタムビルドの実例を交えて解説。バインディング、メモリ管理、最適化まで。
IndexedDBとOPFS(SyncAccessHandle)のパフォーマンス比較ツールを開発。Web Workerでのバックグラウンド並列処理、FileSystemSyncAccessHandleを用いた同期書き込み、HTML5 Canvasによるブロック単位のレイテンシマップ可視化の実装手法を解説。