ベンチマーク:エージェント型 CAD 作業における CadQuery と OpenSCAD の比較

2026/09/13 4:57

ベンチマーク:エージェント型 CAD 作業における CadQuery と OpenSCAD の比較

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

ModelRift 研究の最も重要な見解は、3D プリンティングにおいて独立したメッシュ検査が必須であることである。OpenSCAD および CadQuery はいずれも正しく幾何形状を報告できながら、腐敗した部品を生成する可能性があるためである。無人エージェントが複雑な機械的タスク(壁ブラケット、エンクロージャー、ネジ付きアダプター)を解決したベンチマークにおいて、研究者たちは明確だが危険な故障モードを観察した。OpenSCAD は沈黙してかつ遅れて失敗し、投稿の削除やスロットの誤配置など、サイレントなブーリアン問題に起因するにもかかわらず「クリーンな」メッシュを報告することがしばしば発生する。一方、CadQuery は算術例外(例:

BRep_API
エラー)を引き起こし、水密なレポートが生成される場合でも早期かつ明確に失敗した

OpenSCAD は優れた高速性(幾何形状の再計算で約 16ms vs CadQuery の約 2s)とコンパクトなテキスト形式を提供したが、組み込みの幾何形状照会機能を欠いていた。CadQuery は検証可能性において優れており、エージェントが結果について主張したり幾何形状を問いかけたりすることを可能にするが、これにはスローランタイムおよび Python ランタイムへの依存性が伴う。重要なのは、両ツールからの自己報告は信頼できないという点である。例えば、OpenSCAD の「サイレントな誤った幾何形状」はエラーログなしに発生し、CadQuery は螺旋状の曲線に沿った正確な接ぎによりコアシリンダーがサイレントに廃棄されたにもかかわらず

valid=True
を報告する事例があった。したがって、ユーザーはツール報告やレンダラーのみを信頼することはできず、壁厚誤差のような微妙な欠陥を見逃すことが多い。将来に向けて、ModelRift はその高速性とサンドボックス化のために OpenSCAD を主要エンジンとして維持する可能性が高いが、あらゆる実行完了を宣言する前に、体積、角度、干渉に対する数値チェックなどの検証ステップを統合する必要がある。生成デザインエージェントを開発する企業は、単純な構文の利便性よりも堅牢な幾何形状照会機能を優先し、信頼性の高い生産結果を確保すべきである。

本文

ModelRift: OpenSCAD と CadQuery の対決——AI エージェントによる CAD ツール検証レポート

ModelRift では、プラットフォーム上のすべてのモデルに対して OpenSCAD を生成しています。しかし、この選択は定期的に見直す価値があります。そこで、OpenCascade B-rep コアを基盤とする Python ライブラリである CadQuery との制御された比較を実施しました。

1. 実験の問いかけ

今回の検証における問いかけは明確かつ狭いものでした:

  • 核心: 「誰も見ていない状態で、AI エージェントがどのツールを正しい、印刷可能で機能的な部品に導き出せるでしょうか?」
  • 排除事項: 手書きでの記述の快適さや、ユーザーインタフェースの良さなどは考慮外としました。

2. 環境設定

実験構成

  • エージェント数: 6 つ
  • タスク数: 3 つ
  • モデル: Claude Opus 5(1M コンテキスト)
  • 実行方法: 各セルは独立した汎用サブエージェントとして動作し、相互通信なし。1 セルに 1 エージェントずつ配置。
  • バージョン制御: Python 3.14 環境上の Mac M シリーズマシンを使用。
    • OpenSCAD:
      2026.06.12
    • CadQuery:
      2.8.0

ツールの仕込み(スキル)

  • OpenSCAD: 「openscad-skill」を使用して、QA ループ(レンダリング・インスペクション・フィックス)、CLI プレビュー用カメラプリセット、断面デバッグ、カスタマイザー構文を適用。
  • CadQuery: OpenSCAD 相当の機能を移植し、OpenSCAD のみで機能する部分は置き換えた独自のオフスクリーンレンダラーと、B-rep の有効性指標を追加。
  • 設計ルール: 両ツールとも同じ 3D プリンティングルール(壁厚、クリアランス、オーバーハング)を適用。片方から他方にアドバイスを与えることはせず、独立した検証を行いました。

