Multi-view datasets from 3D models
One API call renders a model into vision training data: up to 400 posed views with depth, normals, and masks, delivered as a single zip.
# model in, dataset out curl -X POST https://api.pinwing.ai/v1/renders \ -H "Authorization: Bearer pinwing_sk_…" \ -H "Content-Type: application/json" \ -d '{"modelId":"Ab3kF9x2qL1m","renderSettings":{"output":"dataset","datasetQuality":"196x1024"}}'
Flat price per set. Poll the render, then download one zip.
What's in the zip
- •
images/ RGB PNG frames, one per view.
- •
depth/ and depth_16bit/ grayscale depth maps in 8-bit and 16-bit variants, with tight near/far planes so precision is spent across the model's actual depth span.
- •
normals/ and masks/ per-view normal maps and anti-aliased alpha masks.
- •
transforms.json camera poses and intrinsics in instant-ngp and nerfstudio formats at once.
- •
points3D.ply a seed point cloud, ready to initialize Gaussian-splat training.
- •
overview.webp a contact sheet across RGB, depth, normals, and masks, for a quick sanity check before training.
Three tiers, flat price
100x800 renders 100 views at 800 px for 40 credits, 196x1024 renders 196 views at 1024 px for 160, and 400x2048 renders 400 views at 2048 px for 640. Views cover the upper hemisphere by default; coverage: "sphere" surrounds the model fully.
Datasets render from the same uploads as videos, so a photogrammetry scan that became a turntable can produce training data without a second upload. Unzip and point nerfstudio at the folder: transforms.json and points3D.ply are picked up directly. Train with --pipeline.model.background-color white, because the RGB frames are composited on white.
The whole flow, four requests
# 1 — import a model from a URL (or POST /v1/models with a file) curl -X POST https://api.pinwing.ai/v1/models/ingest \ -H "Authorization: Bearer pinwing_sk_…" \ -H "Content-Type: application/json" \ -d '{"url":"https://example.com/model.glb"}' # 2 — request the dataset render (same two headers on every POST) curl -X POST https://api.pinwing.ai/v1/renders \ -H "Authorization: Bearer pinwing_sk_…" \ -H "Content-Type: application/json" \ -d '{"modelId":"…","renderSettings":{"output":"dataset","datasetQuality":"100x800"}}' # 3 — poll until status is done curl -H "Authorization: Bearer pinwing_sk_…" https://api.pinwing.ai/v1/renders/RENDER_ID # 4 — download the zip curl -OJ -H "Authorization: Bearer pinwing_sk_…" https://api.pinwing.ai/v1/renders/RENDER_ID/dataset
Agents run the same loop through the hosted MCP server: import, quote, render, download, from a prompt. If you already know what a multi-view dataset is, your agent can take it from here.
Datasets — common questions
Every endpoint, setting, and credit rate is in the reference.