@energy8platform/golem 0.2.1 → 0.5.0

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.
Files changed (38) hide show
  1. package/README.md +28 -2
  2. package/dist/editor.css +50 -0
  3. package/dist/editor.js +1772 -1037
  4. package/dist/lib/cli.js +1575 -366
  5. package/dist/lib/cli.js.map +4 -4
  6. package/dist/lib/editor/controls-panel.d.ts +2 -0
  7. package/dist/lib/editor/stage.d.ts +1 -0
  8. package/dist/lib/editor/store.d.ts +212 -33
  9. package/dist/lib/editor-entry.js +1575 -366
  10. package/dist/lib/editor-entry.js.map +4 -4
  11. package/dist/lib/harness.js +328 -31
  12. package/dist/lib/interactive-bones.d.ts +37 -0
  13. package/dist/lib/interactive-editor.d.ts +80 -0
  14. package/dist/lib/interactive-editor.js +744 -0
  15. package/dist/lib/interactive-editor.js.map +7 -0
  16. package/dist/lib/preview/export-video.d.ts +12 -0
  17. package/dist/lib/preview/harness.d.ts +2 -0
  18. package/dist/lib/preview/render-preview.d.ts +6 -0
  19. package/dist/lib/rig-anim.d.ts +6 -3
  20. package/dist/lib/rig-check.d.ts +2 -1
  21. package/dist/lib/rig-constraints.d.ts +63 -0
  22. package/dist/lib/rig-control-qa.d.ts +319 -0
  23. package/dist/lib/rig-controls.d.ts +13 -0
  24. package/dist/lib/rig-format.d.ts +1469 -331
  25. package/dist/lib/rig-gates.d.ts +209 -0
  26. package/dist/lib/rig-mesh.d.ts +1 -0
  27. package/dist/lib/rig-motion.d.ts +22 -0
  28. package/dist/lib/rig-qa.d.ts +35 -0
  29. package/dist/lib/rig-quality.d.ts +12 -0
  30. package/dist/lib/rig-runtime.d.ts +43 -3
  31. package/dist/lib/rig-state.d.ts +3 -0
  32. package/dist/lib/rig-tools.d.ts +5 -1
  33. package/dist/lib/runtime.d.ts +3 -1
  34. package/dist/lib/runtime.js +306 -28
  35. package/dist/lib/runtime.js.map +4 -4
  36. package/dist/lib/tools.js +1557 -348
  37. package/dist/lib/tools.js.map +4 -4
  38. package/package.json +8 -2