検証プロセスの厳格化

  • コード制約: エージェントはバージョン数 12 を上限とし、「成功を偽装しないこと」「すべての失敗を原文のエラーメッセージと共に報告すること」が義務付けられました。
  • エージェント説明への不信: 最終的なすべての STL は、ファイルから直接読み取る独立したパーサーによって検証されました。
    • トライアングル数、バウンディングボックス、体積、気密性(Watertight)、非マニフォールドエッジ、逆転した面、連結成分などを報告。

3. 3 つのタスク

両方のエージェントは同じテキストを提示され、ツール固有の手がかりはありませんでした。

  • T1: シンプルなブラケット(ウォールマウントシェルフ用 L ブラケット)
    • 2 プレート結合、厚さ 4mm、三角継手 2 個、埋头穴 2 個、貫通穴 2 個。
    • コーナーラウンド R3/R4。サポート不要で印刷可能。
  • T2: 2 部品スナップフィットエンクロージャ
    • PCB (50x26mm) 収容用。壁厚 2mm、内部クリアランス 0.4mm。
    • M2 ポスト 4 個、USB-C カットアウト、通気スロット 5 つ。
    • 重要な要件: 両部品は密着して組み合わさる必要あり(クリアランススタックアップの正確な検証が必要)。
  • T3: 真のねじ部付きホースバーブアダプター(最も困難)
    • M24x2 ねじ、六角フランジ、実質的な螺旋状のネジ、ID 12mm ホース用バーブ。
    • 重要な要件: リングを重ねてはいけないと明言。ねじ部は真の螺旋幾何形状である必要あり(ISO ピッチへの正確な対応)。

4. 結果比較

各タスクごとの詳細指標

項目T1 OpenSCADT1 CadQueryT2 OpenSCADT2 CadQueryT3 OpenSCADT3 CadQuery
バージョン数238511
コード行数103135220266150172
ツールエラー1401101
沈黙した誤り幾何学005301
エージェント実行時間461 秒562 秒1,058 秒909 秒542 秒935 秒
トークン数77 k89 k138 k139 k82 k119 k
再計算時間12 ms1.56 秒16 ms1.93 秒43 ms1.95 秒
最終判定 (STL)OK (Clean)OK (Clean)OK (Clean)OK (Clean)OK (Clean)OK (Clean)

総計比較

  • OpenSCAD: バージョン数 11、コード行数 473、エラー 25、再計算時間 12ms
  • CadQuery: バージョン数 11、コード行数 573、エラー 4、再計算時間 1.56 秒

【重要】「OK (Clean)」の意味 これらはツールからの報告ではなく、ファイルから直接測定したものです。気密性あり、連結成分が一つ、非マニフォールドエッジ・境界エッジなし、z=0 面上にあることを指します。

5. タスクごとの分析

T1: シンプルなブラケット

  • OpenSCAD: 初回試行で正しいジオメトリをコンパイル(2 バージョンで完了)。2D プロファイルを描画して押出するため、ソリッド組み立てには関心がない特徴あり。
  • CadQuery: 実行時間の約 3 分の 1 を単一のエラーに費やしました。
    .fillet(3.0)
    BRep_API: command not done
    で失敗し、原因不明でした。エージェントは「算術的な不整合」(R3 のフィレットが 4mm 壁の中に収まらない)を人手で特定する必要がありました。

