← ブログに戻る
AR 実験 · 公開日 2026-09-29

JPEG から AR プロダクトモデル実験へ:GLB を使う

JPEG は 3D プロダクトモデル実験の開始画像にできます。TO3D の API は画像から 3D タスクを作成して GLB URL を返せますが、AR パイプラインの残りはビューア、スケール規約、デバイス対応、対象プラットフォームに必要な変換に依存します。このガイドでは手順を明示します。

1. JPEG URL を送信する

公開 JPEG URL で 1 件の画像タスクを送信します。返されたタスク ID を保持し、処理中に別のタスクを作成しないでください。

export TO3D_KEY='YOUR_API_KEY'
export TO3D_IMAGE_URL='https://example.com/product.jpg'

TASK_JSON=$(curl --fail-with-body --silent --show-error \
  https://api.to3d.app/api/trellis/tasks \
  -H "x-api-key: $TO3D_KEY" \
  -H 'Content-Type: application/json' \
  -d "$(jq -cn --arg image "$TO3D_IMAGE_URL" \
    '{task_type:"image-to-3d",input:{image:$image}}')")
TASK_ID=$(jq -er '.id' <<<"$TASK_JSON")
printf 'Task: %s\n' "$TASK_ID"

ポーリングして GLB をダウンロードする

別のタスクを作成せずにポーリングします。タスクが成功したら、返されたモデル URL を保存して GLB をダウンロードします。

while :; do
  STATUS_JSON=$(curl --fail-with-body --silent --show-error \
    "https://api.to3d.app/api/trellis/tasks/$TASK_ID" \
    -H "x-api-key: $TO3D_KEY")
  STATUS=$(jq -er '.status' <<<"$STATUS_JSON")
  case "$STATUS" in
    succeeded) jq -er '.output.model_file' <<<"$STATUS_JSON" > model-url.txt; break ;;
    failed|canceled) jq '{id,status,error}' <<<"$STATUS_JSON" >&2; exit 1 ;;
    pending|processing) sleep 5 ;;
    *) printf 'Unexpected status: %s\n' "$STATUS" >&2; exit 1 ;;
  esac
done
curl --fail --location --silent --show-error \
  "$(cat model-url.txt)" --output product.glb
[ "$(head -c 4 product.glb)" = 'glTF' ]

2. AR ビューアに入れる前に検査する

まず `product.glb` を GLB 対応ビューアで開きます。製品のシルエット、見えるマテリアル、UV、テクスチャがシーンに使えるか確認します。現実のスケールは自分のパイプラインで設定してください。1 枚の JPEG から寸法は決まりません。

  • AR の対象が別形式やプラットフォーム固有のアンカーを必要とする場合は、対象ツールチェーンで変換を実行してテストします。

3. 対象デバイスで検証する

対応するスマートフォン、ブラウザ、ヘッドセットでビューアを実行します。ダウンロードサイズ、ライティング、テクスチャ解像度、カメラ配置、オクルージョン、操作性、フレームレートを確認します。

  • #56 では USDZ 出力、物理スケール、AR アンカー、AR デバイスを検証していません。この記事は再現可能な開始ワークフローを説明するもので、JPEG が自動的に調整済み AR 製品アセットになるという主張ではありません。

サンプルの証拠範囲を守る

4 つの公開サンプル GLB は、埋め込み PNG テクスチャ、UV、ジョイント、スキンウェイトを備えた構造例です。製品モデルにリグは不要な場合があります。オブジェクトにスケルトンが必要な場合だけ Skin Tokens を使います。

  • 元の JPEG、API タスク ID、ダウンロードした GLB、変換した AR アセットを一緒に保管し、後の見た目やスケールの問題を正しい手順に追跡できるようにします。