@@ -0,0 +1,2 @@
1
+ export declare function ControlsPanel(): import("preact").JSX.Element | null;
2
+ export declare function ControlForms(): import("preact").JSX.Element;
@@ -73,6 +73,7 @@ export declare class Stage {
73
73
  * is on screen. The overlay (bones, labels, gizmos) is switched off for the duration, so nothing of the editor
74
74
  * ends up in it; the paper stays, which is what makes every pixel opaque — GIF has no partial transparency.
75
75
  */
76
+ exportPng(): Promise<string | undefined>;
76
77
  exportGif(fps?: number): Promise<Uint8Array<ArrayBuffer> | undefined>;
77
78
  /** doc px → screen px (canvas client coords); the camera never rotates, so this is exact without a render */
78
79
  toScreen(x: number, y: number): [number, number];
@@ -81,6 +81,8 @@ export declare const doc: import("@preact/signals-core").Signal<{
81
81
  compress: boolean;
82
82
  stretch: boolean;
83
83
  uniform: boolean;
84
+ iterations?: number | undefined;
85
+ tolerance?: number | undefined;
84
86
  }[];
85
87
  format: "energy8.rig";
86
88
  version: 2;
@@ -108,6 +110,7 @@ export declare const doc: import("@preact/signals-core").Signal<{
108
110
  origin?: {
109
111
  inpainted: boolean;
110
112
  sourceImage?: string | undefined;
113
+ bboxSpace?: "source" | "document" | undefined;
111
114
  bbox?: [number, number, number, number] | undefined;
112
115
  prompt?: string | undefined;
113
116
  } | undefined;
@@ -119,6 +122,7 @@ export declare const doc: import("@preact/signals-core").Signal<{
119
122
  alpha: number;
120
123
  z: number;
121
124
  blend: "normal" | "add" | "multiply" | "screen";
125
+ clip?: string | undefined;
122
126
  attachment?: string | undefined;
123
127
  }[];
124
128
  attachments: ({
@@ -173,79 +177,98 @@ export declare const doc: import("@preact/signals-core").Signal<{
173
177
  keys: {
174
178
  t: number;
175
179
  v: string | number | number[] | string[] | null;
176
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
180
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
181
+ bezier: [number, number, number, number];
182
+ };
183
+ }[];
184
+ id: string;
185
+ target: "control";
186
+ prop: "value";
187
+ interpolation?: "segment" | "pchip" | undefined;
188
+ } | {
189
+ keys: {
190
+ t: number;
191
+ v: string | number | number[] | string[] | null;
192
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
177
193
  bezier: [number, number, number, number];
178
194
  };
179
195
  }[];
180
196
  id: string;
181
197
  target: "bone";
182
198
  prop: "x" | "y" | "rotation" | "scaleX" | "scaleY" | "shearX" | "shearY";
199
+ interpolation?: "segment" | "pchip" | undefined;
183
200
  } | {
184
201
  keys: {
185
202
  t: number;
186
203
  v: string | number | number[] | string[] | null;
187
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
204
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
188
205
  bezier: [number, number, number, number];
189
206
  };
190
207
  }[];
191
208
  id: string;
192
209
  target: "slot";
193
210
  prop: "color" | "attachment" | "alpha" | "z";
211
+ interpolation?: "segment" | "pchip" | undefined;
194
212
  } | {
195
213
  keys: {
196
214
  t: number;
197
215
  v: string | number | number[] | string[] | null;
198
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
216
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
199
217
  bezier: [number, number, number, number];
200
218
  };
201
219
  }[];
202
220
  id: string;
203
221
  target: "deform";
204
222
  prop: string;
223
+ interpolation?: "segment" | "pchip" | undefined;
205
224
  } | {
206
225
  keys: {
207
226
  t: number;
208
227
  v: string | number | number[] | string[] | null;
209
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
228
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
210
229
  bezier: [number, number, number, number];
211
230
  };
212
231
  }[];
213
232
  id: string;
214
233
  target: "ik";
215
234
  prop: "mix" | "softness" | "bendPositive" | "compress" | "stretch";
235
+ interpolation?: "segment" | "pchip" | undefined;
216
236
  } | {
217
237
  keys: {
218
238
  t: number;
219
239
  v: string | number | number[] | string[] | null;
220
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
240
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
221
241
  bezier: [number, number, number, number];
222
242
  };
223
243
  }[];
224
244
  id: string;
225
245
  target: "transform";
226
- prop: "mixRotate" | "mixX" | "mixY" | "mixScaleX" | "mixScaleY" | "mixShearY";
246
+ prop: "x" | "y" | "rotation" | "scaleX" | "scaleY" | "shearY" | "mixRotate" | "mixX" | "mixY" | "mixScaleX" | "mixScaleY" | "mixShearY";
247
+ interpolation?: "segment" | "pchip" | undefined;
227
248
  } | {
228
249
  keys: {
229
250
  t: number;
230
251
  v: string | number | number[] | string[] | null;
231
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
252
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
232
253
  bezier: [number, number, number, number];
233
254
  };
234
255
  }[];
235
256
  id: string;
236
257
  target: "path";
237
258
  prop: "mixRotate" | "mixX" | "mixY" | "position" | "spacing";
259
+ interpolation?: "segment" | "pchip" | undefined;
238
260
  } | {
239
261
  keys: {
240
262
  t: number;
241
263
  v: string | number | number[] | string[] | null;
242
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
264
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
243
265
  bezier: [number, number, number, number];
244
266
  };
245
267
  }[];
246
268
  id: string;
247
269
  target: "drawOrder";
248
270
  prop: "order";
271
+ interpolation?: "segment" | "pchip" | undefined;
249
272
  })[];
250
273
  events: {
251
274
  t: number;
@@ -257,6 +280,36 @@ export declare const doc: import("@preact/signals-core").Signal<{
257
280
  name: string;
258
281
  } | undefined;
259
282
  }[];
