da3-small: Depth Anything 3 small (DA3-SMALL, Depth Anything V3 small), the 0.08B depth tier, as a per-image API
da3-small is this platform's name for a metered lane that serves the small tier of Depth Anything 3, the depth and camera-pose model family that a ByteDance-led team published in November 2025. The model is real, open, and Apache 2.0 today. On this platform the da3-small model id answers directly: an October 6, 2026 vision request returned depth statistics with a whole image count and its wallet debit. It is listed in the models index and on the pricing page as of October 6, 2026. This page is the small tier's written record. It carries the version map, the per-tier licenses, the sizing story, and the call contract the lane serves.
Last verified: 2026-10-06
What it is
Depth Anything 3 predicts geometry from pictures. Give it one image, or many, or a video, with or without known camera poses. It returns a depth map for each view, a confidence map, and the camera parameters: intrinsics and extrinsics. The model card for the small tier lists its job in one line: multi-view depth estimation and camera pose estimation.
The design is deliberately plain. The backbone is one ordinary transformer, the kind a DINOv2-class encoder provides. There is no task-specific surgery. One prediction target, the depth-ray: per-pixel depth plus the viewing ray through that pixel. The paper calls this recovering the visual space from any views. The ray part is why camera pose falls out of the same model. It is also how the lens is handled. Each camera is a plain pinhole with two focal-length values. The model estimates them per image, or takes them from you as known poses.
| Fact | Value | Where it is stated |
|---|---|---|
| Model class | any-view depth and camera-pose model | the DA3 paper, Nov 2025 |
| Tier | small, the smallest of four | the repository's model table |
| Parameters | 0.08B | the model card and the repository's model table |
| License | Apache 2.0 | the model card frontmatter |
| Released | November 14, 2025, with code and weights | the repository release notes |
| Publisher | the ByteDance Seed team | the model card |
| Training data | public academic datasets only | the paper and the model card |
| Returns | relative depth, confidence, camera intrinsics and extrinsics | the model card quick start |
| Export formats | glb, npz, ply, and point-cloud files | the repository |
The version map: V1, V2, V3, and a withdrawn V4
The family name covers four generations in under three years, and the search results mix them freely. The map, from the papers:
| Generation | When | What it added | Weights license |
|---|---|---|---|
| Depth Anything (V1) | January 2024 | monocular depth from one image, a data engine over about 62M unlabeled images | Apache 2.0 |
| Depth Anything V2 | June 2024, NeurIPS 2024 | synthetic-data training, finer detail, faster inference | splits by tier: small Apache 2.0, the rest non-commercial |
| Depth Anything 3 | November 2025 | any number of views, camera poses, the depth-ray target, 3D outputs | splits by tier: small and base Apache 2.0, the rest non-commercial |
| DA3-Streaming | November 2025 | ultra-long video, sliding windows, under 12 GB of GPU memory | uses the tiers above |
| A fourth generation | August 2026 | a 4D reconstruction preprint, withdrawn | none to license |
The fourth generation deserves its own paragraph, because it still ranks in search. A preprint titled as V4 appeared on arXiv in August 2026, proposing 4D scene reconstruction. It was withdrawn after community review found problems in its central claims. The arXiv record now carries a major-errors note in its comments field, read on October 5, 2026. It advises against the work. Treat the preprint as retracted. The dependable line is V1, V2, V3.
Which tiers you can ship: the license table
Both generations split their licenses by tier, and almost nobody writes the split down. The V2 repository states its split in one sentence. The V3 side reads from each tier's model card and the repository's model table, checked October 5, 2026:
| Model | Parameters | License |
|---|---|---|
| V2 small | 24.8M | Apache 2.0 |
| V2 base, large, giant | 97.5M, 335.3M, 1.3B | CC BY-NC 4.0, non-commercial |
| DA3 small (this page) | 0.08B | Apache 2.0 |
| DA3 base | 0.12B | Apache 2.0 |
| DA3 large, giant | 0.35B, 1.15B | CC BY-NC 4.0, non-commercial |
| DA3 large 1.1 (refreshed) | 0.35B | Apache 2.0 on its model card |
| DA3 metric large | 0.35B | Apache 2.0 |
| DA3 monocular large | 0.35B | Apache 2.0 |
| DA3 nested giant + large | 1.40B | CC BY-NC 4.0, non-commercial |
The trap is real and cheap to avoid. Community lanes sell runs of the older generations at low per-run prices. Their default download is the large tier. In V2, that is the non-commercial tier. A price on a lane does not fix a license on weights. If you ship a product, you need an Apache tier. Confirm the license block on the exact tier page you download from, on the day you download it. This family has changed license terms between releases. For the wider question, the GR00T license guide in our docs walks the same check across the other robot model families.
The name map
One model, several spellings, all meaning the same thing:
| Where | How it is written |
|---|---|
| The publisher's card and code | DA3-SMALL, depth-anything/DA3-SMALL |
| Search and forums | Depth Anything V3, depth anything v3 small |
| Community ports | depth-anything-v3-small |
| This platform | da3-small |
The publisher writes DA3. The public types V3. They are the same generation, and this page answers to both spellings.
Use cases
A small depth model earns its keep on robots, where the camera is cheap and the question is constant: how far is everything.
- Obstacle distance. A depth map answers "is the corridor clear" per frame. Relative depth is enough to answer it, and to set how fast to approach.
- Grasp approach. An arm reaching for a cup wants two answers. Where the cup ends: a segmentation mask. How far away it sits: this model's depth. Pair a SAM row for the mask with this row for the geometry, and the grasp plan falls out. The SAM 2.1 base-plus page in this family covers the mask half. The vision category page covers the pairing.
- Free-space shape. Depth over a whole frame gives the shape of the reachable space, not just the nearest obstacle. That feeds path planning and speed control.
- Multi-camera fusion. The project page shows depth from several vehicle cameras, including views that do not overlap. The views fuse into one stable model of the scene.
- Drift control in mapping. The publisher's SLAM demo, read October 5, 2026, reports that swapping this family into an existing pipeline cuts drift in large scenes. It beats a mapping run that takes two days.
- 3D snapshots. Export formats like glb and ply turn a few camera frames into a point cloud or a mesh for standard 3D tools.
When to pick the small tier: when you want depth on every frame, on modest hardware, at the lowest complexity. The weights file is 137 MB, and the tier runs on ordinary machines without a GPU. That is why community ports exist for edge runtimes. When scenes are hard or accuracy decides the outcome, the larger tiers and the nested model exist, with the license trade the table above shows.
Relative or metric: what the small tier returns
The small tier returns relative depth. Values order the scene from near to far and keep its proportions. They do not carry meters. For obstacle logic, free-space shape, and approach speed, that is the right currency.
For real units, you need scale. There are three honest paths:
- The metric sibling. The family's dedicated metric model, Apache 2.0, is tuned for real-world scale. Its repository gives the recipe: metric depth equals the focal length in pixels, times the raw output, divided by 300. The focal length is the average of the two values in the camera matrix.
- A known distance. If one real distance is in the scene, the whole map scales from it. A marker, a fixture, or a known object all work.
- The nested model. It outputs meters directly, but it rides the giant tier, whose license is non-commercial.
One migration warning. It bites people moving from V2. V2 pipelines often normalize the depth image by hand before showing it. V3 output does not want that step. The model handles its own normalization, and reusing the old step saturates the near values. Drop the V2 visualization code when you switch.
API usage
The lane's contract speaks the platform's vision route. It is POST /v1/vision, with a Bearer key from the console. Multipart form data goes in. JSON comes out, or bytes, your choice. The model id is da3-small.
| Form field | Required | Notes |
|---|---|---|
model | yes | da3-small |
file | yes, one or more | image file parts. One image or a batch, one kind of input |
response_format | no | json, the default, or binary |
A JSON answer carries the model's annotations and a usage block. The usage block holds the billed image count and the cost of the call. The wallet math rides in the response. A binary answer returns rendered bytes under the model's own content type, with billing on the input side.
Three contract facts worth stating plainly. Metering is per image, taken from the count of images in the request. The family upload cap of 25 MiB applies. The day-one prompt shape is the whole image. The route takes no point or box prompt fields. Sending one returns a named unknown-parameter error rather than a guess. Under load, a saturated lane answers with a named rate-limited response that carries retry timing. It is never a silent failure, and the refused turn bills nothing.
The lane serves under this alias today, confirmed by the October 6, 2026 request. The tabs below are the contract the lane ships under. Every field, error code, and limit lives in the run-vision reference, and the vision route page walks the route end to end.
curl
curl -X POST "https://api.ironstratum.com/v1/vision" \
-H "Authorization: Bearer $KEY" \
-F "model=da3-small" \
-F "file=@scene.jpg"
python
import os
import requests
resp = requests.post(
"https://api.ironstratum.com/v1/vision",
headers={"Authorization": "Bearer " + os.environ["KEY"]},
data={"model": "da3-small", "response_format": "json"},
files=[("file", ("scene.jpg", open("scene.jpg", "rb"), "image/jpeg"))],
timeout=30,
)
resp.raise_for_status()
answer = resp.json()
annotations = answer["annotations"] # the model's own output shape
usage = answer["usage"] # the billed image count and cost
print("images billed:", usage["images"])
print("cost of this call:", usage.get("cost"))
http
POST /v1/vision HTTP/1.1
Host: api.ironstratum.com
Authorization: Bearer $KEY
Content-Type: multipart/form-data; boundary=frame
--frame
Content-Disposition: form-data; name="model"
da3-small
--frame
Content-Disposition: form-data; name="response_format"
json
--frame
Content-Disposition: form-data; name="file"; filename="scene.jpg"
Content-Type: image/jpeg
<the image bytes>
--frame--
Benchmarks
Every number below is the publisher's, named and dated. This platform's own measurements are not on this page; every number below carries its named owner. This platform publishes its own numbers only after they are measured and held, and this page carries none.
The paper, read on its arXiv page October 5, 2026, makes three family claims. It beats VGGT, the prior multi-view state of the art, by an average of 44.3 percent in camera pose accuracy. The geometric-accuracy lead averages 25.1 percent. It matches Depth Anything 2 on detail and generalization. And it beats V2 on monocular depth. All models were trained on public academic data only.
The tier ladder, from the paper's speed table. Hardware named by the paper: one A100 GPU, scenes of 32 images, images at 504 by 336:
| Tier | Parameters | Speed | Max images on one 80 GB A100 |
|---|---|---|---|
| small (this page) | 0.08B | 160.5 images per second | about 4,000 to 4,100 |
| base | 0.12B | 126.5 images per second | about 2,100 to 2,200 |
| large | 0.35B | 78.4 images per second | about 1,500 to 1,600 |
| giant | 1.15B | 37.6 images per second | about 900 to 1,000 |
| VGGT, for reference | 1.19B | 34.1 images per second | 400 to 500 |
The small tier is the fastest, by a wide margin, and it holds the most views in memory. The cost is accuracy, and the paper shows that too. On camera pose, scored as AUC30 (higher is better), the small tier scores 71.9 on ScanNet++, 91.2 on DTU, and 78.7 on 7Scenes. The giant tier scores 98.1, 99.4, and 86.8 on the same sets. Read that as the honest trade. The small tier gives you speed, memory headroom, and an Apache license. It gives up pose precision against its bigger siblings. For per-frame robot depth, that trade is usually right. For survey-grade geometry, it is not.
Getting started
- Read the primary sources. The model card, the repository, and the paper are all public. Every identity fact on this page traces to one of them.
- Pick your tier with the license table open. Small and base are Apache 2.0. The bigger tiers mostly are not. Decide before you build, not after.
- Write your client against the contract. The tabs above are the shape the lane serves under, live since October 6, 2026. The run-vision reference documents every field and error. The models index is the live catalog.
- Call it. The signup flow opens the wallet, the keys, and the billing history. The first call is one curl command with an image from your robot's camera.