DINO MEAT LAB / TECHNICAL NOTES

恐竜肉研究所
技術ノート

恐竜肉研究所・恐竜肉ステーキハウス・恐竜血統図の数字と形が、どのファイルから、どう作られているかの記録です。このページの数字はすべて dino/lab/data.json(dino/lab/build.py が元のファイルから計算したもの)から差し込んでいて、手で書いた数字はありません。

著者:山本 覚(Satoru Yamamoto)・aTELiER FACTORY 公開:2026 年 10 月 4 日 論文原稿 v10(査読前・未公開。DOI はまだありません)

1ファイルの地図と作り直しの順番

3 つのページ(研究所・ステーキハウス・血統図)は、下のファイルからできています。場所は 3D_model/dino/ からの道すじです。

何元になるファイル作り直し
恐竜の肉の予測(論文 v10 の数字の束)taste/export/v10/dino_meat_v10.csv
taste/export/v10/targets_v10.json
taste/export/v10/README.md
cd dino/taste && uv run -q --no-project --python 3.12 --with numpy==2.5.2 python tools/export_v10.py
研究所のページの数字lab/build.py → lab/data.jsonpython3 dino/lab/build.py → prerender.py → check.py
ステーキハウスのレシピとコースrestaurant/tools/recipes_v4.py → restaurant/data/recipes_v4.json・course_v4.jsonpython3 dino/restaurant/tools/recipes_v4.py
部位の肉のかたまりrestaurant/flesh/build_flesh.py(ティラノ)・build_flesh2.py(ほか)→ restaurant/web/flesh/<id>.glb / .jsonrestaurant/flesh/README.md の手順
恐竜血統図museum/tools/tree_hall_data.py → museum/web/data/tree_hall.jsonpython3 dino/museum/tools/tree_hall_data.py

恐竜の肉の数字を作り直したら、研究所(build.py)とステーキハウス(recipes_v4.py)の両方を作り直します。片方だけだと、ページどうしで数字が食いちがいます。

2恐竜の肉の予測モデル(論文 v10)

恐竜の筋肉は残っていないので、今の動物の筋肉で「性質 → 中身」の関係を学び、その関係を恐竜に当てます。決まりは 1 つだけで、予測に使う性質は、今の動物にも恐竜にも同じやり方で付けられるものに限ります(種の名前や「何目か」は使わない)。くわしい本文は論文原稿の taste/manuscript_v10/methods.md・results.md・discussion.md です。

2.1 データ:A 動物・B 筋肉・C 測った値

3 つの表をつないでいます。A 動物 230 種(体重・成長の速さ・体温を保つか・綱・歩き方・水で暮らすか・食べ物)、B 筋肉 2,184 件(体のどこか・役目・働く長さ)、C 測った値 9,839 個です。

C のうち、乾物あたりの値 16 個と、牧場で飼われた狩猟動物の値 93 個を外し、9,730 個・225 種を使いました(ほ乳類 193 種・鳥類 24 種・は虫類 7 種・両生類 1 種)。出どころの表で「推定・計算」の印がついた値が 790 個、「微量」が 34 個あり、印どおりの値のまま使っています。アミノ酸はたんぱく質に結びついた分も含む総量で、うま味のもとの遊離アミノ酸ではありません。

C 測った値の出どころ(使った値)
出どころ値の数
日本食品標準成分表 2020(八訂)4,316
Queeno ほか 2023(筋線維の型)2,777
USDA FoodData Central SR Legacy1,258
Australian Food Composition Database Release 3844
野生の動物の論文(CC BY の表・有料は要旨の平均)530
Ciqual 20255

論文の値は 22 本・33 種・530 個で、CC BY の論文は表を写し、有料の論文は要旨に書かれた平均だけを使いました。体重は AnAge Build 15・Queeno ほか(2023)・EltonTraits 1.0、最大の成長の速さは Grady ほか(2014)から取り、無い種は同じ綱の「体重 → 成長」の直線で埋めています(測った値があること自体が手がかりにならないように)。食べ物の割合は、野生の行だけに付けています。数字の元:taste/manuscript_v10/values_data.json。

2.2 1 行の単位と重み

1 行は「種 × 筋肉(または部位)× 年齢」です。行の中の値は平均します(対数で扱う成分は対数の平均)。牛のように測られた数が多い種が答えを支配しないよう、行の重みは 1 ÷(その種の行の数)にしています。

