CADaraの紹介:オープンソースのブラウザベースCADエンジン

コンピュータ支援設計(CAD)の領域は、長らく大規模なインストールとハードウェアリソースを必要とする重量級のデスクトップアプリケーションによって支配されてきました。しかし、WebAssembly (WASM) の登場により、このパラダイムは変化しつつあり、複雑な幾何学カーネルをブラウザ内で効率的に実行することが可能になっています。CADaraは、プロフェッショナル級のCAD機能とウェブのアクセシビリティの間の溝を埋めることを目的とした、新しいオープンソースプロジェクトです。

強力な産業用カーネルとモダンなウェブスタックを組み合わせることで、CADaraは、従来のソフトウェア展開の摩擦なしに、スケッチ、押し出し、および部品のモデリングを行うためのプラットフォームを提供します。

技術的基盤

CADaraの核となる部分は、広く尊敬されているオープンソースの幾何学カーネルである OpenCascade 7.9 に基づいて構築されています。この強力なC++ライブラリをブラウザ環境で機能させるために、開発者はWebAssembly (WASM) を利用しており、これによりカーネルをネイティブに近い速度で実行できます。このアーキテクチャの選択により、B-Rep (Boundary Representation) モデリングの重い処理が、実績のあるエンジンによって処理されることが保証されます。

OpenCascadeカーネルを補完するのは、TypeScriptで書かれたカスタムスケッチソルバーです。作成者の @ttouch によると、このカスタム実装は当初の予想よりも「大幅に高速」であることが証明されており、スケッチ段階におけるリアルタイムの拘束条件解決に必要なレスポンス性能を提供しています。

現在の機能セット

現在はプレアルファ/アルファ状態にありますが、CADaraはすでに幅広い標準的なCAD操作を実装しています。ツールセットは、パラメトリックモデラーに見られるプロフェッショナルなワークフローを模倣するように設計されています。

スケッチとプリミティブ生成

  • Sketching: TypeScriptベースのソルバーを使用して2Dプロファイルを作成する機能。
  • Extrude: 2Dスケッチを3Dボリュームに押し出す機能。
  • Revolve, Sweep, and Loft: パスとプロファイルから複雑なボリュームを生成するための高度な手法。

形状の細分化と修正

  • Fillet and Chamfer: 部品ジオメトリに丸みのあるエッジや角度のある面取りを追加する機能。
  • Shell and Thicken: ソリッドボディを薄肉のシェルに変換したり、表面に厚みを追加したりする機能。
  • Boolean Operations: 複数のボディを結合、減算、または交差させて複雑な部品を作成する機能。

整理と分析

  • C-Planes: 3D空間内のスケッチを整理するための、Top、Right、およびFront平面のサポート。
  • Measurement Tools: 寸法を確認するための組み込みユーティリティ。
  • Transformations: ミラーリング、面の移動、および一般的なオブジェクトの変換ツール。

ロードマップと制限事項

プレアルファリリースとして、CADaraは機能セットを拡張する前に、安定した基盤を確立することに焦点を当てています。現在のバージョンでは、メッシュベースの操作や曲面操作のサポートが不足しています。開発者は、アプリケーションの基本安定性が確保された後、これらの機能が将来のアップデートで計画されていることを示唆しています。

コミュニティの観察

コミュニティからの初期のフィードバックでは、既存のプロフェッショナルツールの強い影響が指摘されています。具体的には、ユーザーはユーザーインターフェース要素が、主要なクラウドネイティブCADプラットフォームである OnShape に強い類似性があることを観察しています。これは、、業界標準のクラウドCADワークフローにすでに慣れているユーザーの学習曲線を低減することを目的とした設計思想を示唆しています。

コントリビューションやアルファ版のテストに興味がある方は、CADaraはオープンソースであり、GitHubで利用可能です。また、開発に関する議論のための専用のDiscordコミュニティがあります。

Sources