Models & animation
Describe bounded GLB presentation and timelines without accessing the renderer.
Generated from the reviewed SDK 0.1.0 contract snapshot. Unreviewed workspace changes are not included.
Public exports
Import from @scape/sdk.
GizmoFrame, GizmoLabelFrame, GizmoPresentation, GizmoTimeline, Quaternion, axisQuaternion, multiplyQuaternion, slerpQuaternion, validGizmoPresentation, validGizmoTimeline, validateGizmoModel.
Type declarations
These declarations preserve source comments and related types. Import only the public exports listed above; module-relative paths below describe how the package is organized.
ts
/** JSON-only presentation data. The host owns rendering, time and audio devices. */
export type Quaternion = [number, number, number, number];
export interface GizmoFrame {
rotation: Quaternion;
x: number;
lift: number;
shadow: [number, number, number];
}
export interface GizmoTimeline {
key: string;
at: number;
durationMs: number;
frames: GizmoFrame[];
number?: number;
}
export interface GizmoLabelFrame {
scaleX: number;
scaleY: number;
rotation: number;
y: number;
opacity: number;
}
export interface GizmoPresentation {
model: string;
textureSize: number;
nominalSize: number;
fitSize: number;
rest: Quaternion;
materials: Record<string, string>;
lighting: {
sky: string;
ground: string;
ambient: number;
key: number;
fill: number;
exposure: number;
keyColor: string;
fillColor: string;
keyPosition: [number, number, number];
fillPosition: [number, number, number];
};
shadow: {
color: string;
xFactor: number;
z: number;
};
tap: {
name: string;
payload: Record<string, unknown>;
};
label?: {
colors: string[];
durationMs: number;
riseMs: number;
fadeMs: number;
offsetY: number;
height: number;
frames: GizmoLabelFrame[];
};
}
export declare function validGizmoPresentation(v: unknown): v is GizmoPresentation;
export declare function validGizmoTimeline(v: unknown): v is GizmoTimeline;
/** Pure authoring helpers: no renderer or platform dependencies. */
export declare function multiplyQuaternion(a: Quaternion, b: Quaternion): Quaternion;
export declare function axisQuaternion(axis: number[], angle: number): Quaternion;
export declare function slerpQuaternion(a: Quaternion, b: Quaternion, t: number): Quaternion;
/** Inspect GLB structure before a host parser sees it. No URLs, textures, skins or extensions. */
export declare function validateGizmoModel(encoded: string): void;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
Usage and limits
See Gizmo guides, working examples, and limits for lifecycle, validation and host behavior.