赤身か脂身つきか・どの表から来たか・野生か・年齢は「記録のしかた」として予測に入れ、恐竜では 大人・野生・赤身 に固定します。野生と記された行は 609 行です。

2.3 予測に使う性質

  • 動物:体重(log₁₀)・最大の成長の速さ(log₁₀)・綱・体温を保つか・歩き方(4 本足・2 本足・飛ぶ・水陸・泳ぐ・木の上・跳ぶ)・水で暮らすか・食べ物の割合(EltonTraits の 10 区分)
  • 筋肉:体のどこか(後ろ脚・首・胴・尾・前脚・頭)・役目(姿勢を保つ・進む・脚を振る・一気に動く・飛ぶ・バランス・呼吸・食べる・細かい動き)・働く長さ(役目から 4〜1)
  • 記録のしかた:年齢・野生/飼育の割合・赤身/脂身つきの割合・出どころの表の割合

2.4 当てる成分

25 成分です。水分・たんぱく質・飽和/一価/多価不飽和脂肪酸の割合・遅い繊維は元の単位のまま(遅い繊維には 0% の値が 417 個あります)、微量の脂肪酸とビタミン B12 は log₁₀(x + 0.05)、ほかは log₁₀(x) で学びます。筋肉だけを使い、内臓・皮と脂身・心臓の行は外しました(混ぜると「筋肉か内臓か」を見分けるだけで当たりが良く見えるため)。

2.5 手法と確かめ方

ランダムフォレスト・エクストラツリー・勾配ブースティング(ヒストグラム)・リッジ回帰の 4 つをくらべました(scikit-learn 1.9.1)。確かめは種ごとに分けた入れ子の交差検証です。外側は 5 つの組(同じ種の行は必ず同じ組)、内側は学ぶ側の中をさらに 3 つの組に分けて設定を選びます。対数で学んだ成分は Duan の smearing で元の単位に戻し、行の本当の値の平均とくらべて、相関 r・RMSE(ずれの大きさ)・本当の値の SD を出しました。

25 成分のうち 20 成分で木の手法がリッジ回帰より r が高く、いちばん良い手法がエクストラツリーだった成分は 14 です。成分ごとの手法は、報告している外側の r で選んでいるので、この r は選んだ影響を含む探索的な値です。ページでは r が 0.36 以上の成分だけを大きく出しています。

成分ごとの当たり具合(種ごとに隠して当てた r。灰色は r 0.36 未満)
成分(単位)rリッジの r種行RMSESDRMSE÷SD手法
n-6 系(脂肪酸の %)0.660.6519547.019.030.78ランダムフォレスト
灰分(g/100g)0.620.5233450.280.360.79勾配ブースティング
遅い繊維(I 型)(%)0.600.561722,09920.125.10.80エクストラツリー
DHA(脂肪酸の %)0.570.50351081.672.000.84エクストラツリー
リノール酸(脂肪酸の %)0.560.5440986.387.560.84ランダムフォレスト
飽和脂肪酸(脂肪酸の %)0.530.4036946.497.440.87ランダムフォレスト
たんぱく質(g/100g)0.520.45681542.132.430.88エクストラツリー
亜鉛(mg/100g)0.500.34341091.111.280.87エクストラツリー
グルタミン酸(総量)(mg/100g)0.440.3630764034210.96エクストラツリー
多価不飽和脂肪酸(脂肪酸の %)0.420.55369311.211.40.98エクストラツリー
水分(g/100g)0.42−0.02681525.015.500.91エクストラツリー
脂質(g/100g)0.40−0.09681606.456.980.92エクストラツリー
アスパラギン酸(総量)(mg/100g)0.380.4816462682740.98勾配ブースティング
n-3 系(脂肪酸の %)0.370.5719544.945.280.94エクストラツリー
鉄(mg/100g)0.360.31401101.671.551.08エクストラツリー
一価不飽和脂肪酸(脂肪酸の %)0.340.3136949.799.900.99エクストラツリー
アラキドン酸(脂肪酸の %)0.330.0936932.762.661.04ランダムフォレスト
EPA(脂肪酸の %)0.310.21341071.421.480.96エクストラツリー
プロリン(mg/100g)0.290.2530761481471.01エクストラツリー
ヒスチジン(mg/100g)0.200.3030761711681.02エクストラツリー
ビタミン B12(µg/100g)0.170.0127731.541.481.04ランダムフォレスト
コレステロール(mg/100g)0.14−0.04348317.516.61.05ランダムフォレスト
ヒドロキシプロリン(mg/100g)0.11−0.3011431501231.22勾配ブースティング
α-リノレン酸(脂肪酸の %)0.100.23421183.623.131.16勾配ブースティング
グリシン(mg/100g)−0.05−0.0830762242121.05ランダムフォレスト

