Cameras Config
warning
The cameras file is saved automatically by the Steel Studio app. You do not need to create or edit it manually.
Use this page as a reference only.
All cameras are stored in a single file: [track_folder]/extension/steelstudio/cameras.json.
The file is a JSON array where each entry is either a fixed camera (one keyframe) or a path camera (two or more keyframes).
Config file
extension/steelstudio/cameras.json
[
{
"name": "Shot 1",
"type": "fixed",
"keyframes": [
{
"t": 0,
"position": "(0.0, 1.0, 5.0)",
"look": "(0.0, 0.0, -1.0)",
"up": "(0.0, 1.0, 0.0)",
"side": "(1.0, 0.0, 0.0)",
"fov": 60.0,
"dofEnabled": false,
"dofDistance": 5.0
}
]
},
{
"name": "Path 1",
"type": "path",
"duration": 10,
"interp": "smooth",
"ease": "easeInOut",
"keyframes": [
{
"t": 0,
"position": "(0.0, 1.0, 5.0)",
"look": "(0.0, 0.0, -1.0)",
"up": "(0.0, 1.0, 0.0)",
"side": "(1.0, 0.0, 0.0)",
"fov": 60.0,
"dofEnabled": false,
"dofDistance": 5.0
},
{
"t": 1,
"position": "(3.0, 1.0, 0.0)",
"look": "(-0.8, 0.0, -0.6)",
"up": "(0.0, 1.0, 0.0)",
"side": "(0.6, 0.0, -0.8)",
"fov": 45.0,
"dofEnabled": true,
"dofDistance": 3.0
}
]
}
]
Camera properties
| Name | Description | Possible values |
|---|---|---|
| name | Display name of the camera shown in the tile grid | String |
| type | Camera type | "fixed" | "path" |
| keyframes | Array containing the camera keyframes (one for fixed, two or more for path) | Array |
| duration | Path playback duration in seconds (path only) | Number (1–60) |
| interp | Position interpolation method (path only) | "linear" | "smooth" |
| ease | Easing function applied to the playback timeline (path only) | "linear" | "easeIn" | "easeOut" | "easeInOut" |
Keyframe properties
Both fixed and path cameras use the same keyframe structure.
| Name | Description | Possible values |
|---|---|---|
| t | Normalized time of this keyframe along the path (0 = start, 1 = end) | Number (0–1) |
| position | Camera position in world space, as a vec3 string | String "(x, y, z)" |
| look | Forward direction vector | String "(x, y, z)" |
| up | Up direction vector | String "(x, y, z)" |
| side | Right direction vector (derived from look and up) | String "(x, y, z)" |
| fov | Vertical field of view in degrees | Number (5–120) |
| dofEnabled | Whether depth of field is active at this keyframe | true | false |
| dofDistance | Focus distance in metres | Number (0–500) |
info
For a fixed camera, only the first keyframe is used (set t to 0).
For a path camera, keyframes are sorted by their t value and interpolated based on the interp setting:
"linear"— straight lines between positions"smooth"— Catmull-Rom spline (curved, natural motion)