@hatiolab/things-scene 10.1.67 → 10.1.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,7 @@
1
1
  import * as THREE from 'three';
2
2
  import type { FigureShape } from '@hatiolab/figure-model';
3
+ /** What makes two bodies one geometry: the shape's numbers and meaning, and its segments. */
4
+ export declare function figureGeometryKeyOf(shape: FigureShape, segments?: number): string;
3
5
  /** The shared geometry for a body. Call `releaseFigureGeometry` with the same shape when the mesh goes away. */
4
6
  export declare function acquireFigureGeometry(shape: FigureShape, segments?: number): THREE.BufferGeometry;
5
7
  export declare function releaseFigureGeometry(geometry: THREE.BufferGeometry): void;
@@ -1 +1 @@
1
- {"version":3,"file":"figure-geometry.d.ts","sourceRoot":"","sources":["../../src/figure/figure-geometry.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AA4BzD,gHAAgH;AAChH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,GAAE,MAAyB,GAAG,KAAK,CAAC,cAAc,CAWnH;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI,CAS1E;AAED,iFAAiF;AACjF,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C;AAED,2GAA2G;AAC3G,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,GAAE,MAAyB,GAAG,KAAK,CAAC,cAAc,CAOjH"}
1
+ {"version":3,"file":"figure-geometry.d.ts","sourceRoot":"","sources":["../../src/figure/figure-geometry.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAQzD,6FAA6F;AAC7F,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,GAAE,MAAyB,GAAG,MAAM,CAkBnG;AAED,gHAAgH;AAChH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,GAAE,MAAyB,GAAG,KAAK,CAAC,cAAc,CAWnH;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI,CAS1E;AAED,iFAAiF;AACjF,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C;AAED,2GAA2G;AAC3G,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,GAAE,MAAyB,GAAG,KAAK,CAAC,cAAc,CAOjH"}
@@ -0,0 +1,38 @@
1
+ import * as THREE from 'three';
2
+ import type { FigureShape } from '@hatiolab/figure-model';
3
+ export interface FigureMergedPart {
4
+ shape: FigureShape;
5
+ segments?: number;
6
+ pose: {
7
+ r: number[][];
8
+ t: number[];
9
+ };
10
+ }
11
+ export interface FigureMergedGeometry {
12
+ geometry: THREE.BufferGeometry;
13
+ /** The first triangle of each part, in the order given, and the triangle count last. */
14
+ starts: Int32Array;
15
+ }
16
+ /**
17
+ * What the bank may hold, in bytes of vertex data (positions and normals). Past it a group is not merged.
18
+ * Measured (ADR-0109 step 4, the conveyor 8ca9b97b, every instance at a size of its own): three groups a size, about
19
+ * 19.5 KiB a group, 58 KiB a size -- the ceiling is reached past about 1,100 distinct sizes of it on one board.
20
+ */
21
+ export declare const FIGURE_MERGED_BANK_LIMIT_BYTES: number;
22
+ /**
23
+ * The merged geometry for these parts, held once more; null when making it would pass the bank's ceiling. Give it back
24
+ * with `releaseMergedFigureGeometry`.
25
+ */
26
+ export declare function acquireMergedFigureGeometry(parts: readonly FigureMergedPart[]): FigureMergedGeometry | null;
27
+ export declare function releaseMergedFigureGeometry(geometry: THREE.BufferGeometry): void;
28
+ /** What the bank holds now: entries, holds on them and bytes of vertex data. */
29
+ export declare function figureMergedGeometryStats(): {
30
+ entries: number;
31
+ users: number;
32
+ bytes: number;
33
+ limit: number;
34
+ };
35
+ /** The ceiling, for checks that reach it with a few parts; `undefined` puts it back. */
36
+ export declare function setMergedFigureGeometryLimit(bytes?: number): void;
37
+ export declare function resetMergedFigureGeometry(): void;
38
+ //# sourceMappingURL=figure-merged-geometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"figure-merged-geometry.d.ts","sourceRoot":"","sources":["../../src/figure/figure-merged-geometry.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAGzD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,WAAW,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;QAAC,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CACrC;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,KAAK,CAAC,cAAc,CAAA;IAC9B,wFAAwF;IACxF,MAAM,EAAE,UAAU,CAAA;CACnB;AAED;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,QAAmB,CAAA;AA2B9D;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,GAAG,oBAAoB,GAAG,IAAI,CAmE3G;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI,CAUhF;AAED,gFAAgF;AAChF,wBAAgB,yBAAyB,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAI5G;AAED,wFAAwF;AACxF,wBAAgB,4BAA4B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAEjE;AAED,wBAAgB,yBAAyB,IAAI,IAAI,CAMhD"}
@@ -1 +1 @@
1
- {"version":3,"file":"figure-real-object.d.ts","sourceRoot":"","sources":["../../src/figure/figure-real-object.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAGxD,OAAO,EAAa,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAG7E,qBAAa,gBAAiB,SAAQ,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAyB;IACpC,OAAO,CAAC,WAAW,CAAC,CAAa;IAEjC,IAAI,MAAM,IAAI,sBAAsB,GAAG,IAAI,CAE1C;cAEkB,mBAAmB,IAAI,KAAK,CAAC,KAAK;IAI5C,KAAK,IAAI,IAAI;IActB,2HAA2H;IAC3H,IAAI,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAG1C;IAED,kGAAkG;IAClG,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGvC;IAED,oGAAoG;IACpG,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGvC;IAED,qEAAqE;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIrB,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAO9D,oHAAoH;IACpH,YAAY,IAAI;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAO1D,IAAa,cAAc,IAAI,MAAM,CASpC;IAED;;;OAGG;IACH,IAAa,aAAa,IAAI,MAAM,CAKnC;IAEQ,eAAe,IAAI,IAAI;IAOhC;;;;;OAKG;IACH,OAAO,CAAC,IAAI;IAuBZ;;;OAGG;IACH,IAAI,UAAU,gDAEb;IAED,yFAAyF;IACzF,kBAAkB,IAAI,IAAI;IAM1B,0HAA0H;IAC1H,gBAAgB,IAAI,IAAI;IAMxB,oHAAoH;IACpH,WAAW,IAAI,IAAI;IAMnB,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,YAAY;IAUpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAgBtB,OAAO,CAAC,OAAO;IAIf;;;;;OAKG;IACH,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG;QAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC;QAAC,aAAa,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAAG,SAAS;IAa7J,KAAK,IAAI,KAAK,CAAC,KAAK;CAO9B;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAUxG"}
1
+ {"version":3,"file":"figure-real-object.d.ts","sourceRoot":"","sources":["../../src/figure/figure-real-object.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAGxD,OAAO,EAAa,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAG7E,qBAAa,gBAAiB,SAAQ,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAyB;IACpC,OAAO,CAAC,WAAW,CAAC,CAAa;IAEjC,IAAI,MAAM,IAAI,sBAAsB,GAAG,IAAI,CAE1C;cAEkB,mBAAmB,IAAI,KAAK,CAAC,KAAK;IAI5C,KAAK,IAAI,IAAI;IActB,2HAA2H;IAC3H,IAAI,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAG1C;IAED,kGAAkG;IAClG,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGvC;IAED,oGAAoG;IACpG,IAAI,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAGvC;IAED,qEAAqE;IACrE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIrB,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAO9D,oHAAoH;IACpH,YAAY,IAAI;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAO1D,IAAa,cAAc,IAAI,MAAM,CASpC;IAED;;;OAGG;IACH,IAAa,aAAa,IAAI,MAAM,CAKnC;IAEQ,eAAe,IAAI,IAAI;IAOhC;;;;;OAKG;IACH,OAAO,CAAC,IAAI;IAuBZ;;;OAGG;IACH,IAAI,UAAU,gDAEb;IAED,yFAAyF;IACzF,kBAAkB,IAAI,IAAI;IAM1B,0HAA0H;IAC1H,gBAAgB,IAAI,IAAI;IAMxB,oHAAoH;IACpH,WAAW,IAAI,IAAI;IAUnB,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,YAAY;IAUpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAgBtB,OAAO,CAAC,OAAO;IAIf;;;;;OAKG;IACH,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,GAAG;QAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC;QAAC,aAAa,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAAG,SAAS;IAa7J,KAAK,IAAI,KAAK,CAAC,KAAK;CAO9B;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAUxG"}
@@ -7,6 +7,11 @@ export interface FigureRigOptions {
7
7
  * ruling 5). Tokens the mapping does not name keep the asset's default.
8
8
  */
9
9
  theme?: Record<string, string>;
10
+ /**
11
+ * Whether still parts of one render state are drawn as one mesh (ADR-0109). On unless set false: a rig drawn part by
12
+ * part is the reference a merged one is held to.
13
+ */
14
+ merge?: boolean;
10
15
  }
11
16
  export interface Vec3Like {
12
17
  x: number;
@@ -20,12 +25,30 @@ export interface FigureSizeClamp {
20
25
  used: number;
21
26
  bound: 'min' | 'max';
22
27
  }
28
+ /** Where one body is drawn: a mesh of its own, a copy in an instanced mesh, or triangles of a merged mesh. */
29
+ export type FigureDraw = {
30
+ kind: 'alone';
31
+ object: THREE.Mesh;
32
+ } | {
33
+ kind: 'copy';
34
+ object: THREE.InstancedMesh;
35
+ index: number;
36
+ } | {
37
+ kind: 'merged';
38
+ object: THREE.Mesh;
39
+ triangles: {
40
+ start: number;
41
+ count: number;
42
+ };
43
+ };
23
44
  export declare class FigureRig {
24
45
  readonly group: THREE.Group<THREE.Object3DEventMap>;
25
46
  readonly compiled: CompiledFigure;
26
47
  private readonly meshes;
27
48
  /** One instanced mesh per batch of a row's copies, by the batch's key; \`ids\` is the copy drawn at each index. */
28
49
  private readonly batches;
50
+ /** One merged mesh per group of still parts of one render state, by the group's key (ADR-0109). */
51
+ private readonly merged;
29
52
  private static readonly matrix;
30
53
  /** One node per place a thing is held (a seat or a grip), made when something first hangs from it. */
31
54
  private readonly places;
@@ -43,6 +66,7 @@ export declare class FigureRig {
43
66
  /** Playback seconds per clip. A driver belongs to the clip its id starts with (`<clip>/<part>/<path>`). */
44
67
  private clipTimes;
45
68
  private theme;
69
+ private readonly merge;
46
70
  /**
47
71
  * This rig's evaluator: it runs again only what changed since its last evaluation -- a turning roller row re-evaluates
48
72
  * its rollers, not its bed (figure-model's evaluator(), 2026-09-26).
@@ -64,8 +88,23 @@ export declare class FigureRig {
64
88
  * evaluator keeps when the shape did not change) and whether it is shown, only poses moved and the plan stands.
65
89
  */
66
90
  private planned?;
67
- /** The last evaluation, for readers that want the numbers behind the meshes. */
68
- last: FigureAssetEvaluation | null;
91
+ /** The still bodies of the last plan, kept while the bodies keep their ids. */
92
+ private stillOf?;
93
+ /** figure-model's still judgement, made once per compiled figure and shared by its rigs: it reads the asset only. */
94
+ private static readonly stillJudges;
95
+ private static stillJudgeOf;
96
+ /**
97
+ * The last evaluation the meshes were made from (ADR-0108 C3: renamed from \`last\` when pose steps came, so a reader
98
+ * of the old name would not go on reading it unawares). Pose steps move the meshes past it: for the values as they
99
+ * stand now, read \`evaluation()\`.
100
+ */
101
+ lastEvaluation: FigureAssetEvaluation | null;
102
+ /**
103
+ * Where each body slot of the last evaluation is drawn, for pose steps (ADR-0108): a mesh drawn alone, or a copy of a
104
+ * batch at an index. Made with every evaluation, valid for its generation.
105
+ */
106
+ private slots;
107
+ private generation;
69
108
  constructor(asset: FigureAsset, options?: FigureRigOptions);
70
109
  get asset(): FigureAsset;
71
110
  /** The size the asset was authored at: its stored `size.*` design inputs, or null when it is not resizable. */
@@ -110,8 +149,25 @@ export declare class FigureRig {
110
149
  private inputsRead;
111
150
  /** The external values as last set, for readers that want to know what masks the drivers. */
112
151
  get externalState(): Record<string, number>;
113
- /** Evaluate at the current size, state and time, and bring the meshes up to date. */
114
- update(): FigureAssetEvaluation;
152
+ /**
153
+ * Bring the meshes up to the current size, state and time (ADR-0108). When only poses moved the evaluator says so and
154
+ * gives their numbers by body slot; they go straight into the matrices. Otherwise it evaluates and the meshes are
155
+ * made from the evaluation. Nothing is returned: read \`evaluation()\` for the values as they stand.
156
+ */
157
+ update(): void;
158
+ /** The values as they stand now -- an evaluation, made if pose steps moved past the last one (fresh on read). */
159
+ evaluation(): FigureAssetEvaluation;
160
+ private movesMerged;
161
+ /** A pose step: each written body slot's matrix, the rows that moved, the places that moved. */
162
+ private movePoses;
163
+ /** The meshes made from an evaluation, and where each of its body slots is drawn for the pose steps that follow. */
164
+ private draw;
165
+ /**
166
+ * The merged meshes for these groups of still parts: kept while every part keeps its shape, segments and pose objects,
167
+ * made again (from the bank) when one changed, taken away when the group is gone. Returns the bodies to draw one by one:
168
+ * the plan's, and any group the bank had no room for.
169
+ */
170
+ private drawMerged;
115
171
  /**
116
172
  * The node a held thing hangs from at one place (`capabilities.bindings`). It is a child of the group that every
117
173
  * update moves to the place's pose, so what hangs from it follows the part it sits on -- through the joints too --
@@ -124,13 +180,17 @@ export declare class FigureRig {
124
180
  /** A pose as a matrix, written into the one scratch matrix (not kept: the next call overwrites it). */
125
181
  private static matrixOf;
126
182
  /**
127
- * The body a pick landed on: a mesh drawn alone is its body; an instance of a batch is the copy drawn at that index.
128
- * Undefined for anything that is not this rig's.
183
+ * The body a pick landed on: a mesh drawn alone is its body; an instance of a batch is the copy drawn at that index; a
184
+ * face of a merged mesh is the part whose triangles hold it (a raycast's \`faceIndex\`). Undefined for anything that is
185
+ * not this rig's, or a merged mesh asked without a face.
129
186
  */
130
- bodyAt(object: THREE.Object3D, instanceId?: number): string | undefined;
131
- /** How the bodies are drawn now: a draw per batch and per body drawn alone (what the grade counts). */
187
+ bodyAt(object: THREE.Object3D, instanceId?: number, faceIndex?: number): string | undefined;
188
+ /** Where a body is drawn now, or undefined when it is not (hidden, or no such body). */
189
+ drawOf(id: string): FigureDraw | undefined;
190
+ /** How the bodies are drawn now: a draw per batch, per merged group and per body drawn alone (what the grade counts). */
132
191
  get draws(): {
133
192
  batches: number;
193
+ merged: number;
134
194
  alone: number;
135
195
  instances: number;
136
196
  };
@@ -141,9 +201,11 @@ export declare class FigureRig {
141
201
  /** The inputs this rig evaluates at now: the figure's defaults, its drivers and external values, and its size. */
142
202
  evaluationInputs(): Record<string, number>;
143
203
  evaluate(): FigureAssetEvaluation;
204
+ /** An evaluation's bodies with their appearance: material, visibility and segments. */
205
+ private dress;
144
206
  private colourOf;
145
207
  private materialFor;
146
- /** Meshes by body id, for tests and for bindings that need a part's mesh. */
208
+ /** The mesh a body drawn alone has, by its id. A merged part or a copy has none of its own: read \`drawOf\`. */
147
209
  meshOf(id: string): THREE.Mesh | undefined;
148
210
  /** The bodies that are currently drawn, by id: alone or as an instance of a batch. A hidden body is not in the group. */
149
211
  drawnIds(): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"figure-rig.d.ts","sourceRoot":"","sources":["../../src/figure/figure-rig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"figure-rig.d.ts","sourceRoot":"","sources":["../../src/figure/figure-rig.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hatiolab/things-scene",
3
- "version": "10.1.67",
3
+ "version": "10.1.69",
4
4
  "description": "A high-performance 2D/3D scene graph library for building interactive visual editors, combining HTML5 Canvas and Three.js to enable facility visualization, data-driven animations, and real-time monitoring dashboards",
5
5
  "main": "things-scene-min.js",
6
6
  "module": "things-scene.mjs",
@@ -91,7 +91,7 @@
91
91
  },
92
92
  "homepage": "https://github.com/hatiolab/things-scene#readme",
93
93
  "dependencies": {
94
- "@hatiolab/figure-model": "^0.2.13",
94
+ "@hatiolab/figure-model": "^0.2.15",
95
95
  "@wizpanda/super-gif": "^0.0.6",
96
96
  "dompurify": "^3.3.1",
97
97
  "jsonata": "^1.8.6",