T2: 互いに適合する 2 つの部品

  • パラメータ連鎖: CadQuery はリップ深さ変更時、他の要素(リム、プレート、スロットなど)が自動で移動する良好な連鎖を示しました。OpenSCAD はカスタマイザー同等物がなく、定数ブロックをインターフェースとして依存しました。
  • 適合性の確認方法の違い:
    • OpenSCAD: 人間が読むための数値出力(
      echo
      )のみ。
    • CadQuery: ビルド停止させるアサーションを実行(
      assert
      )。
  • 沈黙した失敗: OpenSCAD では、CadQuery の 5 バージョンに対して 8 バージョンかかりました。そのうち 3 つは設計ではなく、「ブーリアン衛生(スライスや接する面から切り出された薄いスラッジを掃除すること)」に費やされました。

T3: 真のねじ部

  • OpenSCAD: 1 バージョンで完了、初回コンパイルで正解。ただしコードにはガードレールがなし。巻き付け順序が間違ってもツールは何も言いません
    • 対策: エージェントは ISO ピッチとルートの算術的な不整合を予期し、スイープされたプロファイルの位置調整を行いました。
  • CadQuery: 6 つの行で記述され、初回尝试で成功しました。しかし、最後の行での失敗が QA ループを変えました。
    • 失敗:
      union()
      でネジのルートとコア半径が一致しすぎ、コアシリンダーを「沈黙して丢弃」しました。OCCT はソリッドを丢弃しましたが、**体積測定(期待 10323 mm³ vs 実測 7065 mm³)**によって発覚。
    • 致命的な点: 壊れた部品も
      valid=True
      と報告されました。ブーリアンの許容誤差調整で負の体積を持つソリッドが生成され、これも「有効」と判定されました。

6. メッシュと検証について

以下はエージェントがエクスポートしたままの最終メッシュです(我々のクリーンアップ・修復は一切行いません)。

部品OpenSCADCadQuery
T1 シェルフブラケットSTL, 2,660 トライアングルSTL, 4,232 トライアングル
T2 エンクロージャボックスSTL, 2,944 トライアングルSTL, 14,136 トライアングル
T2 エンクロージャリッドSTL, 2,960 トライアングルSTL, 1,872 トライアングル
T3 ねじ付きアダプターSTL, 10,754 トライアングルSTL, 13,748 トライアングル

すべての部品は気密性あり、連結成分一つ、非マニフォールドエッジゼロです。トライアングル数はメッシュ密度そのものではありませんが、各エージェントが追加したラウンド詳細の量に従います(例:CadQuery のボックスは OpenSCAD にほぼ 5 倍のトライアングルを持ちますが、リッドでは少ない)。

7. 私たちの発見

レンダリングは何も重要なのを捉えませんでした

画像は粗大なミスを検出しましたが、微妙なものは何もありませんでした。失敗モードは鏡像的です:

  • CadQuery: 大きくて早期に失敗します。例外が発生して実行停止し、停止したモデルは偶然出荷できません。
  • OpenSCAD: 沈黙して遅れて失敗します。T2 では約 45 回の呼び出しでエラーも報告しましたが、削除されたポストや配置ズレのスロットを持つ破損メッシュを「クリーン」と認証しました。无人監視において、「沈黙した成功」は最も高価な失敗です。

検証可能性が重要

  • CadQuery: 自身の幾何学について質問に答えます(コーンの角度を読み取って埋头穴の仕様を証明)。
  • OpenSCAD: ジオメトリをクエリする方法がないため、バイナリ STL パーサーを書き直す必要がありました

速度は OpenSCAD に有利だがノイズ

再計算時間は OpenSCAD が 30〜100 倍高速(16ms 対 1.9 秒)。しかし、モデル推論に支配されたエージェントループ内では意味が薄いです。

OpenSCAD の「部品エッジ」の欠如

CSG 後には三角形のスープのみあり、

--view=edges
は輪郭線を描くに過ぎません。一方 CadQuery の B-rep は面と面の接合場所を知っています。視覚的反饋は不均一でした。

