Training Parameters
When you create a capture you can optionally supply training parameters to customise how Teleport reconstructs your scene. If you omit them, Teleport uses sensible defaults tuned for general-purpose captures.
Training parameters are passed in the training_parameters object of the create capture request body (POST /api/v1/captures).
Custom training requires the pay-as-you-go plan
Supplying custom modelv3 parameters requires the pay-as-you-go plan. You can purchase it yourself from the pricing page, starting at $30.
Requests that include modelv3 without an eligible plan are rejected with a 403 Forbidden response.
ModelV3 Parameters#
The modelv3 object controls the core properties of the reconstructed Gaussian Splat model: how many splats it contains, the resolution it is trained at, its colour model, and whether a level-of-detail hierarchy is generated.
When you provide a modelv3 object, all four fields are required.
| Parameter | Type | Allowed Values | Description |
|---|---|---|---|
splat_count |
integer | 500000 – 10000000 |
Target number of Gaussian splats in the trained model. Higher values capture more detail but increase processing time and file size. |
training_resolution |
integer | 1600, 2500, 3200 |
Maximum image edge length, in pixels, used during training. Input images are downscaled to fit. Larger values preserve more detail at higher cost. |
spherical_harmonics_degrees |
integer | 0, 3 |
Spherical-harmonics degree for view-dependent colour. 0 produces a smaller, view-independent model; 3 captures full view-dependent appearance (e.g. reflections). |
level_of_detail |
boolean | true, false |
Generate a level-of-detail hierarchy so viewers can stream progressively and render large scenes efficiently. |
Example Request#
The example below creates a capture with a 3 million splat model trained at 2500 px, with full view-dependent colour and a level-of-detail hierarchy.
curl -X POST "https://teleport.varjo.com/api/v1/captures" \
-H "Authorization: Bearer AUTH_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "my_capture.zip",
"bytesize": 104857600,
"input_data_format": "bulk-images",
"training_parameters": {
"modelv3": {
"splat_count": 3000000,
"training_resolution": 2500,
"spherical_harmonics_degrees": 3,
"level_of_detail": true
}
}
}'
The response is identical to a standard create capture request - continue with the regular upload flow from there.
Choosing Values#
splat_count- Start in the low millions for room-sized scenes and increase for larger or more detailed environments. Very high counts produce larger files and longer processing times.training_resolution-1600is fastest and best for previews;3200retains the finest detail.2500is a good balance for most captures.spherical_harmonics_degrees- Use3when accurate, view-dependent appearance (shiny or reflective surfaces) matters. Use0for the smallest, fastest-loading models.level_of_detail- Keep enabled for large scenes or when streaming to the web or XR viewers.
⚠️ Validation errors (for example, an out-of-range
splat_countor an unsupportedtraining_resolution) return a422 Unprocessable Entityresponse describing the offending field.