元のファイル:taste/data/rf_backtransform_trees.json(木の手法)・taste/data/bt_trees/リッジ回帰.json。グリシン(r −0.05)は当たらないので恐竜には当てていません。

2.6 いちばん重い種を隠す確かめ

恐竜はデータのどの動物より重いので、成分ごとに体重の上位 20% の種(最大 7.5 t、遅い繊維は 70 t)を全部隠し、軽い種だけで学んで当てました。木の手法は 12 成分中 12 成分で「学んだ平均を言う」より RMSE が小さく、9 成分でリッジ回帰より小さくなりました。リッジ回帰は 鉄・灰分 で平均より悪く、恐竜に当てると脂肪酸の 100% を超える n-6 系やマイナスの多価不飽和脂肪酸のような、ありえない値を出しました。木の手法は学んだ値の範囲から出ないので、恐竜には木の手法だけを使っています。

重い種を隠したとき(元:taste/data/heavy_holdout.json)
成分隠した種学ぶ最大r ふつうr 隠すRMSE 木RMSE リッジRMSE 平均
鉄8300 kg0.340.531.331.961.58
亜鉛7300 kg0.460.371.211.271.57
脂質13160 kg0.530.4210.511.611.8
たんぱく質13160 kg0.510.542.833.033.58
水分13160 kg0.280.687.378.059.16
飽和脂肪酸7300 kg0.50−0.137.787.047.98
多価不飽和脂肪酸7300 kg0.150.4212.413.318.2
リノール酸8278 kg0.110.128.077.599.66
n-6 系4200 kg−0.48−0.196.467.1313.8
DHA7200 kg0.400.770.660.691.62
灰分633 kg−0.470.570.180.360.19
遅い繊維(I 型)3470 kg0.400.3619.417.622.5

隠した重い種は 4〜13 種(遅い繊維は 34 種)と少なく、r はぶれやすい数字です。これは今の動物の範囲の中での「外へのばす」確かめで、恐竜の大きさでの確かめではありません。

2.7 部位の差は学べるか

同じ種の中の部位のちらばり(SD)を、本当の値・予測(記録のしかたはそのまま)・恐竜と同じ条件(赤身・表 1 つ・大人・野生)の予測でくらべました。成分表では部位と「どの表か・赤身か」が重なっていて、部位の効き目と記録のしかたの効き目を見分けられません。部位の差として残るのは、1 つのまとまったデータ(Queeno ほか 2023)から来ている遅い繊維です。

同じ種の中の部位の SD(元:taste/data/part_trim_check.json)
成分種本当の値予測そのまま恐竜と同じ条件残る割合
脂質236.102.450.437%
水分224.752.361.6234%
たんぱく質222.242.230.7533%
鉄170.590.260.0814%
亜鉛180.830.620.4554%
飽和脂肪酸133.601.120.185%
多価不飽和脂肪酸134.154.762.7366%
DHA170.290.100.0516%
遅い繊維(I 型)14017.09.449.8758%

部位の差を別の予測機で学ばせるためし(taste/data/part_model.json)でも、たんぱく質の同じ種の中の r は 0.47 → 0.37 で、良くなりませんでした。

2.8 恐竜の行の作り方