283
+ controls?: {
284
+ id: string;
285
+ min: number;
286
+ max: number;
287
+ default: number;
288
+ label?: string | undefined;
289
+ }[] | undefined;
290
+ controlBindings?: {
291
+ id: string;
292
+ axes: {
293
+ keys: number[];
294
+ control: string;
295
+ }[];
296
+ channels: ({
297
+ values: (number | number[])[];
298
+ id: string;
299
+ target: "bone";
300
+ prop: "x" | "y" | "rotation" | "scaleX" | "scaleY" | "shearX" | "shearY";
301
+ } | {
302
+ values: (number | number[])[];
303
+ id: string;
304
+ target: "slot";
305
+ prop: "alpha";
306
+ } | {
307
+ values: (number | number[])[];
308
+ id: string;
309
+ target: "deform";
310
+ prop: "vertices";
311
+ })[];
312
+ }[] | undefined;
260
313
  } | undefined>;
261
314
  export declare const draft: import("@preact/signals-core").Signal<{
262
315
  path: {
@@ -322,6 +375,8 @@ export declare const draft: import("@preact/signals-core").Signal<{
322
375
  compress: boolean;
323
376
  stretch: boolean;
324
377
  uniform: boolean;
378
+ iterations?: number | undefined;
379
+ tolerance?: number | undefined;
325
380
  }[];
326
381
  format: "energy8.rig";
327
382
  version: 2;
@@ -349,6 +404,7 @@ export declare const draft: import("@preact/signals-core").Signal<{
349
404
  origin?: {
350
405
  inpainted: boolean;
351
406
  sourceImage?: string | undefined;
407
+ bboxSpace?: "source" | "document" | undefined;
352
408
  bbox?: [number, number, number, number] | undefined;
353
409
  prompt?: string | undefined;
354
410
  } | undefined;
@@ -360,6 +416,7 @@ export declare const draft: import("@preact/signals-core").Signal<{
360
416
  alpha: number;
361
417
  z: number;
362
418
  blend: "normal" | "add" | "multiply" | "screen";
419
+ clip?: string | undefined;
363
420
  attachment?: string | undefined;
364
421
  }[];
365
422
  attachments: ({
@@ -414,79 +471,98 @@ export declare const draft: import("@preact/signals-core").Signal<{
414
471
  keys: {
415
472
  t: number;
416
473
  v: string | number | number[] | string[] | null;
417
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
474
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
475
+ bezier: [number, number, number, number];
476
+ };
477
+ }[];
478
+ id: string;
479
+ target: "control";
480
+ prop: "value";
481
+ interpolation?: "segment" | "pchip" | undefined;
482
+ } | {
483
+ keys: {
484
+ t: number;
485
+ v: string | number | number[] | string[] | null;
486
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
418
487
  bezier: [number, number, number, number];
419
488
  };
420
489
  }[];
421
490
  id: string;
422
491
  target: "bone";
423
492
  prop: "x" | "y" | "rotation" | "scaleX" | "scaleY" | "shearX" | "shearY";
493
+ interpolation?: "segment" | "pchip" | undefined;
424
494
  } | {
425
495
  keys: {
426
496
  t: number;
427
497
  v: string | number | number[] | string[] | null;
428
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
498
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
429
499
  bezier: [number, number, number, number];
430
500
  };
431
501
  }[];
432
502
  id: string;
433
503
  target: "slot";
434
504
  prop: "color" | "attachment" | "alpha" | "z";
505
+ interpolation?: "segment" | "pchip" | undefined;
435
506
  } | {
436
507
  keys: {
437
508
  t: number;
438
509
  v: string | number | number[] | string[] | null;
439
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
510
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
440
511
  bezier: [number, number, number, number];
441
512
  };
442
513
  }[];
443
514
  id: string;
444
515
  target: "deform";
445
516
  prop: string;
517
+ interpolation?: "segment" | "pchip" | undefined;
446
518
  } | {
447
519
  keys: {
448
520
  t: number;
449
521
  v: string | number | number[] | string[] | null;
450
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
522
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
451
523
  bezier: [number, number, number, number];
452
524
  };
453
525
  }[];
454
526
  id: string;
455
527
  target: "ik";
456
528
  prop: "mix" | "softness" | "bendPositive" | "compress" | "stretch";
529
+ interpolation?: "segment" | "pchip" | undefined;
457
530
  } | {
458
531
  keys: {
459
532
  t: number;
460
533
  v: string | number | number[] | string[] | null;
461
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
534
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
462
535
  bezier: [number, number, number, number];
463
536
  };
464
537
  }[];
465
538
  id: string;
466
539
  target: "transform";
