製作記録:<form, given>
生成AIで出力した3DモデルをUnity空間内で展示した作品を製作しました。
私がプロンプトを考えて生成したもの
AIが独自に考えて生成したもの
私とAIが共作したもの
なにが創作なのか、どこまでが創作なのか
製作者も鑑賞者も、そのような問いを持っているように思います。
ポートフォリオサイトを作った話
タイトルのとおり「ポートフォリオサイトを作った話」ですが、私が作ったわけではなく、全部AIに作ってもらいました。 正真正銘一行もコードを書いていませんし、なんなら生成されたコードも読んでいません。
これじゃあ「作ってもらった話」ですね。
完成品はこちら。
モチベーション
- 各種SNSに投げ散らかしていた映像作品をまとめたい
- AIを使ったコーディングを試してみたい
これまでもChatGPTなどにコードを生成してもらったことはあったけれど、エディタに組み込んでAI主導で実装したことは無かったです。 折よく?私はWebはほとんど初心者です。
FlutterもDartもなにも分かりません。
はたして無事に完成するのでしょうか??
AIとのやりとり
まずはChatGPT(以下、チャッピー)にやりたいことを投げてみました。 最初に知りたかったのはシステム構成で、Webサイトを公開するための運用コストが知りたかったのです。
チャッピーいわく、動画をYoutubeに置いて埋め込む構成なら、ほぼ無料で公開できるということでした。
続いて環境構築はWSLで。 CodexはLinuxに最適化されているみたいで、WSLで進めたら、いつもハマる環境構築も一瞬で完了。
実装も最初のプロンプト1発で動くサイトが出てきました。 見た目を変更するやり取りを続けましたが、「このサイトみたいにしたい」「フォントがダサい」とか言うだけでした。
ハマったポイント
要件にない部分の挙動
細かいところでバグっているところはけっこうありました。 現状だと完全にお任せだとダメそうです。
ちゃんとした要件定義を書いたらなんとかなるのかな?
自信満々で誤った設定方法を伝えてきた点
出来上がったWebサイトを公開する際のDNSの設定がずっと成功しませんでした。 結果的にはチャッピーが自信満々に教えてくれていた設定方法が間違っていました。
ポエム
最初はFlutter/Dartの勉強をしようと思っていたのですが、わずか1週間ほどで勉強する間もなく出来上がってしまいました。
自分のサイトが出来て嬉しい気持ちはありますが、自主製作の楽しさみたいのはあまり感じませんでした。
自分が設計・プログラミングしたものが動くのが楽しいのに、そこはAIがやって、自分は動作確認のみっていう、楽しいところをAIにとられてしまったような気持ち。
もうAIが無い世界に戻ることもないので引き続き使っていこうと思いますが、プログラミングを楽しむことも続けたいなと思っています。
楽しむためのプログラミングって、なんだか自動車のマニュアル運転に似ている気がします。
オートマチックや自動運転では得られない運転の楽しみみたいな。
GausianSplatting+WSL2+自前データで学習を回す
環境構築に続いて、自前データで学習を回す(出力結果を得る)手順です。
Gaussian Splattingは、COLMAPで推定されたカメラ情報と点群を入力として利用します。
必要なファイルは以下の4つです:
cameras.bin images.bin points3D.bin database.db
これらは COLMAPのStructure-from-Motion(SfM)処理によって生成されます。
作業の流れ
参考文献
事前準備
ffmpegのインストール
こちらを参照。
COLMAPのWindowsのインストール
COLMAP.bat を実行するとGUIが起動します。
1. 動画を撮影
まずは狭い範囲で試すのがいいらしいです。
テーブルの上とかに適当なオブジェクトを置いて、ぐるりと撮影する感じ。
いろいろな注意点は参考文献 の「※トレーニング結果のクオリティ向上」を参照。
入力データを以下のように配置することとします。
data/DATA01/input.mp4
2. ffmpegで動画をフレーム画像に分解・リサイズ
動画ファイルをフレームごとに画像に変換します。
mkdir images ffmpeg -i input.mp4 -vf "fps=2,scale=1280:-1" images/images_%04d.jpg
fps=2→ 1秒あたり2フレーム抽出(多すぎると重い)scale=1280:-1→ 幅1280pxにリサイズ
出力例:
data/DATA01/images/ ├── images_0001.jpg ├── images_0002.jpg └── ...
3. COLMAPでSfM処理&歪補正
3.1 Database作成とFeature Extraction
- COLMAP GUIを起動
- メニュー:File → New Project
- 「Database Path」と「Image Path」を指定
(例:data/DATA01/database.db,data/DATA01/images) - メニュー:Processing -> Feature Extraction
- Shared for all images にチェック
- first_octave を0に変更
- Extract ボタンを押下
- 処理中のポップアップが閉じたら完了なので、ウィンドウを閉じる

