low_polygon は、コーディングエージェントに 3D モデリングを学ばせる ためのリポジトリです。
エージェントは、Blender を Python(bpy)で動かすスクリプトを書いて、毎日ゲーム向けの軽いモデルを 1 つ作ります。作るたびに反省を書き、次にも通用することを教訓としてリポジトリにためていきます。最後は、この教訓を 3D モデリングのスキルにまとめて、エージェントがいつでも使えるようにする のが狙いです。
なので、作業はずっとエージェントにさせています。50 コミットのうち 48 はエージェントの名前です。私は目標と決まりを README に書き、できたものを見て直してほしい所を伝えています。その指摘も、毎日の反省に残っています。
2026-10-14 に 1 日目のりんごを作り、いまは 12 日目の「頭蓋骨」まで進んでいます。
何を目指しているか
作るものの目標は、目標イメージ(夕暮れの霧の谷で、巨人の肋骨の下に村がある絵)の世界を、ゲームで使える 3D で作り上げることです。中心は人型のキャラクターと動物です。
名前は low_polygon ですが、ポリゴンを減らすこと自体は目的にしていません。基準は ゲームで重くならないこと で、小物は 300〜2,000 三角形、デフォルメの動物は 3,000〜15,000 のように予算を決め、輪郭を変えない凹凸はテクスチャで表します。
1 日の流れ
- 解剖学か幾何学を 1 つ勉強して、ノートを書く
- これまでの教訓(
LEARNINGS.md)を全部読む - 参考写真を集め、写真から「実物の特徴」を 5 つ以上書き出す
build.pyでモデルを作り、レンダと写真を並べたcompare.pngで照らし合わせる- 質感を塗り、当たり判定とボーンを入れて glb・fbx に書き出す
- その日のモデルが主役の短い動画を作る
- 反省を書き、次にも通用するものを教訓に足す
特徴がすべて再現できて、自己採点が 10 点中 8 点以上 なら合格です。作り直しは 1 日 8 回まで。届かなければ、翌日はまず前日の作品を仕上げ直します。
お題の変化
| Day | もの | テーマ | 三角形 | 総合 |
|---|---|---|---|---|
| 001 | りんご | 果物と野菜 | 724 | 8.0 |
| 002 | にんじん | 果物と野菜 | 3,414 | 8.0 |
| 003 | なす | 果物と野菜 | 1,664 | 8.0 |
| 004 | 木の器(金継ぎ) | 道具と小物 | 1,680 | 8.0 |
| 005 | 吊るす多面体の灯 | 道具と小物 | 2,246 | 8.0 |
| 006 | 苔むした石碑 | 道具と小物 | 1,136 | 8.2 |
| 007 | ワタリガラス | デフォルメ動物 | 2,190 | 8.0 |
| 008 | リス | デフォルメ動物 | 5,570 | 8.0 |
| 009 | うさぎ | デフォルメ動物 | 9,064 | 8.0 |
| 010 | 手 | 体の部品 | 7,048 | 8.0 |
| 011 | 足 | 体の部品 | 7,816 | 7.8 → 8.0 |
| 012 | 頭蓋骨 | 体の部品 | 4,882 | 7.5 |
りんごは回転体でしたが、手と足は四角形だけのメッシュで、細部を載せたハイポリからノーマルマップを焼いています。手は最初 7.5 点で、11 日目に仕上げ直して 8.0 になりました。足は 7.8 点で止まっていましたが、12 日目に仕上げ直して 8.0 になりました。

反省から出たこと
教訓には番号を付けていて、いまは L117 まであります。
- 丸いところは必ずスムーズにする(L010)。 りんごの 3 回目で自分が伝えたことです。いまは
lp.smoothという関数になっています。 - 村の尺度は実寸の 5.5 倍(L054)。 動画に木の器を実寸の倍率で入れたら、りんごの半分の豆皿になりました。
- 字幕の区間は重ねない(L102)。 9 話目で字幕が 1 秒重なって崩れ、37 分の描画をやり直しました。
- 趾(あしゆび)が指に見えるのは、長い・開いている・先が尖る・爪が大きいとき(L107)。 足の 1 回目は、趾が手の指のように見えました。
共通化したもの
何度も使う処理は lib/ の関数にしています。形の lp.py、塗りの paint.py、当たり判定とボーンの game.py、動画の film.py などです。
たとえば lp.nail_shell は爪を作る関数で、手の爪を何度も作り直したときの失敗が入っています。細部を載せたハイポリに沿わせると皮膚が爪を突き抜ける、面の多角形がそのまま出ると爪のつやがまだらになる、指先の丸みに沿わせると先の真ん中が沈む、幅が一定だと四角いシールに見える。この 4 つを避ける形で、実際に描く面に沿わせた厚みのある殻を作ります。