467
- prop: "mixRotate" | "mixX" | "mixY" | "mixScaleX" | "mixScaleY" | "mixShearY";
540
+ prop: "x" | "y" | "rotation" | "scaleX" | "scaleY" | "shearY" | "mixRotate" | "mixX" | "mixY" | "mixScaleX" | "mixScaleY" | "mixShearY";
541
+ interpolation?: "segment" | "pchip" | undefined;
468
542
  } | {
469
543
  keys: {
470
544
  t: number;
471
545
  v: string | number | number[] | string[] | null;
472
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
546
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
473
547
  bezier: [number, number, number, number];
474
548
  };
475
549
  }[];
476
550
  id: string;
477
551
  target: "path";
478
552
  prop: "mixRotate" | "mixX" | "mixY" | "position" | "spacing";
553
+ interpolation?: "segment" | "pchip" | undefined;
479
554
  } | {
480
555
  keys: {
481
556
  t: number;
482
557
  v: string | number | number[] | string[] | null;
483
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
558
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
484
559
  bezier: [number, number, number, number];
485
560
  };
486
561
  }[];
487
562
  id: string;
488
563
  target: "drawOrder";
489
564
  prop: "order";
565
+ interpolation?: "segment" | "pchip" | undefined;
490
566
  })[];
491
567
  events: {
492
568
  t: number;
@@ -498,6 +574,36 @@ export declare const draft: import("@preact/signals-core").Signal<{
498
574
  name: string;
499
575
  } | undefined;
500
576
  }[];
577
+ controls?: {
578
+ id: string;
579
+ min: number;
580
+ max: number;
581
+ default: number;
582
+ label?: string | undefined;
583
+ }[] | undefined;
584
+ controlBindings?: {
585
+ id: string;
586
+ axes: {
587
+ keys: number[];
588
+ control: string;
589
+ }[];
590
+ channels: ({
591
+ values: (number | number[])[];
592
+ id: string;
593
+ target: "bone";
594
+ prop: "x" | "y" | "rotation" | "scaleX" | "scaleY" | "shearX" | "shearY";
595
+ } | {
596
+ values: (number | number[])[];
597
+ id: string;
598
+ target: "slot";
599
+ prop: "alpha";
600
+ } | {
601
+ values: (number | number[])[];
602
+ id: string;
603
+ target: "deform";
604
+ prop: "vertices";
605
+ })[];
606
+ }[] | undefined;
501
607
  } | undefined>;
502
608
  export declare const shown: import("@preact/signals-core").ReadonlySignal<{
503
609
  path: {
@@ -563,6 +669,8 @@ export declare const shown: import("@preact/signals-core").ReadonlySignal<{
563
669
  compress: boolean;
564
670
  stretch: boolean;
565
671
  uniform: boolean;
672
+ iterations?: number | undefined;
673
+ tolerance?: number | undefined;
566
674
  }[];
567
675
  format: "energy8.rig";
568
676
  version: 2;
@@ -590,6 +698,7 @@ export declare const shown: import("@preact/signals-core").ReadonlySignal<{
590
698
  origin?: {
591
699
  inpainted: boolean;
592
700
  sourceImage?: string | undefined;
701
+ bboxSpace?: "source" | "document" | undefined;
593
702
  bbox?: [number, number, number, number] | undefined;
594
703
  prompt?: string | undefined;
595
704
  } | undefined;
@@ -601,6 +710,7 @@ export declare const shown: import("@preact/signals-core").ReadonlySignal<{
601
710
  alpha: number;
602
711
  z: number;
603
712
  blend: "normal" | "add" | "multiply" | "screen";
713
+ clip?: string | undefined;
604
714
  attachment?: string | undefined;
605
715
  }[];
606
716
  attachments: ({
@@ -655,79 +765,98 @@ export declare const shown: import("@preact/signals-core").ReadonlySignal<{
655
765
  keys: {
656
766
  t: number;
657
767
  v: string | number | number[] | string[] | null;
658
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
768
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
769
+ bezier: [number, number, number, number];
770
+ };
771
+ }[];
772
+ id: string;
773
+ target: "control";
774
+ prop: "value";
775
+ interpolation?: "segment" | "pchip" | undefined;
776
+ } | {
777
+ keys: {
778
+ t: number;
779
+ v: string | number | number[] | string[] | null;
780
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
659
781
  bezier: [number, number, number, number];
660
782
  };
661
783
  }[];
662
784
  id: string;
663
785
  target: "bone";
664
786
  prop: "x" | "y" | "rotation" | "scaleX" | "scaleY" | "shearX" | "shearY";
787
+ interpolation?: "segment" | "pchip" | undefined;
665
788
  } | {
666
789
  keys: {
667
790
  t: number;
668
791
  v: string | number | number[] | string[] | null;
669
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
792
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
670
793
  bezier: [number, number, number, number];
671
794
  };
672
795
  }[];
673
796
  id: string;
674
797
  target: "slot";
675
798
  prop: "color" | "attachment" | "alpha" | "z";
799
+ interpolation?: "segment" | "pchip" | undefined;
676
800
  } | {
677
801
  keys: {
678
802
  t: number;
679
803
  v: string | number | number[] | string[] | null;
680
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
804
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
681
805
  bezier: [number, number, number, number];
682
806
  };
683
807
  }[];
684
808
  id: string;
685
809
  target: "deform";
686
810
  prop: string;
811
+ interpolation?: "segment" | "pchip" | undefined;
687
812
  } | {
688
813
  keys: {
689
814
  t: number;
690
815
  v: string | number | number[] | string[] | null;
691
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
816
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
692
817
  bezier: [number, number, number, number];
693
818
  };
694
819
  }[];
695
820
  id: string;
696
821
  target: "ik";
697
822
  prop: "mix" | "softness" | "bendPositive" | "compress" | "stretch";
823
+ interpolation?: "segment" | "pchip" | undefined;
698
824
  } | {
699
825
  keys: {
700
826
  t: number;
701
827
  v: string | number | number[] | string[] | null;
702
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
828
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
703
829
  bezier: [number, number, number, number];
704
830
  };
705
831
  }[];