名簿の恐竜 1,255 種を 14 のなかまに分けています(O1 小型の鳥盤類・鳥脚類・O2 イグアノドン・カモノハシ竜の仲間・O3 剣竜の仲間・O4 よろい竜の仲間・O5 角竜の仲間・O6 堅頭竜の仲間・S1 初期の竜脚形類(プラテオサウルスなど)・S2 竜脚類・T1 初期の獣脚類・T2 角のある獣脚類(ケラトサウルス・アベリサウルスの仲間)・T3 大型の獣脚類(メガロサウルス・アロサウルス・スピノサウルスの仲間)・T4 ティラノサウルスの仲間・T5 小型の羽毛恐竜(ダチョウ恐竜・テリジノサウルス・オヴィラプトルなど)・T6 鳥に近い獣脚類(ドロマエオサウルス・トロオドンなど))。性質の元は taste/data/abc/dino_A.csv です。

  • 体重:骨格の全長から推定(全長も推定) 625 種・Benson 2018 377 種・骨格の全長から推定 220 種・Dempsey 2025 32 種・Sereno ほか(2022) 1 種
  • 最大の成長の速さ:Grady2014 の恐竜 20 種の直線 1235 種・Grady2014(同じ属) 20 種
  • 綱と体温:獣脚類は鳥型(綱は鳥類・体温を保つ)、竜脚形類は綱はは虫類で体温を保つ、鳥盤類は綱はは虫類で体温を保たない。なかまごとの仮定で、種ごとの推定ではありません
  • 歩き方:2 本足 564 種・ときどき 2 本足 216 種・4 本足 475 種。水で暮らす(魚食とした種)は 16 種
  • 食べ物:肉食 331 種・草食 805 種・雑食 103 種・魚食 16 種。草食=植物 100%、肉食=脊椎動物 100%、魚食=魚 100%、雑食=無脊椎動物 30%・植物 40%・脊椎動物 30%
  • 部位:もも・首・しっぽの付け根・しっぽの先・ロース・ヒレ・かた・胸・タン の 9 つ。今の動物と同じ「体のどこか・役目」の札を付け、2 本足の肩と胸は「一気に動く筋肉」にしています
  • 全部を大人・野生・赤身にし、出どころの表を 4 通り(USDA・オーストラリア・日本・論文)として当てて平均します(遅い繊維は Queeno ほかの 1 通り)。Ciqual は値が 5 個しかないので使いません

遅い繊維の部位の順番は体のつくりで変わります。4 本足・ときどき 2 本足の 691 種では首がももより多い種が 691 種、2 本足の 564 種ではももがいちばん多い種が 447 種、首がいちばん多い種が 101 種でした。

2.9 借りているものの数え方

ランダムフォレストとエクストラツリーの予測は、学習の行の値の重みつき平均と同じ形をしています。1 本の木の中で、ある学習の行の重みは「その行の重み ÷ 恐竜の行が落ちた葉の重みの合計」で、これを全部の木で平均します(Lin・Jeon 2006。ランダムフォレストでは復元抽出の回数を無視した近似)。これを種・部位ごとに足して、どの今の動物から借りているかを出しました(元:taste/data/dino_ml_borrow_groups.json)。

ステーキハウスの「〇〇の肉っぽい」(like1〜3)は、10 成分(脂・水分・たんぱく質・鉄・亜鉛・飽和/一価/多価不飽和脂肪酸・DHA・グルタミン酸)の重みを「今の種 × 部位」ごとに足した上位 3 つです。1 位の重みは中央値 7.7%、最大 22% で、「ほぼ同じ」という意味ではありません。綱を外して作り直すと(taste/data/dino_ml_pred_nocls.csv)、鳥盤類のもも肉の鉄は 2.46 → 1.26 mg、獣脚類の n-6 系は 22.3 → 13.1% に動きました。

2.10 前提を変えたときの動き

前提を 1 つずつ変えて予測し直しました(元:taste/data/dino_ml_sens.json)。下は成分ごとにいちばん大きく動かした前提です。「変わった行」は、その前提で入力が変わる行の割合、「中央値」は変わった行の中の変化の中央値(符号つき)です。「出どころの表の幅」は 4 つの表の設定のあいだの幅です。

成分ごとにいちばん大きく動かした前提
成分r前提変わった行中央値
n-6 系0.66全部を鳥型に63%+73%
灰分0.62若い個体に97%−5%
遅い繊維(I 型)0.60若い個体に100%+5%
DHA0.57全部をは虫類型に66%+405%
リノール酸0.56出どころの表 4 つの幅—20%
飽和脂肪酸0.53野生かどうかを「不明」に100%+11%
たんぱく質0.52出どころの表 4 つの幅—4%
亜鉛0.50若い個体に100%+24%
グルタミン酸(総量)0.44若い個体に100%−0.6%
多価不飽和脂肪酸0.42全部をは虫類型に66%+30%
水分0.42出どころの表 4 つの幅—5%
脂質0.40食べ物の当てはめ方 B91%+64%
アスパラギン酸(総量)0.38若い個体に100%−0.1%
n-3 系0.37野生かどうかを「不明」に100%+1,913%
鉄0.36出どころの表 4 つの幅—37%
一価不飽和脂肪酸0.34食べ物の当てはめ方 B91%+22%
アラキドン酸0.33出どころの表 4 つの幅—47%
EPA0.31食べ物の当てはめ方 B91%−25%
プロリン0.29全部を鳥型に62%+0.5%
ヒスチジン0.20野生かどうかを「不明」に100%+15%
ビタミン B120.17出どころの表 4 つの幅—15%
コレステロール0.14全部を鳥型に63%+4%
ヒドロキシプロリン0.11全部を鳥型に63%+8%
α-リノレン酸0.10出どころの表 4 つの幅—79%

