Rhino.Compute を使用すると、Rhino の幾何学計算機能をクラウド上で活用することが可能です。ただし、アプリケーションを本番環境に展開する前に、制御された環境で動作確認を行い、すべてが正常に動作することを確かめる必要があります。
この記事では、Windows に精通し、Visual Studio と Git の基本的な知識を持つ開発者を対象としています。Rhino の経験豊富なユーザーでも、Rhino.Compute を初めて使用する方でも、この記事を通じて、開発環境をセットアップし、Rhino.Computeを起動する方法を学ぶことができます。
前提条件
ローカル マシンで Rhino.Compute のセットアップを始める前に、適切なツールがあることを確認する必要があります。必要なものは次のとおりです。
- Windows オペレーティング システム。Rhino.Compute は Windows でのみ実行されます。
- 開発環境。コードをコンパイルするにはVisual Studio 2022必要です。
- バージョン管理。compute.rhino3dリポジトリのクローンを作成し、Rhino のバージョンに応じてブランチを管理するには、Gitが必要です。
- Rhino。最新のRhino 8またはRhino 7ビルドを入手するには、ダウンロード ページにアクセスしてください。ダウンロードしてインストールしたら、Rhino を起動し、起動時の指示に従って、マシン上または Cloud Zoo を通じてライセンスを検証してください。
リポジトリをクローン
Rhino.Compute の最新バージョンを入手するには、Github の公式アカウントからリポジトリをクローンする必要があります。
- https://github.com/mcneel/compute.rhino3dにアクセスしてください。
- ブランチのドロップダウン メニューから、クローンする 8.x または 7.x ブランチのいずれかを選択してください。
- そこに到達したら、緑色のボタン「<> コード」をクリックし、リポジトリの URL をコピーします。
Rhino.ComputeはGitHubからurlをコピーし、以下のコードをTest/backend/ディレクトリで実行し配置します。(今回はTestというプロジェクトを想定して構築していきます。)
mkdir Test
cd Test
git clone https://github.com/mcneel/compute.rhino3d.git

ソリューションについて
Rhino.Compute リポジトリは 2 つのメイン プロジェクトで構成されており、それぞれがフレームワーク内で異なる目的を果たします。これらを理解することで、Rhino.Compute の動作を明確にすることができます。特に、Rhino.Compute の開発に携わったり貢献したりしたいと考えている場合は、そのことが役立ちます。2 つのプロジェクトの詳細は次のとおりです。
compute.geometry
このプロジェクトは、主に幾何学計算の側面に焦点を当てています。本質的に、compute.geometry は、Rhino のジオメトリ エンジンを Web 上で使用できるように公開する REST API を提供します。つまり、幾何学的操作をサーバー上で実行し、結果をリモートで取得できるため、複雑な幾何学的処理を必要とする Web ベースのアプリケーションやサービスに非常に役立ちます。
rhino.compute
このプロジェクトは、compute.geometry API への呼び出しを管理および調整する、より高レベルのサービス レイヤーと考えることができます。認証、子プロセスの生成、シャットダウン プロセスの時間制限の設定などのタスクを処理します。
ソリューションをコンパイル
コードが用意できたので、Visual Studio 2022 でプロジェクトを開き、デバッグの準備をします。
- リポジトリをクローンしたディレクトリに移動し、compute.slnファイルを見つけます。それをダブルクリックして、Visual Studio 2022 でプロジェクトを開きます。
- ソリューション構成をデバッグモードに設定します。これにより、完全なデバッグ機能を使用してコードを実行できるようになり、コードのトレースとエラーの検出が容易になります。

[ビルド] -> [ソリューションのビルド] (Ctrl + Shift + B) をクリックします。これにより、すべてのプロジェクト ファイルがコンパイルされます。



ソリューション エクスプローラー パネルで、 rhino.computeプロジェクトを右クリックし、[スタートアップ プロジェクトとして設定]を選択します。これにより、デバッガーを実行すると、Visual Studio がこの特定のプロジェクトを起動するようになります。

rhino.computeをクリックして、デバッガーでアプリケーションを起動します。タスク バーにコンソール アプリケーションが表示され、Rhino.Compute の読み込みプロセスのステータスが表示されます
visual studioを閉じます。cmdを開いてプロジェクトのパスに移動し、dotnet runを実行します。
cd compute.rhino3d
cd src
cd rhino.compute
dotnet run