706
832
  id: string;
707
833
  target: "transform";
708
- prop: "mixRotate" | "mixX" | "mixY" | "mixScaleX" | "mixScaleY" | "mixShearY";
834
+ prop: "x" | "y" | "rotation" | "scaleX" | "scaleY" | "shearY" | "mixRotate" | "mixX" | "mixY" | "mixScaleX" | "mixScaleY" | "mixShearY";
835
+ interpolation?: "segment" | "pchip" | undefined;
709
836
  } | {
710
837
  keys: {
711
838
  t: number;
712
839
  v: string | number | number[] | string[] | null;
713
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
840
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
714
841
  bezier: [number, number, number, number];
715
842
  };
716
843
  }[];
717
844
  id: string;
718
845
  target: "path";
719
846
  prop: "mixRotate" | "mixX" | "mixY" | "position" | "spacing";
847
+ interpolation?: "segment" | "pchip" | undefined;
720
848
  } | {
721
849
  keys: {
722
850
  t: number;
723
851
  v: string | number | number[] | string[] | null;
724
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
852
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
725
853
  bezier: [number, number, number, number];
726
854
  };
727
855
  }[];
728
856
  id: string;
729
857
  target: "drawOrder";
730
858
  prop: "order";
859
+ interpolation?: "segment" | "pchip" | undefined;
731
860
  })[];
732
861
  events: {
733
862
  t: number;
@@ -739,9 +868,40 @@ export declare const shown: import("@preact/signals-core").ReadonlySignal<{
739
868
  name: string;
740
869
  } | undefined;
741
870
  }[];
871
+ controls?: {
872
+ id: string;
873
+ min: number;
874
+ max: number;
875
+ default: number;
876
+ label?: string | undefined;
877
+ }[] | undefined;
878
+ controlBindings?: {
879
+ id: string;
880
+ axes: {
881
+ keys: number[];
882
+ control: string;
883
+ }[];
884
+ channels: ({
885
+ values: (number | number[])[];
886
+ id: string;
887
+ target: "bone";
888
+ prop: "x" | "y" | "rotation" | "scaleX" | "scaleY" | "shearX" | "shearY";
889
+ } | {
890
+ values: (number | number[])[];
891
+ id: string;
892
+ target: "slot";
893
+ prop: "alpha";
894
+ } | {
895
+ values: (number | number[])[];
896
+ id: string;
897
+ target: "deform";
898
+ prop: "vertices";
899
+ })[];
900
+ }[] | undefined;
742
901
  } | undefined>;
743
902
  export declare const version: import("@preact/signals-core").Signal<string>;
744
- export declare const mode: import("@preact/signals-core").Signal<"setup" | "atlas" | "animate">;
903
+ export declare const mode: import("@preact/signals-core").Signal<"controls" | "setup" | "atlas" | "animate">;
904
+ export declare const controlValues: import("@preact/signals-core").Signal<Record<string, number>>;
745
905
  export declare const animId: import("@preact/signals-core").Signal<string | undefined>;