2.11 つじつまと限界

  • 1 t を超えると答えは平ら:もも肉の亜鉛は、1 t を超える鳥盤類 240 種で 15 通り、竜脚形類 318 種で 12 通り、獣脚類 91 種で 11 通り(1 t 以下の 606 種では 231 通り)
  • 成分ごとに別の予測機なので足し算は閉じない:n-3 系が DHA より小さい行が 11,295 行中 8,086 行
  • 陸で暮らす体温を保たない動物の成分データが無い(は虫類型はワニ・ウミガメ・スッポン・ウシガエルから借りる)。筋線維のデータの 2 本足はヒトだけ
  • 大人・野生・赤身の肉の、成分の予測。味の点数には読みかえていない

3ステーキハウスのレシピ:栄養から組み立てる

ステーキハウスの料理は、47 種の主役 × 9 部位 = 423 皿を、その部位の栄養の中身だけから組み立てています(restaurant/tools/recipes_v4.py)。「いちばん近い今の肉」は札に出す情報で、料理を決めるのには使いません。値は taste/export/v10/dino_meat_v10.csv の予測です。

3.1 火の入れ方:遅い繊維の、その恐竜の中での順番

部位の差として本物なのは遅い繊維だけなので(2.7)、火の入れ方はその恐竜の 9 部位の中での遅い繊維の順番で決めます。多い 3 部位=長く煮込む、少ない 3 部位=さっと焼くか生、残り=焼く・ロースト。9 部位の差が 5 ポイント未満の恐竜(ほぼ同じ)は、線(45% 以上=煮込む・30% 未満=さっと)で決めます。しっぽの付け根は生では出さず(ロースト以上)、しっぽの先はスープ(コンソメ)にします。

火の入れ方の皿の数(元:restaurant/data/recipes_v4.json)
火の入れ方皿
さっと焼く・生141
長く煮込む167
焼く・ロースト115

3.2 成分の線と、料理の決め方

線は主役 47 種 × 9 部位の値を見て決めた(recipes_v4.py の定数)
成分(r)線料理
脂質(r 0.40)3 g 未満バター・ベーコン・卵黄で脂を補う
5 g 以上炭火で脂を落とし、酸味(ビネガー・柑橘)で切る
多価不飽和脂肪酸(r 0.42)・DHA(r 0.57)34% 以上 または DHA 2% 以上傷みやすい脂。強い火を短く、ローズマリーとレモンで香りを守る
亜鉛(r 0.50)2.8 mg 以上味の濃い赤身として、黒胡椒と赤ワインのソース
1.6 mg 未満白ワインとマスタードの軽いソース
グルタミン酸・総量(r 0.44)3,000 mg 未満きのこと昆布でうま味を足す
3,290 mg 以上塩と肉の煮汁(ジュ)だけで

グルタミン酸はたんぱく質に含まれる総量で、うま味のもとの遊離グルタミン酸そのものではありません。料理の線として使うのは「総量が多い・少ない」の目安までです。

3.3 鉄を使わない理由

鉄(r 0.36)は、主役 47 種 × 9 部位の予測が 2.04〜2.48 mg/100g と差が小さいので、料理を分ける理由には使いません(数字は lab/build.py が CSV から計算)。

3.4 今週のおすすめコース

52 週ぶんのコースを作っています(restaurant/data/course_v4.json)。その週と前後の旬の食材(恐竜ごはん暦 taste/calendar/calendar_data.json。週の前 2・その週・後ろ 3 の 6 つ)を、アミューズ・前菜・スープ・ステーキ・スペシャリテ・デザート の 6 皿に割り当てます。デザートには、6 つのうちビタミン C のいちばん多い食材を回します。