このエラーは、dotnet run コマンドで rhino.compute アプリケーションを起動しようとした際に、必要な .NET ランタイム (バージョン 7.0.0) がインストールされていないために発生しています。
警告: ターゲット フレームワーク 'net7.0' はサポートされていません
- 原因:
rhino.computeが.NET 7.0フレームワークをターゲットにしているが、現在使用している .NET SDK (9.0.101) は.NET 7.0を非推奨として警告を表示しています。.NET 7.0のサポートは終了しており、セキュリティ更新などが提供されません。
すでに.NET8 SDKをインストールしてあるので、以下のフレームワークが見つかりましたと帰ってきています。次の手順で.NET 8にターゲットフレームワークを設定します。
The following frameworks were found:
8.0.11 at [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
9.0.0 at [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
ローカルの .NET 環境を確認
dotnet --list-sdksコマンドでインストール済みの SDK を確認。dotnet --list-runtimesコマンドでインストール済みのランタイムを確認。

.NET 8 SDK と Rhino.Compute のセットアップ
.NET 8 SDK のインストール
RhinoComputeを動作させるために、.NET 8 SDKをインストールします。※インストールしていない場合
公式サイトからダウンロードし、インストール後に以下のコマンドでインストールが成功したことを確認します。
dotnet --version
.NET8のバージョンを使用するように設定
rhino.compute.csprojを修正し、.NET 8のバージョンを使用するように設定します。
rhino.compute.csprojを修正
以下はrhino.compute.csproj
\000-Rhino-Compute-Tutorial\compute.rhino3d\src\rhino.compute
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<RuntimeFrameworkVersion>8.0.11</RuntimeFrameworkVersion>
<AssemblyName>rhino.compute</AssemblyName>
<OutputType>Exe</OutputType>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<RollForward>LatestMinor</RollForward>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<ApplicationIcon>favicon.ico</ApplicationIcon>
<IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled>
<SelfContained>True</SelfContained>
<PublishTrimmed>False</PublishTrimmed>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
<OutputPath>..\bin\Debug\$(AssemblyName)</OutputPath>
<DefineConstants>TRACE;RHINO_COMPUTE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<OutputPath>..\bin\Release\$(AssemblyName)</OutputPath>
<DefineConstants>TRACE;RHINO_COMPUTE</DefineConstants>
<PublishDir>..\dist\$(AssemblyName)</PublishDir>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Carter" Version="7.0.0" />
<PackageReference Include="CommandLineParser" Version="2.9.1" />
<PackageReference Include="Serilog.AspNetCore" Version="6.1.0" />
<PackageReference Include="Serilog.Enrichers.Environment" Version="2.2.0" />
<PackageReference Include="Serilog.Exceptions" Version="8.4.0" />
<PackageReference Include="Serilog.Expressions" Version="3.4.1" />
<PackageReference Include="Serilog.Settings.Configuration" Version="3.4.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="4.1.0" />
<PackageReference Include="System.Drawing.Common" Version="8.0.0" />
<PackageReference Include="System.Net.Http" Version="4.3.4" />
</ItemGroup>
</Project>

強制的に .NET 8.0 で実行する
プロジェクトが .NET 7.0 を要求する場合、DOTNET_ROLL_FORWARD 環境変数を設定して、.NET 8.0 を使用させる方法があります。
以下のコマンドを実行して、アプリケーション実行時に環境変数を設定
set DOTNET_ROLL_FORWARD=Majordotnet run
DOTNET_ROLL_FORWARD=Major を設定すると、要求されたバージョンが見つからない場合に上位のメジャーバージョン(この場合は .NET 8.0)を使用します。


エンドポイントをテスト
Rhino.Compute コンソール アプリケーションを実行している状態で、これらのエンドポイントのいずれかを参照して、すべてが動作していることを確認します。
- http://localhost:6500/バージョン
- http://localhost:6500/ヘルスチェック
- http://localhost:6500/activechildren
- http://localhost:6500/sdk




お疲れさまでした
上記のようにブラウザ上で表示されていればRhino.Computeをローカル環境で起動することができています。