746
906
  export declare const time: import("@preact/signals-core").Signal<number>;
747
907
  export declare const playing: import("@preact/signals-core").Signal<boolean>;
@@ -812,79 +972,98 @@ export declare const currentAnim: import("@preact/signals-core").ReadonlySignal<
812
972
  keys: {
813
973
  t: number;
814
974
  v: string | number | number[] | string[] | null;
815
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
975
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
976
+ bezier: [number, number, number, number];
977
+ };
978
+ }[];
979
+ id: string;
980
+ target: "control";
981
+ prop: "value";
982
+ interpolation?: "segment" | "pchip" | undefined;
983
+ } | {
984
+ keys: {
985
+ t: number;
986
+ v: string | number | number[] | string[] | null;
987
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
816
988
  bezier: [number, number, number, number];
817
989
  };
818
990
  }[];
819
991
  id: string;
820
992
  target: "bone";
821
993
  prop: "x" | "y" | "rotation" | "scaleX" | "scaleY" | "shearX" | "shearY";
994
+ interpolation?: "segment" | "pchip" | undefined;
822
995
  } | {
823
996
  keys: {
824
997
  t: number;
825
998
  v: string | number | number[] | string[] | null;
826
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
999
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
827
1000
  bezier: [number, number, number, number];
828
1001
  };
829
1002
  }[];
830
1003
  id: string;
831
1004
  target: "slot";
832
1005
  prop: "color" | "attachment" | "alpha" | "z";
1006
+ interpolation?: "segment" | "pchip" | undefined;
833
1007
  } | {
834
1008
  keys: {
835
1009
  t: number;
836
1010
  v: string | number | number[] | string[] | null;
837
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
1011
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
838
1012
  bezier: [number, number, number, number];
839
1013
  };
840
1014
  }[];
841
1015
  id: string;
842
1016
  target: "deform";
843
1017
  prop: string;
1018
+ interpolation?: "segment" | "pchip" | undefined;
844
1019
  } | {
845
1020
  keys: {
846
1021
  t: number;
847
1022
  v: string | number | number[] | string[] | null;
848
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
1023
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
849
1024
  bezier: [number, number, number, number];
850
1025
  };
851
1026
  }[];
852
1027
  id: string;
853
1028
  target: "ik";
854
1029
  prop: "mix" | "softness" | "bendPositive" | "compress" | "stretch";
1030
+ interpolation?: "segment" | "pchip" | undefined;
855
1031
  } | {
856
1032
  keys: {
857
1033
  t: number;
858
1034
  v: string | number | number[] | string[] | null;
859
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
1035
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
860
1036
  bezier: [number, number, number, number];
861
1037
  };
862
1038
  }[];
863
1039
  id: string;
864
1040
  target: "transform";
865
- prop: "mixRotate" | "mixX" | "mixY" | "mixScaleX" | "mixScaleY" | "mixShearY";
1041
+ prop: "x" | "y" | "rotation" | "scaleX" | "scaleY" | "shearY" | "mixRotate" | "mixX" | "mixY" | "mixScaleX" | "mixScaleY" | "mixShearY";
1042
+ interpolation?: "segment" | "pchip" | undefined;
866
1043
  } | {
867
1044
  keys: {
868
1045
  t: number;
869
1046
  v: string | number | number[] | string[] | null;
870
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
1047
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
871
1048
  bezier: [number, number, number, number];
872
1049
  };
873
1050
  }[];
874
1051
  id: string;
875
1052
  target: "path";
876
1053
  prop: "mixRotate" | "mixX" | "mixY" | "position" | "spacing";
1054
+ interpolation?: "segment" | "pchip" | undefined;
877
1055
  } | {
878
1056
  keys: {
879
1057
  t: number;
880
1058
  v: string | number | number[] | string[] | null;
881
- ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "back_out" | "elastic_out" | {
1059
+ ease: "linear" | "step" | "ease_in" | "ease_out" | "ease_in_out" | "minimum_jerk" | "back_out" | "elastic_out" | {
882
1060
  bezier: [number, number, number, number];
883
1061
  };
884
1062
  }[];
885
1063
  id: string;
886
1064
  target: "drawOrder";
887
1065
  prop: "order";
1066
+ interpolation?: "segment" | "pchip" | undefined;
888
1067
  })[];
889
1068
  events: {
890
1069
  t: number;