8. まとめ(Takeaways)

  1. 出力においてはどちらのツールも優位しません。 清潔で印刷可能な部品は双方から得られました。
  2. 決定的なのは表現力ではなく検証可能性です。 CadQuery は記述性の差よりも、アサーションによる広いマージンでこれをリードしています。「直前に構築したものを訊く」という核機能が優れています。
  3. タスクの形状がツールの影響以上に決定的です。 単純なプリズムは OpenSCAD が担当しました。適合性の必要なもの、らせんねじさえも OpenSCAD が完全に解決しました(ただし検証コストが高い)。
  4. スクリーンショットを頼りにするのは危険です。 数値的なアサーション(壁厚、クリアランス、干渉体積)が強力です。
  5. メッシュを独立して検証してください。 両方のツールチェーンとも、間違っていたと認定されたジオメトリを検証したからです。

9. ModelRift への示唆

我々は OpenSCAD を継続します。このベンチマークは OpenSCAD の理由を変更するのではなく、なぜそれが正しいのかを鋭く明らかにしました

  • OpenSCAD の強み: LLM が直接書き込むことができる緊密なテキスト形式、安全なサンドボックス環境、高速なレンダリング(16ms)。
  • CadQuery の強み: 主に検証において優位です(アサーションによるマージン)。欠点は Python ランタイム対 WASM サンドボックス、再構築の遅さなどです。

より有用な発見はフィードバックに関するものです。視覚的反饋(輪郭線)は khối 量感や比率の問題には適していますが、壁厚やブーリアン演算で静かに半分が削除されたかといった問題には数値的なアサーションが必要です。

今後の OpenSCAD スキルへの反映予定:

  1. 特徴エッジレンダラー: エージェントに実物の部品輪郭を持つプレビューを提供。
  2. 数値チェックパス: モデル完了前に壁厚、クリアランス、干渉などを監査する仕組みの追加。

注意点

  • 結果にはツールの差だけでなく、エージェントごとの変動性も含まれています(セルごとに 1 エージェント)。
  • BOSL2 は意図的に使用しませんでした。これによりライブラリ支援による性能向上を排除しました。
  • この測定は「構築のみ」であり、「壊れたモデルの修理」というより困難なスキルは計測していません。

同じ日のほかのニュース

一覧に戻る →

2026/09/13 1:25

OpenStreetMap に最初の変更を加える

## Japanese Translation: OpenStreetMap は、近隣の店舗や施設に公式ウェブサイトのタグを追加することで、有意義な貢献を誰もが求めるよう呼びかけています。この作業は 15 分以内で完了可能です。この単純な行動は、米国だけで 100 万を超える店舗が存在するにもかかわらず、アクティブなマッパーの数はそれに比べて遥かに少ないという重要なデータギャップに対処しています。既存のエントリの多くはこの不可欠なウェブ住所を欠いています。無料の JOSM エディタと、そのウェブサイトウィザードプラグインを活用することで、貢献者は不足しているタグを効率的に特定できます。単一のウェブサイトタグを追加するだけで、マッピングソフトウェアは電話番号、営業時間、メールアドレスなどの重要な詳細情報を自動的に推測でき、世界中で利用可能な多数の無料サービスへのデータ提供を強化します。著者は、シアトルのウォリングフォード地区で 1 つのチェンジセット内にて 66 の新規タグを追加するだけでその影響を実証しました。結局のところ、これらのツールの普及啓発は、誰でも無料で利用できるより完全なデジタル地図の構築に貢献します。 ## Text to translate: The original summary is high quality and well-balanced, so it does not require improvement. ## Summary: OpenStreetMap invites everyone to make a meaningful contribution by adding official website tags to nearby shops or amenities—a task achievable in under fifteen minutes. This simple action addresses a critical data gap, especially given that the U.S. alone hosts over one million shops while active mappers are far fewer; many existing entries lack these crucial web addresses. Using the free JOSM editor and its Website Wizard plugin, contributors can efficiently locate missing tags. Adding a single website tag automatically enables mapping software to infer other vital details like phone numbers, opening hours, and emails, enriching data for dozens of free services worldwide. The author demonstrated this impact by adding sixty-six new tags in Seattle's Wallingford neighborhood in one changeset. Ultimately, spreading awareness of these tools helps build a more complete digital map for everyone to use at no cost.