3.2 Feature Matching
- メニュー:Processing → Feature Matching
- ExhaustiveタブでRunボタンを押下
- 処理中のポップアップが閉じたら完了なので、ウィンドウを閉じる
3.3 Sparse Reconstruction(構造推定)
- メニュー:Reconstruction → Reconstruction Optionを押下
- multiple_modelsのチェックを外す
- メニュー:Reconstruction → Start Reconstruction
- 結果出力用のディレクトリ(data/DATA01/sparse/0)を作成する
- メニュー:File → Export models で4.のディレクトリを指定する
- 完了後、
cameras.bin,images.bin,points3D.binが生成される

3.4 歪み補正
- 出力先ディレクトリとして新たにundistortedを作成する
- メニュー:Extras → Undistortion
- output_pathにdata/DATA01/undistorted指定
- Undistortボタンを押下
- 実行後、以下のようなディレクトリ構造になる
data/DATA01/undistorted/ ├── images/ ├── sparse/ │ ├── cameras.bin │ ├── images.bin │ └── points3D.bin
data/DATA01/undistorted/ ├── images/ ├── sparse/ │ └── 0 │ ├── cameras.bin │ ├── images.bin │ └── points3D.bin
4. Gaussian Splattingで学習実行
python train.py -s data/DATA01/undistorted
以下のようなログ出力され学習が始まる。
処理が完了すると「./output/4ca2a15a-2」に結果が格納される。
Optimizing Output folder: ./output/4ca2a15a-2 [03/11 17:27:13]
結果フォルダの中にある point_cloud.ply がお目当てのもの。

Gausian Splatting + WSL2
必要になってきたので遅ればせながらGausianSplatting環境を構築しましたので、手順メモを残します。
本家や参考文献を見ているとWindowsで構築できそうに思えたのですが、PyTorch周りがまったく上手くいかず、似たような症例の人も多いみたいです。
結局それは解消できず、試しにWSL2で構築したら、だいぶ手軽でした。
開発環境
- OS : Windows11
- GPU : RTX3080 note
参考文献
WSL用のCUDAツールキットをセットアップ
# パッケージリスト更新 sudo apt update sudo apt install -y wget gnupg # NVIDIA CUDAリポジトリを登録 wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt-get update # CUDA Toolkit 11.8をインストール sudo apt-get install -y cuda-toolkit-11-8 # パスを追加 echo 'export PATH=/usr/local/cuda-11.8/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc
以下が成功すればOK。
nvcc --version nvidia-smi
Minicondaを導入
# WSL上で実行 cd /tmp wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh source ~/.bashrc
Gaussian Splatting環境の作成
git clone https://github.com/graphdeco-inria/gaussian-splatting.git cd gaussian-splatting git submodule update --init --recursive
conda create -n gaussian_splatting python=3.8 conda activate gaussian_splatting conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia -y conda install -c conda-forge plyfile tqdm ninja opencv joblib -y
サブモジュールのビルド
# diff-gaussian-rasterization cd submodules/diff-gaussian-rasterization pip install . # simple-knn cd ../simple-knn pip install . # fused-ssim cd ../fused-ssim pip install . # 戻る cd ../../
PyTorchの動作確認
Trueが表示されればOK。
python -c "import torch; print(torch.cuda.is_available())"
テスト
テストデータのダウンロード
本家からダウンロードしてくる。 tandt_db.zip を展開して、GausianSplatting配下に置く。

$ ls data/tandt_db/ db tandt
学習の実行
$ python train.py -s data/tandt_db/tandt/train/ -m ./output/tandt
自分の環境だと15分くらい。 以下に結果が出力され、point_cloud.pyが所望のデータ。
$ ls output/tandt/point_cloud iteration_30000 iteration_7000 $ ls output/tandt/point_cloud/iteration_30000/ point_cloud.ply
結果の確認には SuperSplat が手軽でした。
ブラウザにpoint_cloud.plyをDrag&Dropするだけで描画される。
描画直後は青い点(法線らしい)が描画されていて見難いので、右側の「Splatの表示/非表示」ボタンを押すと非表示になる。

自前データで学習 編に続く。
買ったモデル(FBX)がTouchDesignerで色が変だった話
結論から言うと頂点カラーが付いていたためでした。
AttributeSOPでCdを削除したら本来の見栄えになりました。
以下、順に説明します。
こちらが購入したモデルの本来の見栄え。
Blenderでは以下のように見えていました。

しかし、購入したモデルをそのままTouchDesignerにImportしたら、以下のように色が変でした。

見ていくとSOPの段階で色が付いている。

AI様に聞いてみるとAttributeが設定されているのでは?ということで、その通りでした。

AttributeSOPで削除すると見覚えのある色味に。

これで期待通りの見栄えになりました。

