見出し画像

AIで自分の部屋を写真から3Dモデル化していたら、デジタルツインになった話

以前、自分の仕事部屋に設置している Nature Remo の環境センサー情報や、数年間記録してきた温度、湿度、照度のログを、Gemini によって可視化するダッシュボードを作成し、温暖化などの分析を行ってみました。

これはこれで便利なのですが、今度は、自分の部屋をバーチャル空間に再現し、その中に現実の部屋の環境センサー情報を表示してみたくなりました。

ということで、今回は、Gemini 3.7 Flash に自分の部屋の写真を何枚か見せて 3Dモデルを構築させ、実際に設置されている Nature Remo の環境センサーやスマートリモコンと連携する Webアプリを作ってみました。

今回作成したWebアプリの画面

最初はもう少しシンプルなものを考えていたのですが、Gemini と相談しながらいろいろ試しているうちに、視点の切替や断面表示、GLB や IFCへの書き出しまでできる、かなり「もりもり」のWebアプリになりましたw


Gemini に写真を見せて、机の幅を教える

まずは、自分の仕事部屋を 3D化するため、Gemini に室内写真を何枚か見せました。すると、寸法の基準を聞いてきたので、写真に写っている机の幅を教えると、後は Gemini が部屋や家具の大きさ、位置関係を推定しながら3Dモデルを作っていきます。

Geminiが室内写真を元に作成した3Dモデル

モデル化の方法についても Gemini から聞かれました。今回は、後でセンサーやスマートリモコンと連携する Webアプリにしたいと思っていたので、3Dモデラーなどは使わず、HTML 単独で動作するよう、three.js による 3Dモデルとして Webブラウザ上に構築しました。

three.jsで構築された私の部屋の3Dモデル

もちろん、写真だけで正確な 3Dモデルが構築できたわけではなく、寸法や形状、テクスチャのおかしいところもいくつかあったので、 Gemini と対話しながら微調整を行っています。ただ、自分では一切、手を動かしてモデリングなどは行っていません。

現実の環境をバーチャル空間に反映する

次に、Nature Remo から温度、湿度、照度の情報を取得し、Webアプリの3Dモデル上で、実際の部屋で環境センサーが置かれているのと同じ位置に、最新の環境センサーの数値をポップアップ表示するようにしました。

3Dモデル上で環境センサー情報を表示

さらに、照度については数値を表示するだけでなく、実際の部屋の照度に応じて、バーチャル空間の明るさも連動するようにしました。現実の部屋が暗くなれば バーチャル空間も暗くなり、照明をつけて明るくなればバーチャル空間側も明るくなります。

バーチャル空間から現実の照明を操作する

ここまで来ると、逆もやってみたくなります。Nature Remo の環境センサーだけでなく、スマートリモコン機能とも連携し、バーチャル空間から実際の部屋の照明を操作できるようにしました。

バーチャル空間上で照明を消すと、現実の部屋の照明も消えます。すると実際の部屋の照度も下がり、その変化を環境センサーが検知し、照度の数値が再び Webアプリ側に送られ、バーチャル空間も暗くなります。 

つまり、バーチャル空間から現実の部屋を操作し、その変化が再びバーチャル空間に返ってくる、双方向に連動する仕組みができました。

最初は、環境センサー情報を 3Dモデル上で表示してみたいと思っただけでしたが、現実の部屋とバーチャル空間が双方向につながったことで、ちょっとしたデジタルツインという感じになりました。

現実の部屋とバーチャル空間が双方向に連動

GLB形式でTwinmotionへ

せっかく 3Dモデルができたので、GLB形式で書き出せるようにしました。GLBファイルにしておけば、他の 3Dソフトでも利用できるので、試しにTwinmotion に読み込み、レンダリングしてみました。

Twinmotionでレンダリングしてる様子

Twinmotion などのビジュアライゼーションソフトでレンダリングすれば、それなりにリアルな表現にすることはできますが、写真から生成した現状の 3Dモデルでは、テクスチャやディテールが不足することがあります。

画像生成AIでフォトリアルに仕上げる

そこで、別の方法として、Webアプリ上に表示された 3Dモデルの画面を画像生成AIに渡して、フォトリアルな室内画像に仕上げてみました。

画像生成AIでフォトリアルに変換

細部まで 3Dモデルを作り込み、マテリアルや照明を設定してレンダリングするよりも、大まかな3Dモデルができているのであれば、画像生成AI で仕上げた方がコストパフォーマンスのよい場面もありそうです。

必要な環境そのものをAIと作る

今回は、Blender や Rhino のような 3Dモデラーを使わず、自分でモデリングもしていません。人間が決めたのは、基準となる寸法やWebアプリにしたいという大まかな条件だけです。

後は AI との対話を通じて、3Dモデルの作成から環境センサー、スマートリモコンとの連携、思いついた機能の追加を行いました。以前なら「何をしたいか」を考え、それに合ったアプリを選んでいましたが、今回は「何をしたいか」から始め、そのための環境自体を AI と作っていきました。

BIMedia で連載している「BIMの先にある問い」でも書きましたが、AI と対話しながら、必要な情報や処理だけでなく、その時々で必要な環境までつくっていく。今回の試みも、そんな使い方の一つなのだと思います。

AIが認識した情報をBIMへ

もう一つ、今回試している途中で気になったことがあります。AI は写真から3Dモデルを作る際、単に形状を見ているだけではなく、机、椅子、壁など、写っているものが何なのかを認識し、その意味も理解しています。

であれば、その認識と意味の理解情報を 3Dモデルの属性として利用できれば、BIMにもつながるのではないかと思い、IFC形式で書き出す機能も追加しています。この辺りの話は、次回の記事で書いてみたいと思います。


この記事を書き終えたあと、GPT-6 Astra などの最新のAIモデルがリリースされ、3Dモデリング性能の大幅な向上が話題になっています。今回のような写真からの 3Dモデル生成も、モデルの性能が上がるにつれて、より簡単に、より高精度になっていくのだと思います。

だからこそ、上記の連載記事や今回の記事でも書いているように、3D化したその先に何をするのか、あるいは、そもそも何のために3Dモデル化するのかが、これまで以上に問われるようになるのでしょうね。

いいなと思ったら応援しよう!