食材の栄養(日本食品標準成分表 八訂 増補 2023。restaurant/data/mext_foods.json)で、合わせる肉を決めます。

  • 食材の脂が 5 g 以上 → 脂のいちばん少ない肉
  • ビタミン C が 15 mg 以上 → 鉄のいちばん多い肉(ビタミン C は鉄を体にとりこむのを助けるといわれる)
  • ほか → 亜鉛のいちばん多い肉

候補は完成度 A・B の恐竜だけで、完成度 C の 8 種は外します(restaurant/data/rank_v3.json。A 19 種・B 20 種)。皿に合う火の入れ方の部位(スープ=グルタミン酸の多い部位か首・しっぽの先、スペシャリテ=煮込む部位、ステーキ=焼く部位、前菜とアミューズ=さっと焼く部位)から、同じコースで同じ恐竜を使わず、上位 10 の中で長く出ていない恐竜を選びます。

1 年のコースで使った決まり(皿の数)
決まり皿
脂のいちばん少ない肉12
鉄のいちばん多い肉144
亜鉛のいちばん多い肉156

4部位の肉のかたまり(体積と形)

ステーキハウスで部位を選ぶと、骨格の上に部位の肉のかたまりが光ります。肉は骨の形から毎回作ります(手で形を直さない)。作り方のくわしい記録は restaurant/flesh/README.md と restaurant/flesh/HANDOFF_flesh.md です。いま 47 種ぶんあり、作り方の内訳は build_flesh.py 1 種・build_flesh2 (10-03) 46 種 です。

4.1 量:骨を包む殻 × 倍率(Dempsey ほか 2025)

Dempsey ほか(2025, Biological Reviews, doi:10.1111/brv.70026。付録は CC BY 4.0)の作り方です。体を頭・首・胴・尾・上腕・前腕・手・太もも・すね・中足・足の指に分け、部分ごとに骨をぎりぎり包む殻(凸包)の体積を出し、今の鳥やワニなどを CT で測って決めた倍率をかけて肉の体積にします。倍率は付録 s006.xlsx の種ごとの値で、鳥型と鳥でない爬虫類型(NAS)のどちらを使うかは付録 s002 の「好ましい組み合わせ」に従います。

肉の体積(部分) = 殻の体積(部分) × 倍率(部分)
重さ = Σ 体積 × 密度(首 800・胴 850・ほか 1000 kg/m³)

4.2 ティラノサウルス(build_flesh.py)

論文の殻の体積と倍率から重さを足すと 9,192.54 kg で、論文の表の 9,192.54 kg と一致します(台本は一致しないと止まる確かめ)。首の倍率は鳥でない爬虫類型(NAS)です。殻は 3 cm(0.03 m)の升目で数え、形を取り出してなめらかにしています。

  • 全体の体積 13.10 m³(目標 13.16 m³)、重さ 11,742 kg(目標 11,804 kg)
  • うちの骨格の胴の殻は 4.75 m³ で、論文のティラノの胴の殻 3.74 m³ より大きい。骨格の元の標本(うちは BHI 3033 Stan)と組み方のちがいで、重さが論文の値より大きく出る原因です
  • お腹の下の肉は厚みを 0.25 倍に、太ももの肉は付け根から膝へ向けて厚みの重みを 1 → 0.25 に細くしています(量は論文のまま)
  • しっぽの付け根(尾大腿筋):Hutchinson ほか 2011(PLoS ONE 6:e26037, CC BY)の作り方で、腰から尾の切りかわり点(尾の骨 23 個)まで、横突起の先と血道弓の先を結んだ内がわ
ティラノの部位の肉のかたまりの体積(骨も入った体積)
部位m³
ヒレ0.172
かた0.376
首0.850
もも1.610
胸0.252
ロース1.223
しっぽの付け根1.264
しっぽの先0.272
タン0.029

4.3 ほかの恐竜(build_flesh2.py)

ほかの恐竜は、種ごとに復元図を見て決めた「決めごと」(restaurant/flesh/spec/<id>.json:参考にした絵・決めた理由・9 か所の肉の厚み・脚の太さ・よろいの見分け)から作ります。背骨にそって輪を並べてつなぐ作り方(Hutchinson ほか 2011)で、輪の大きさは「その場所の骨の上・下・横のはし+決めた厚み」です。よろい・板・とげ・帆は肉に入れません。量は論文に合わせず、形が量を決めます。json には論文の殻の体積と倍率も入れてあり、くらべられます。