11 日目には、手の作り方を lp.ring や lp.loft に、肌の塗りを sp.skin_layers に出しました。足の反省には「足の塗りは 3 行で済んだ」と書いてあります。
連続ストーリーの動画
毎日、その日の作品が主役の 6〜12 秒の動画も作っています。「ポリ村だより」という続き物で、何もない草原に毎日ひとつずつ物や生き物がやって来て、村ができていく話です。舞台は北欧神話をもとにした「はかり野」で、巨人の骨の大地という設定です。
STORY.md に「村の地図」があり、一度来た物は次の話でも同じ場所・向き・倍率で置きます。過去の作品は各日の model.blend から読み込みます。描画は 1 フレーム 5 秒ほどかかるので、先に数カットだけ試し描きして、構図やめり込みを確かめます。
1 話目「最初の実り」は、りんごが転がってきて、にんじんが跳ねながら隣に並ぶ 9 秒でした。10 話目「巨人の足」では、石の手の拳にとまっていたワタリガラスが、霧の中に立つ巨大な石の足へ飛び移ります。
解剖学ノートとの組み合わせ
勉強ノートは STUDY/ にあり、解剖学が 5 本、幾何学が 4 本です。形を目分量で決めないように、教科書や公的な計測データを根拠にし、原典を見たかどうかも書きます。
足のノート(STUDY/anatomy/005)では、Gray の解剖学(1918 年)でアーチの位置を確かめ、人体計測データ ANSUR II の公開 CSV から足の寸法を集計しました。足幅は足長の 0.376、内側のアーチの頂は足首の真下、という値をそのまま build.py に使っています。

学んだ体の部品は物語にも出てきます。手と足は動画では 12 倍にして花崗岩と苔に差し替え、霧の野に横たわる石の手と、すねの途中で折れて立つ石の足になりました。

これから
次の Day013 は、まず頭蓋骨を 8 点に仕上げ直します。そのあとは、耳か顔を予定しています。
教訓は L117 までたまりました。同じ失敗を 2 回しないために毎日読み直しているものですが、これがそのまま、エージェントに 3D モデリングを教える材料になります。もう少しお題を重ねて、スキルの形にまとめるつもりです。
更新(2026-10-25)
12 日目の頭蓋骨と、動画の 11 話目が出ました。上の本文の「いまは 11 日目」と「これから」を直しています。

- 頭蓋骨は 7.5 点で、合格には届きませんでした。 8 回の作り直しのうち 4 回を、眼窩(目のくぼみ)の縁にできた黒い裂け目と、暗がりのマスクの修正に使っています。次の日にまず仕上げ直します。三角形は 4,882 です。
- 形は半径の関数で決めました。 楕円体と超楕円体にこぶを足した式で、資料の値をそのまま半径に書けます。眼窩と鼻の穴は、区画を同心の輪に置き換えて開けていて、輪の頂点は 20 と 14 です(L110)。
- 縫合線は UV に描きました。 経緯度の UV に、3D の折れ線で指定した縫合線をマスクとして描いています(
lib/mask.py、L111)。 - 根拠の数字は自分で集計しました。 ノート(
STUDY/anatomy/006)では、頭蓋の計測データ Howells の 2,524 体を集計し、頭の長さと幅の比(長幅示数)が 75.3 になることを確かめて、build.pyに使っています。 - 足は 8.0 になりました。 脛骨の前縁の稜と腓腹筋、足の裏の黄みと曲げじわを足して、仕上げ直しています。
11 話目「沈んだ頭蓋」では、霧の野の丘だと思っていたものが、半ば土に沈んだ巨人の頭蓋だったという話です。石の足の母趾にとまっていたワタリガラスが飛んで、眉の上にとまります。