1. Envía la URL JPEG
Envía una tarea de imagen con una URL JPEG pública. Conserva el ID devuelto y no crees otra tarea mientras esta se procesa.
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"Consulta y descarga el GLB
Consulta sin crear otra tarea. Cuando termine correctamente, guarda la URL del modelo devuelta y descarga el 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. Inspecciona antes de ponerlo en un visor de AR
Abre primero `product.glb` en un visor compatible con GLB. Comprueba que la silueta del producto, los materiales visibles, las UV y la textura sirven para tu escena. Establece una escala del mundo real en tu propio flujo; un solo JPEG no establece las dimensiones.
- Si tu destino de AR requiere otro formato o un anclaje específico de la plataforma, haz y prueba esa conversión en la cadena de herramientas de destino.
3. Valida en el dispositivo de destino
Ejecuta el visor en los teléfonos, navegadores o visores que admitas. Comprueba el tamaño de descarga, la iluminación, la resolución de textura, la posición de la cámara, la oclusión, la interacción y la tasa de fotogramas.
- #56 no verificó la salida USDZ, la escala física, los anclajes de AR ni ningún dispositivo de AR. Por tanto, este artículo describe un flujo inicial reproducible, no afirma que un JPEG se convierta automáticamente en un asset de producto AR calibrado.
Mantén acotada la evidencia de las muestras
Los cuatro GLB públicos de muestra ofrecen ejemplos de estructura con texturas PNG incrustadas, UV, articulaciones y pesos de skinning. Un modelo de producto puede no necesitar un rig; omite Skin Tokens salvo que tu objeto necesite un esqueleto.
- Conserva juntos el JPEG original, el ID de tarea de la API, el GLB descargado y cualquier asset AR convertido para poder rastrear un problema visual o de escala hasta el paso correcto.