参考にした復元図は Wikimedia Commons から CC BY・CC BY-SA・パブリックドメインのものだけを 47 種ぶん取り寄せました(CC BY-SA 4.0 42 枚・CC BY 4.0 24 枚・CC BY-SA 3.0 23 枚・Public domain 10 枚・CC BY 3.0 8 枚・CC BY 2.5 7 枚・CC0 5 枚・CC BY 2.0 4 枚・CC BY-SA 2.0 3 枚・CC BY-SA 2.5 1 枚。作者と決まりは restaurant/flesh/refs/<id>/refs.json)。絵そのものはページに載せていません。

4.4 論文に無い種は、近いなかまの倍率を借りる

論文の表に無い種は、近いなかまの種の倍率と好ましい組み合わせを借ります(restaurant/web/flesh/dempsey_names.json・47 種ぶんの対応)。借りた種は次の 32 種です。

恐竜学名倍率を借りた種
スピノサウルスSpinosaurus aegyptiacusSuchomimus
ギガノトサウルスGiganotosaurus caroliniiAcrocanthosaurus
ブラキオサウルスBrachiosaurus altithoraxGiraffatitan
アンキロサウルスAnkylosaurus magniventrisEuoplocephalus
カルノタウルスCarnotaurus sastreiAllosaurus
アルゼンチノサウルスArgentinosaurus huinculensisPatagotitan
パラサウロロフスParasaurolophus walkeriEdmontosaurus
ブロントサウルスBrontosaurus excelsusApatosaurus
パキケファロサウルスPachycephalosaurus wyomingensisStegoceras
ケラトサウルスCeratosaurus nasicornisAllosaurus
ヘレラサウルスHerrerasaurus ischigualastensisStaurikosaurus
トロオドンTroodon formosusVelociraptor
デイノケイルスDeinocheirus mirificusStruthiomimus
サウロポセイドンSauroposeidon protelesPaluxysaurus
エオラプトルEoraptor lunensisStaurikosaurus
フクイラプトルFukuiraptor kitadaniensisSinraptor
テスケロサウルスThescelosaurus neglectusHypsilophodon
ヘテロドントサウルスHeterodontosaurus tuckiHypsilophodon
エドモントニアEdmontonia longicepsDenversaurus
フクイサウルスFukuisaurus tetoriensisMantellisaurus
カムイサウルスKamuysaurus japonicusEdmontosaurus
ストルティオサウルスStruthiosaurus austriacusDenversaurus
ジェホロサウルスJeholosaurus shangyuanensisHypsilophodon
タンバティタニスTambatitanis amicitiaeNeuquensaurus
ガレノサウルスGallenosaurus dorisaeHypsilophodon
テリジノサウルスTherizinosaurus cheloniformisNothronychus
ボレアロペルタBorealopelta markmitchelliDenversaurus
オヴィラプトルOviraptor philoceratopsAnzu
アンキオルニスAnchiornis huxleyiArchaeopteryx
モノニクスMononykus olecranusVelociraptor
ポラカントゥスPolacanthus foxiiGastonia
フクイヴェナトルFukuivenator paradoxusVelociraptor

4.5 部位の境目(作った目安)

  • もも=太ももの部分、首=首の部分、かた=上腕と肩の骨のまわり、胸=胸の骨のまわり
  • ロース=胴の背骨の線より上、ヒレ=腰に近い背中の下
  • しっぽの付け根=尾大腿筋(4.2)、しっぽの先=その先の尾の肉、タン=下あごの中のだ円

境目は骨の位置から決めた目安で、論文の数字ではありません。

5恐竜血統図(時間の入ったなかまの木)

恐竜血統図(museum/web/tree_hall.html)は、暗い部屋の床に描いた時間の入ったなかまの木です。データは museum/tools/tree_hall_data.py が museum/web/data/tree_hall.json に書き出します。