おしまい。
Hunyuan3Dを使ってみた話
3Dモデルの生成が進化していて、なかでもオープンソースであるHunyuan3Dはローカル環境で生成できるということで、試してみました。
以下、環境構築メモ(2025/09/23)です。
Windows向けです。。
参考
Hunyuan3Dについて
Hunyuan 3Dは、中国Tencent社が開発・公開した完全オープンソースの3Dモデル生成AIであり、画像やテキストから高品質な3Dアセットを自動生成できるAIモデルです。
Hugging Faceでお試しでモデル生成ができます。
https://huggingface.co/spaces/tencent/Hunyuan3D-2.1
ローカル環境構築手順
こちらのWindows向けポータブルパッケージを利用するのが簡単ということでした。
本家のブランチよりは若干古い(2025/09現在、2.5がリリースされている時点で2.1まで対応(2.1の次が2.5))ですが、継続的にアップデートされていました。
ダウンロード
リリースページからファイルをダウンロードします。
私が作業したときは001と002の二つのファイルに分割されていたのですが、両方ダウンロードが必要です。
CUDA12.9向けと12.6向けがあるのですが、readmeに記載のとおりGPUに依存するようなので、お手持ちのグラボを確認して対応するものをDLしてください。
解凍
ダウンロードしたファイルを同じフォルダに置いて、001.7zを解凍します。
例:
C:\work\hunyuan
- Hunyuan3D2_WinPortable_cu129.7z.001
- Hunyuan3D2_WinPortable_cu129.7z.002
7-zipは分割されているファイルをまとめて解凍してくれるので、002.7zは自動で解凍されます。
解凍が完了すると以下のようなフォルダが出来るはずです。
C:\work\hunyuan
- Hunyuan3D2_WinPortable
CUDAのインストール / アップデート
readmeによると、12.9向けと書いてありますが、12.9以降であればどれでも大丈夫とのことです。
環境構築はこれだけでOK。
実行手順
RUN.batを実行すると、Hunyuan3DのLauncherが起動します。

Program Parametrタブを開き、起動オプションを選択します。
「Select Program」によってバージョンや質(それに伴うVRAMの量)を選ぶことができ、それ以降のパラメタは選択したProgramによって変わります。
ただ、だいたいは「Texture生成の利用有無」、「Text2Imageの利用有無」、「質と速度、VRAMの量」のような感じです。
まだ使い込んでいないのでどれがいいとかは分からないですが、私は以下の設定で使っています。
- Select Program : Hunyuan 3D 2.0 | Comprehensive Features
- Enable Texture Generation : Yes
- Model Selection : Single-view Input
- Use Turbo Model : Yes
- Enable Text-to-3D : No
- VRAM Optimization Level : 4-Low Memory, Low VRAM
この設定はlauncher_config.jsonに保存されるようです。
設定が完了したらSave&Startボタンを押下。
初回実行時はモデルやらなにやら色々とDLされるので結構時間がかかります。
自分の場合は1時間くらいかかった気がします。
問題が無ければ「Uvicorn running on http://0.0.0.0:8080」と表示されます。
ブラウザでアクセスすれば無事起動。

試した鮨のモデルで生成時間は1分弱。
(グラボ:3080note)

生成したモデルはglb,obj,stl,plyでExport可能で、以下のフォルダに出力されています。
Hunyuan3D2_WinPortable\Hunyuan3D-2\gradio_cache

おしまい。
/L/Rock You
Title: /L/Rock You (Insta Killer no.3)
Title: /L/Rock You
— Shampagne (@Shampedelica) September 2, 2025
人生で初めて白いタンクトップを購入しました。 pic.twitter.com/dcz5GAiEkv
message(en)
QUEEN’s “We Will Rock You” has inspired countless people over the years.
This work empowers viewers through dynamic visuals and music, encouraging them to move their bodies in front of the camera and feel invigorated.
It aims to help individuals push forward with their own identities and impulses, without being constrained by evaluation or the opinions of others.
However, when a viewer points a smartphone at this piece, their head is visually “locked” inside a heart shape.
This serves as a warning about modern tendencies where social media restricts thought and self-expression, sometimes suppressing true individuality.
Rather than affirming a “locked” head, this work celebrates bodies and souls that “rock” freely.
message(jp)
QUEENの「We Will Rock You」は、これまでに数多くの人々を奮い立たせてきました。
本作品は鑑賞者がカメラの前で身体を動かすことで、映像と音楽により鑑賞者自身を力強く鼓舞します。 評価や他者の目に縛られず、自らの存在や衝動をまっすぐに推進できるように。
一方、この作品にスマートフォンを向けると、鑑賞者の頭部はハートに“Lock”されます。 これは、SNSが人々の思考や自己表現を制限し、ときに「自分らしさ」を抑圧してしまう現代的心性への警鐘でもあります。
本作は「Lock」された頭ではなく、「Rock」する体と魂を肯定します。
teck
dlib:顔検出 https://dlib.net/
YOLO:物体検出
https://docs.ultralytics.com/背景差分法:身体の動きの有無の検出
personal note
人生で初めて白いタンクトップを購入しました。