2026/09/13 5:25

Real-SWE:AI モデルを実際の企業コードベースでの運用におけるベンチマーク評価

## Japanese Translation: 2026年9月、新しい Real-SWE ベンチマークが、実際の企業からライセンスされた私有のリアルワールドエンタープライズコードベースにおいて、最先端 AI モデルに挑戦する。これに対し、以前の公衆インターネットデータを用いた評価では約 99% のトークンが隠されていたが、このベンチマークでは課題は孤立したサンドボックスから直接verbatim またはインスピレーションを得られた形で抽出されており、ここでは機密生産コードとビジネス結果への影響シナリオ(例:請求書、税金、移行)が含まれる。評価はモデル単体ではなく、モデルおよびハーネスの組み合わせを測定しており、エンタープライズエンジニアの実際の作業方法を反映している。解決率は、各課題につき 8 回の独立したランにわたる pass@1 の平均値として量化され、95% 信頼区間が示される。 タスクは平均して短く、中位値では約 1,742 文字であり、Terminal-Bench よりもはるかに短いが、DeepSWE や FrontierCode よりも長い。各参考ソリューションは通常、中位値で約 11 ファイルを編集する。性能には大きなばらつきがある:上位の解決率には Fable 5.1(38.8%)、GPT-6 AstraCodex CLI(33.8%)、Gemini 3.8 FlashGemini CLI(31.2%)、GLM 5.3Claude Code(28.8%)、Gro k 4.6Grok Build/Muse Spark 1.3Muse Code(23.8%)が含まれる。モデルは短いロールアウトでも苦戦する:約 71% のロールアウト(10 分未満)が失敗したのに対し、より長いロールアウトでは約 73% が失敗しており、最も一般的な失敗モードは要件の欠落であり、どのモデルもすべての課題を解決することはできない。 展開コストもモデルによって大きく異なる:選択するモデルによっては約 2.50 ドルから 6.96 ドル程度で変動し(Gemini 3.8 Flash は下限、Fable 5.1 は上限)、一部のモデルでは報告されていない高いコストが発生する可能性もある。この変化により、エンタープライズエンジニアは、標準的な公衆データベンチマークではほとんど準備がなされない制限された環境において、複雑な固有のパターンとビジネスリスクをナビゲートすることになる。

2026/09/09 10:57

Apple iPod エングレーバー(2019)

## 日本語翻訳: 2005 年、Apple のエンジニアは「iPod のパーソナライズ」ウェブページを革新し、巧妙な回避策を用いて静的フォームをインタラクティブなショッピングツールへと変換しました。このアップグレード以前には、顧客はカスタム製品を表示することなく、単なるテキスト入力を記入するしかできませんでした。これを解決するために、開発者は JavaScript を用いて JPEG 画像を切り替え、ユーザーがデバイスを実時間で視覚化できるようにする回転する iPod アニメーションを作成しました。また、ユーザーがタイプしたテキストに基づいてエンベージングオーバーレイを動的に生成する ImageMagick ソフトウェアを採用し、顧客が製品上に自分の名前が表示される様子を正確にプレビューできるようになりました。さらに、CSS クラスの切り替えによって古典的な黄色いフェード効果をシミュレートし、出荷見積もりに対する動的なフィードバックを提供しました。これらの手法は早期ブラウザ技術の深刻な制限に依存していましたが、顧客体験を向上させる能力においてほぼ魔法のように感じられました。この歴史的プロトタイプは、限られた技術的手段であっても、ウェブイノベーションが製品のカスタマイズ性を大幅に改善し、購入前のバイヤーの信頼性を高め、将来的なインタラクティブ電子商取引デザインのための基準を設定できることを証明しました。

ベンチマーク:エージェント型 CAD 作業における CadQuery と OpenSCAD の比較 | そっか~ニュース