半径 r = R₀ + (T₀ − 年代) × K
R₀ = 6 m T₀ = 251.902 百万年前(三畳紀のはじまり) K = 0.4692 m / 百万年
  • まん中が三畳紀のはじまりで、まん中から遠いほど新しい時代です
  • なかまの線:分かれた所(点線)→ いちばん古い化石(ここから実線)→ いちばん新しい化石まで。年代は Paleobiology Database(PBDB)の化石の記録から(museum/data/time_spans.json)。白亜紀の終わりまで化石があるなかまは 66 百万年前まで引きます
  • 枝分かれの点:下のなかまのいちばん古い化石より 0.5 百万年だけ古い所。化石から言える「少なくともこの時までに分かれていた」で、本当はもっと前に分かれています
  • 骨格は、その種の年代(PBDB の化石の年代のまん中の中央値)の所に立てます。年代が近くて重なる骨格は、線にそって前後にずらし、ずらした年数をカードに出します
  • K は、全部の線と骨格が重ならずに円に入るよう二分法で決めました(入り口と時間のものさしのために 56 度あけています)
時代の輪
輪年代(百万年前)半径(m)
三畳紀のはじまり251.96.0
ジュラ紀のはじまり201.429.7
白亜紀のはじまり143.157.0
白亜紀の終わり(大量絶滅)66.093.2

部屋には主役の骨格 54 体(恐竜 47・恐竜でない生き物 7)、なかまの線 56 本、名前のある枝分かれ 28 か所があります。名簿のほかの 1,151 種もうっすら並べています(年代が PBDB に無く、期の名前から置いた種が 6 種)。「紀」しか分からない 57 種は置いていません。

恐竜でない生き物の骨格の出どころ
生き物出どころ
ベサノサウルス(魚竜)Bindellini ほか 2024 Swiss J Palaeontol(CC BY 4.0)の全身の骨格の復元図
プラテカルプス(モササウルスのなかま)Lindgren ほか 2010 PLoS ONE(CC BY 4.0)の全身の骨格の復元図
ブランカサウルス(首長竜)Sachs ほか 2016 PeerJ(CC BY 4.0)の全身の骨格図
ユーパルケリアDemuth ほか 2023 Royal Society Open Science(CC BY 4.0)の全身の骨格の復元図と骨の 3D
ポストスクスHutchinson ほか 2026 J Anat・figshare 31228246(CC BY 4.0)
プテラノドンEaton 1910(著作権切れ)の全身の復元図と骨の長さの表
ラゴスクス(マラスクス)Bishop ほか 2025 J Anat・figshare 25955887(CC BY 4.0)

6データと絵の出どころ・ライセンス

  • 食品成分表:USDA FoodData Central SR Legacy・Australian Food Composition Database Release 3・日本食品標準成分表 2020(八訂)・Ciqual 2025。それぞれの表の利用の決まりに従って使っています
  • 野生の動物の論文の値:22 本。CC BY の論文は表を写し、有料の論文は要旨の平均だけ
  • 筋線維の型:Queeno ほか 2023(CC BY)
  • 動物の性質:AnAge Build 15・EltonTraits 1.0・Grady ほか 2014
  • 恐竜の体重:Benson ほか 2018 ほか(2.8)
  • 肉の体積:Dempsey ほか 2025 の付録(CC BY 4.0)・Hutchinson ほか 2011(CC BY)
  • 肉の形の参考:Wikimedia Commons の復元図(CC BY・CC BY-SA・パブリックドメイン。4.3)
  • 化石の年代:Paleobiology Database(CC BY 4.0)
  • 表紙の絵の骨格:骨格の 3D:Sellers & Pond (2015) Kinect controlled dinosaur simulations, figshare doi:10.6084/m9.figshare.2008977(CC BY 4.0)
  • 恐竜でない生き物の骨格:5 章の表

7このページの作り方

研究所のページ(lab/index.html)とこのノート(lab/notes.html)は、言葉を T.ja に、数字を data.json に分けています。ほかの言葉にするときは T.en などを同じ形で足します。

  1. python3 dino/lab/build.py:元のファイルから data.json を作る
  2. uv run -q --no-project --with playwright python dino/lab/prerender.py:ページが描いた中身・題名・説明・構造化データ(JSON-LD)を HTML に書き込む(検索エンジンと SNS が JS なしで読めるように)
  3. uv run -q --no-project --with playwright python dino/lab/check.py:PC(1512×827・1512×771・1440×900)とスマホ(390×844・375×667)で、エラー・はみ出し・全部の字の最後の行が 1〜2 字になっていないか・箱からのはみ出し・スマホの字の大きさ(12px 以上)・1 画面目を確かめ、lab/shots/ に写真を撮る

← 恐竜肉研究所へ戻る