PolyScript

3Dモデルを簡潔なコードで記述するパラメトリックCAD言語。
box 40 30 10 | fillet 2 | faces top | hole 5
✎ Edit

単純な形状をパイプ | でつないで、形を仕上げる。それだけです。

PolyScriptとは

PolyScriptは3Dモデルを簡潔なコードで記述するパラメトリックCAD言語です。 OpenCascadeをカーネルとし、より簡単により安全に3Dモデリングできるよう設計しました。

簡潔で自由度の高い構文

  • 簡潔なDSL – 関数呼び出しにカッコが要らない。box 80 60 10 と書ける
  • パイプライン | – 操作を左から右へ一直線に並べる。読む順番 = 実行順
  • 宣言的モデリング – 「作る → 選ぶ → 加工する」を宣言的に記述。
  • 共有可能 – 部品の共有を容易にし、ブラウザーでも安全に実行できる
# ケースを作って、角を丸め、側面に穴を開ける
box 100 60 40
 | faces >Z | shell 2
 | edges =Z | fillet 3
 | faces right | circle 4 | cut
✎ Edit

3Dプリンティング、DIY、教育に

PolyScriptは次のような場面に向いています。

  • 3Dプリンティング – パラメータを変えるだけで寸法違いのパーツを量産できる
  • DIY / メイカー – ケース、ブラケット、治具など実用部品を素早く設計
  • 教育 – プログラミング未経験でも始められるシンプルな構文。子どもから大人まで

特徴

  • 短く書ける — よく使う操作にカッコは要らない
  • 左から右へ読める — パイプで操作が流れる
  • パラメトリック — 変数と関数で寸法を自在に変える
  • ブラウザで動く — サンドボックスで安全に実行

試してみる

PolyScript Playground でブラウザからすぐに使えます。インストール不要です。

ドキュメント

なぜPolyScriptを作ったか

3Dモデルをコード記述するパラメトリックCADは、AIの発展と共に注目を集めています。 なかでも CadQuery はとても優れたCAD処理系で、あらゆる形状をPythonでプログラミングできます。

しかし「プログラミング言語である」こと自体が弱点にもなります。 他者が作成した3Dモデルを、安心して実行できません。 私たちの成果を安全に共有するには、絶対にDSLが必要です。

プログラミングの知識がない子どもでも簡単に使えること―― これがPolyScriptの設計コンセプトです。

謝辞

PolyScriptは多くの優れたオープンソースプロジェクトの上に成り立っています。

  • Open CASCADE Technology — PolyScriptの3Dカーネルとして採用している強力なB-Repモデリングエンジン。ブーリアン演算からフィレット、STEPエクスポートまで、形状処理の中核を担っています。
  • OpenSCAD — 「コードで3Dモデルを書く」という文化を切り拓いたパイオニア。PolyScriptの出発点です。
  • CadQuery — Pythonによる洗練されたパラメトリックCAD API。PolyScriptのPython実装ではcadqueryのOCPバインディングを利用しており、パイプライン構文に大きな影響を受けました。

これらのプロジェクトと、それぞれのコミュニティに深く感謝します。


はじめに

基本の考え方と最初のモデル。

チュートリアル

手を動かして3つのモデルを作る。

構文リファレンス

全操作の詳細。

チートシート

手元に置く早見表。