1. はじめに
Rhino APIとは?
Rhino APIを使うことで、スクリプトやプログラムを通じてRhinoの機能を拡張し、自動化やカスタマイズが可能になります。
どんな開発が可能か
Rhino APIを活用すると、以下のような開発が可能になります。
- モデリング作業の自動化
- 独自のプラグインやスクリプトの作成
- クラウドを活用した計算処理
- Webアプリケーションとの連携
Rhino API References
Rhino および Grasshopper の API プログラマー リファレンス。
Rhino,Grasshopper関連
- 概要: Rhinoの本体やGrasshopperを直接操作するAPI群。
- 用途: プラグイン開発、スクリプト作成、パラメトリックデザインの拡張。
- 特徴: 高機能だが、Rhinoがインストールされている環境が必要。
| RhinoCommon | .NETベースの主要API |
| Rhino.Python RhinoScriptSyntax | RhinoScriptSyntax: Python用API |
| Grasshopper | Grasshopper用API |
| RhinoScript (Rhino for Windows) | Windows向けVBScript API |
| C++ API Docs (Rhino for Windows) | Windows向けC++ API |
| Eto.Forms | クロスプラットフォームUIフレームワーク |
RhinoCompute(クラウドAPI)
- 概要: Rhinoの機能をクラウド上で実行するためのAPI。
- 用途: Webアプリやクラウド環境からRhinoの計算機能を利用。
- 特徴: Rhinoをインストールせずにリモートで処理可能だが、サーバー設定が必要。
| compute_rhino3d (python client library for compute.rhino3d) | Python用クライアントライブラリ |
| compute.rhino3d.js (javascript client library for compute.rhino3d) | JavaScript用クライアントライブラリ |
rhino3dm(軽量ライブラリ)
- 概要: Rhinoの3Dデータを処理するための軽量ライブラリ。
- 用途: Rhinoのジオメトリを読み書きし、外部アプリで利用。
- 特徴: Rhinoなしで動作可能だが、高度なモデリング機能はない。
| rhino3dm functionality in .NET | .NET向け |
| rhino3dm.py (python) | Python向け |
| rhino3dm.js (javascript) | JavaScript向け |
2. Rhino APIの種類と特徴
2.1 RhinoCommon (.NET向け主要API)
RhinoCommonは、C#やVB.NETを使ってRhinoの機能を拡張するための主要なAPIです。
- 特徴
- Rhinoのほぼ全ての機能を制御可能
- Rhinoプラグインの開発に適している
- WindowsとMacの両方で動作
2.2 Rhino.Python & RhinoScriptSyntax (Python用API)
Pythonを使ってRhinoを制御するためのAPIで、スクリプトを手軽に作成できます。
- Rhino.Python
- フル機能のPython環境でRhinoを操作
- RhinoCommonを利用できる
- RhinoScriptSyntax
- RhinoScriptと似た簡単な構文で記述可能
- 初心者向け
2.3 Grasshopper API (Grasshopper用)
Grasshopperはビジュアルプログラミング環境であり、そのAPIを使ってカスタムコンポーネントやスクリプトを作成できます。
- 特徴
- C#やPythonでカスタムノードを作成可能
- Rhinoとの連携が容易
2.4 RhinoScript (Windows向けスクリプトAPI)
RhinoScriptは、Windows版Rhino向けのVBScriptベースのAPIです。
- 特徴
- 簡単なスクリプト作成が可能
- ただし、.NETやPythonのAPIに比べて機能が限定的
2.5 C++ API (Windows向け)
Windows版Rhinoでは、C++を使った高度な開発も可能です。
- 特徴
- 高速で低レベルなアクセスが可能
- Rhinoプラグインの開発に最適
- 他のAPIより学習コストが高い
2.6 Eto.Forms (UI開発向け)
Eto.Formsは、クロスプラットフォーム対応のUIフレームワークで、Rhinoのプラグイン開発で使用できます。
- 特徴
- WindowsとMacの両方で動作
- シンプルなコードでUIを作成可能
3. RhinoCompute: クラウドでの処理
RhinoComputeは、クラウド上でRhinoの計算処理を実行できるAPIです。Webアプリケーションやクラウド環境でRhinoの機能を利用する場合に適しています。
3.1 compute_rhino3d (Python向け)
Python用のクライアントライブラリで、RhinoComputeサーバーと通信して処理を実行できます。
- 特徴
- Python環境でRhinoの機能を利用可能
- クラウドベースでの計算処理を実行
3.2 compute.rhino3d.js (JavaScript向け)
JavaScript用のクライアントライブラリで、WebアプリケーションからRhinoComputeを利用できます。
- 特徴
- WebブラウザやNode.js環境で動作
- Rhinoのモデリング機能をWeb上で活用可能
4. rhino3dm: 軽量ライブラリ
rhino3dmは、Rhinoをインストールせずに3Dデータを扱うための軽量ライブラリです。Rhinoファイルの読み書きや基本的なジオメトリ操作が可能です。
4.1 rhino3dm (.NET, Python, JavaScript)
.NET、Python、JavaScriptそれぞれの環境で利用可能なライブラリです。
- 特徴
- Rhino本体がなくても動作可能
- 3Dデータの読み書きが可能
- Rhinoのフル機能は使えないが、簡単なジオメトリ操作には便利
4.2 rhino3dm.py (Python向け)
Pythonでrhino3dmを使うことで、Rhinoのジオメトリデータを簡単に扱えます。
- 用途
- Rhinoファイルの読み書き
- 3Dモデルの基本操作
4.3 rhino3dm.js (JavaScript向け)
JavaScript環境でRhinoのデータを扱うためのライブラリです。
- 用途
- Webアプリケーション上で3Dデータを処理
- Rhinoのジオメトリを可視化
5.Rhino APIの種類と特徴 比較表
| API名 | 言語 | 用途 | 特徴 | Rhino本体 必要性 |
|---|---|---|---|---|
| RhinoCommon | C#, VB.NET | Rhinoプラグイン開発 | 最も強力なAPI、Rhino内部機能をフル活用 | 必要 |
| Rhino.Python & RhinoScriptSyntax | Python | スクリプト作成 | RhinoCommonを簡単に操作できるPythonラッパー | 必要 |
| Grasshopper API | C#, VB.NET, Python | Grasshopper拡張 | Grasshopper用のカスタムコンポーネント開発 | 必要 |
| RhinoScript | VBScript | Windows向けスクリプト | Rhinoの自動化に特化、古いが簡単に使える | 必要 |
| C++ API | C++ | 高速な拡張機能 | ネイティブコードでRhinoと連携、最も低レベル | 必要 |
| Eto.Forms | C#, VB.NET, Python | UI開発 | Rhino用のクロスプラットフォームUIフレームワーク | 必要 |
| RhinoCompute | REST API | クラウド処理 | Rhinoの計算をクラウドで実行 | 不要 |
| compute_rhino3d | Python | RhinoCompute用クライアント | PythonからRhinoComputeを操作 | 不要 |
| compute.rhino3d.js | JavaScript | RhinoCompute用クライアント | WebアプリでRhinoComputeを利用 | 不要 |
| rhino3dm | .NET, Python, JavaScript | 3Dデータ処理 | Rhinoなしで3DMファイルを操作可能 | 不要 |
ポイント
- Rhino本体が必要なAPI: RhinoCommon, Rhino.Python, Grasshopper API など。
- Rhino本体が不要なAPI: RhinoCompute, rhino3dm など(クラウド・軽量ライブラリ)。
- 初心者向け: RhinoScript, Rhino.Python(シンプルで導入しやすい)。
- 上級者向け: C++ API, RhinoCommon(高速・高度な開発が可能)。
6.どのAPIを選ぶべきか?
6.1 初心者向け(簡単に試したい・スクリプト作成)
✅ Rhino.Python & RhinoScriptSyntax
- Rhino上でPythonを使って簡単にスクリプトを実行できる
- RhinoCommonの機能を手軽に利用可能
✅ RhinoScript (Windows専用)
- 簡単な自動化スクリプトを作りたい場合に便利(ただし古い)
6.2 プラグイン開発・高度なカスタマイズ
✅ RhinoCommon (.NET向け)
- Rhinoのすべての機能にアクセス可能
- C# / VB.NET で本格的なプラグイン開発が可能
✅ C++ API
- Rhinoの内部処理と直接連携できる最速のAPI
- 高速な処理や大規模なカスタマイズが必要な場合に最適
6.3 Grasshopper向け開発
✅ Grasshopper API
- Grasshopperのカスタムコンポーネントや拡張機能を開発
6.4 Webアプリ・クラウド連携
✅ RhinoCompute (クラウド計算)
- Rhino本体を持たずに計算をクラウド上で実行
- Webアプリや外部システムとRhinoを連携させたい場合
✅ compute_rhino3d (Python) / compute.rhino3d.js (JavaScript)
- RhinoComputeをPythonやJavaScriptから操作可能
6.5 3Dデータの処理・Rhinoなしで利用
✅ rhino3dm (.NET, Python, JavaScript)
- Rhinoをインストールせずに3DMファイルを操作可能
- 軽量なデータ処理やWebアプリでの活用に最適
ポイント
- 手軽にスクリプトを試す → Rhino.Python
- プラグインを作る → RhinoCommon (C#)
- Webアプリやクラウド処理 → RhinoCompute
- Rhinoなしで3Dデータを扱う → rhino3dm
まとめ:Rhino APIの選び方と本サイトの活用方針
RhinoとGrasshopperには多くのAPIがありますが、本サイトでは特にWebアプリ開発との連携を重視し、RhinoComputeと**rhino3dm(Python・JavaScript)**を活用していきます。RhinoComputeを使えば、クラウド上でRhinoの機能を実行でき、Webアプリや外部システムと連携が可能です。さらに、rhino3dmを利用することで、Rhino本体がなくても3DMファイルの操作や3Dデータの処理を行うことができます。
また、RhinocerosやGrasshopperのアプリ上で機能するRhino.Python、RhinoScriptSyntax、RhinoScript、Grasshopper APIについても触れていきます。これらを活用すれば、スクリプトを用いた自動化や、Grasshopperのカスタムコンポーネント開発が可能になります。
本サイトを通じて、RhinoのAPIを活用したWebアプリ開発やスクリプト作成の基礎を学び、効率的なデザインワークフローを実現していきましょう。