distark-render 1.1.6 → 1.1.10

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 (148) hide show
  1. package/README.md +0 -0
  2. package/assets/presets/jumping-jack.json +194 -0
  3. package/assets/tank.json +0 -0
  4. package/dist/cli/animate.d.ts +0 -0
  5. package/dist/cli/animate.d.ts.map +0 -0
  6. package/dist/cli/animate.js +0 -0
  7. package/dist/cli/animate.js.map +0 -0
  8. package/dist/cli/diff.d.ts +0 -0
  9. package/dist/cli/diff.d.ts.map +0 -0
  10. package/dist/cli/diff.js +0 -0
  11. package/dist/cli/diff.js.map +0 -0
  12. package/dist/cli/distark-check.d.ts +0 -0
  13. package/dist/cli/distark-check.d.ts.map +0 -0
  14. package/dist/cli/distark-check.js +20 -14
  15. package/dist/cli/distark-check.js.map +1 -1
  16. package/dist/cli/query.d.ts +0 -0
  17. package/dist/cli/query.d.ts.map +0 -0
  18. package/dist/cli/query.js +0 -0
  19. package/dist/cli/query.js.map +0 -0
  20. package/dist/cli/record.d.ts +0 -0
  21. package/dist/cli/record.d.ts.map +0 -0
  22. package/dist/cli/record.js +0 -0
  23. package/dist/cli/record.js.map +0 -0
  24. package/dist/cli/render.d.ts +0 -0
  25. package/dist/cli/render.d.ts.map +0 -0
  26. package/dist/cli/render.js +0 -0
  27. package/dist/cli/render.js.map +0 -0
  28. package/dist/cli/scene.d.ts +15 -0
  29. package/dist/cli/scene.d.ts.map +1 -0
  30. package/dist/cli/scene.js +239 -0
  31. package/dist/cli/scene.js.map +1 -0
  32. package/dist/cli/shared.d.ts +0 -0
  33. package/dist/cli/shared.d.ts.map +0 -0
  34. package/dist/cli/shared.js +0 -0
  35. package/dist/cli/shared.js.map +0 -0
  36. package/dist/cli/test.d.ts +0 -0
  37. package/dist/cli/test.d.ts.map +0 -0
  38. package/dist/cli/test.js +0 -0
  39. package/dist/cli/test.js.map +0 -0
  40. package/dist/cli/verify.d.ts +0 -0
  41. package/dist/cli/verify.d.ts.map +0 -0
  42. package/dist/cli/verify.js +0 -0
  43. package/dist/cli/verify.js.map +0 -0
  44. package/dist/modules/adapters/p5Renderer.d.ts +0 -0
  45. package/dist/modules/adapters/p5Renderer.d.ts.map +0 -0
  46. package/dist/modules/adapters/p5Renderer.js +0 -0
  47. package/dist/modules/adapters/p5Renderer.js.map +0 -0
  48. package/dist/modules/adapters/skiaRenderer.d.ts +0 -0
  49. package/dist/modules/adapters/skiaRenderer.d.ts.map +0 -0
  50. package/dist/modules/adapters/skiaRenderer.js +0 -0
  51. package/dist/modules/adapters/skiaRenderer.js.map +0 -0
  52. package/dist/modules/animationDiff.d.ts +0 -0
  53. package/dist/modules/animationDiff.d.ts.map +0 -0
  54. package/dist/modules/animationDiff.js +0 -0
  55. package/dist/modules/animationDiff.js.map +0 -0
  56. package/dist/modules/browserSceneRenderer.d.ts +21 -0
  57. package/dist/modules/browserSceneRenderer.d.ts.map +1 -0
  58. package/dist/modules/browserSceneRenderer.js +263 -0
  59. package/dist/modules/browserSceneRenderer.js.map +1 -0
  60. package/dist/modules/eyeSystem.d.ts +0 -0
  61. package/dist/modules/eyeSystem.d.ts.map +0 -0
  62. package/dist/modules/eyeSystem.js +0 -0
  63. package/dist/modules/eyeSystem.js.map +0 -0
  64. package/dist/modules/imageLoad.d.ts +0 -0
  65. package/dist/modules/imageLoad.d.ts.map +0 -0
  66. package/dist/modules/imageLoad.js +0 -0
  67. package/dist/modules/imageLoad.js.map +0 -0
  68. package/dist/modules/mouthSystem.d.ts +0 -0
  69. package/dist/modules/mouthSystem.d.ts.map +0 -0
  70. package/dist/modules/mouthSystem.js +0 -0
  71. package/dist/modules/mouthSystem.js.map +0 -0
  72. package/dist/modules/renderRig.d.ts +0 -0
  73. package/dist/modules/renderRig.d.ts.map +1 -1
  74. package/dist/modules/renderRig.js +4 -12
  75. package/dist/modules/renderRig.js.map +1 -1
  76. package/dist/modules/sceneRenderer.d.ts +160 -0
  77. package/dist/modules/sceneRenderer.d.ts.map +1 -0
  78. package/dist/modules/sceneRenderer.js +616 -0
  79. package/dist/modules/sceneRenderer.js.map +1 -0
  80. package/dist/tests/helpers.d.ts +0 -0
  81. package/dist/tests/helpers.d.ts.map +0 -0
  82. package/dist/tests/helpers.js +0 -0
  83. package/dist/tests/helpers.js.map +0 -0
  84. package/dist/tests/test-animation-diff-rendering.d.ts +0 -0
  85. package/dist/tests/test-animation-diff-rendering.d.ts.map +0 -0
  86. package/dist/tests/test-animation-diff-rendering.js +0 -0
  87. package/dist/tests/test-animation-diff-rendering.js.map +0 -0
  88. package/dist/tests/test-animation-diff.d.ts +0 -0
  89. package/dist/tests/test-animation-diff.d.ts.map +0 -0
  90. package/dist/tests/test-animation-diff.js +0 -0
  91. package/dist/tests/test-animation-diff.js.map +0 -0
  92. package/dist/tests/test-autofit.d.ts +0 -0
  93. package/dist/tests/test-autofit.d.ts.map +0 -0
  94. package/dist/tests/test-autofit.js +0 -0
  95. package/dist/tests/test-autofit.js.map +0 -0
  96. package/dist/tests/test-base-autofit.d.ts +0 -0
  97. package/dist/tests/test-base-autofit.d.ts.map +0 -0
  98. package/dist/tests/test-base-autofit.js +0 -0
  99. package/dist/tests/test-base-autofit.js.map +0 -0
  100. package/dist/tests/test-browser-scene.d.ts +2 -0
  101. package/dist/tests/test-browser-scene.d.ts.map +1 -0
  102. package/dist/tests/test-browser-scene.js +132 -0
  103. package/dist/tests/test-browser-scene.js.map +1 -0
  104. package/dist/tests/test-cli.d.ts +0 -0
  105. package/dist/tests/test-cli.d.ts.map +0 -0
  106. package/dist/tests/test-cli.js +0 -0
  107. package/dist/tests/test-cli.js.map +0 -0
  108. package/dist/tests/test-image-loading.d.ts +0 -0
  109. package/dist/tests/test-image-loading.d.ts.map +0 -0
  110. package/dist/tests/test-image-loading.js +0 -0
  111. package/dist/tests/test-image-loading.js.map +0 -0
  112. package/dist/tests/test-joint-movement.d.ts +0 -0
  113. package/dist/tests/test-joint-movement.d.ts.map +0 -0
  114. package/dist/tests/test-joint-movement.js +0 -0
  115. package/dist/tests/test-joint-movement.js.map +0 -0
  116. package/dist/tests/test-p5-image-types.d.ts +0 -0
  117. package/dist/tests/test-p5-image-types.d.ts.map +0 -0
  118. package/dist/tests/test-p5-image-types.js +0 -0
  119. package/dist/tests/test-p5-image-types.js.map +0 -0
  120. package/dist/tests/test-render-cache-visual.d.ts +2 -0
  121. package/dist/tests/test-render-cache-visual.d.ts.map +1 -0
  122. package/dist/tests/test-render-cache-visual.js +108 -0
  123. package/dist/tests/test-render-cache-visual.js.map +1 -0
  124. package/dist/tests/test-render-cache.d.ts +2 -0
  125. package/dist/tests/test-render-cache.d.ts.map +1 -0
  126. package/dist/tests/test-render-cache.js +124 -0
  127. package/dist/tests/test-render-cache.js.map +1 -0
  128. package/dist/tests/test-scene.d.ts +13 -0
  129. package/dist/tests/test-scene.d.ts.map +1 -0
  130. package/dist/tests/test-scene.js +528 -0
  131. package/dist/tests/test-scene.js.map +1 -0
  132. package/dist/tests/test-skia.d.ts +0 -0
  133. package/dist/tests/test-skia.d.ts.map +0 -0
  134. package/dist/tests/test-skia.js +0 -0
  135. package/dist/tests/test-skia.js.map +0 -0
  136. package/dist/tests/test-torso-pivot.d.ts +0 -0
  137. package/dist/tests/test-torso-pivot.d.ts.map +0 -0
  138. package/dist/tests/test-torso-pivot.js +0 -0
  139. package/dist/tests/test-torso-pivot.js.map +0 -0
  140. package/dist/tests/test-visual-verification.d.ts +0 -0
  141. package/dist/tests/test-visual-verification.d.ts.map +0 -0
  142. package/dist/tests/test-visual-verification.js +0 -0
  143. package/dist/tests/test-visual-verification.js.map +0 -0
  144. package/dist/types.d.ts +0 -0
  145. package/dist/types.d.ts.map +0 -0
  146. package/dist/types.js +0 -0
  147. package/dist/types.js.map +0 -0
  148. package/package.json +9 -1
package/README.md CHANGED
File without changes
@@ -0,0 +1,194 @@
1
+ [
2
+ {
3
+ "rotationValues": {
4
+ "leftUpperArm": -3.141593,
5
+ "rightUpperArm": 3.141593,
6
+ "leftThigh": -3.141593,
7
+ "rightThigh": 3.141593
8
+ }
9
+ },
10
+ {
11
+ "rotationValues": {
12
+ "leftUpperArm": -3.325734,
13
+ "rightUpperArm": 3.325734,
14
+ "leftThigh": -3.088003,
15
+ "rightThigh": 3.088003
16
+ }
17
+ },
18
+ {
19
+ "rotationValues": {
20
+ "leftUpperArm": -3.828816,
21
+ "rightUpperArm": 3.828816,
22
+ "leftThigh": -2.941593,
23
+ "rightThigh": 2.941593
24
+ }
25
+ },
26
+ {
27
+ "rotationValues": {
28
+ "leftUpperArm": -4.516039,
29
+ "rightUpperArm": 4.516039,
30
+ "leftThigh": -2.741593,
31
+ "rightThigh": 2.741593
32
+ }
33
+ },
34
+ {
35
+ "rotationValues": {
36
+ "leftUpperArm": -5.203263,
37
+ "rightUpperArm": 5.203263,
38
+ "leftThigh": -2.541593,
39
+ "rightThigh": 2.541593
40
+ }
41
+ },
42
+ {
43
+ "rotationValues": {
44
+ "leftUpperArm": -5.706345,
45
+ "rightUpperArm": 5.706345,
46
+ "leftThigh": -2.395182,
47
+ "rightThigh": 2.395182
48
+ }
49
+ },
50
+ {
51
+ "rotationValues": {
52
+ "leftUpperArm": -5.890486,
53
+ "rightUpperArm": 5.890486,
54
+ "leftThigh": -2.341593,
55
+ "rightThigh": 2.341593
56
+ }
57
+ },
58
+ {
59
+ "rotationValues": {
60
+ "leftUpperArm": -5.706345,
61
+ "rightUpperArm": 5.706345,
62
+ "leftThigh": -2.395182,
63
+ "rightThigh": 2.395182
64
+ }
65
+ },
66
+ {
67
+ "rotationValues": {
68
+ "leftUpperArm": -5.203263,
69
+ "rightUpperArm": 5.203263,
70
+ "leftThigh": -2.541593,
71
+ "rightThigh": 2.541593
72
+ }
73
+ },
74
+ {
75
+ "rotationValues": {
76
+ "leftUpperArm": -4.516039,
77
+ "rightUpperArm": 4.516039,
78
+ "leftThigh": -2.741593,
79
+ "rightThigh": 2.741593
80
+ }
81
+ },
82
+ {
83
+ "rotationValues": {
84
+ "leftUpperArm": -3.828816,
85
+ "rightUpperArm": 3.828816,
86
+ "leftThigh": -2.941593,
87
+ "rightThigh": 2.941593
88
+ }
89
+ },
90
+ {
91
+ "rotationValues": {
92
+ "leftUpperArm": -3.325734,
93
+ "rightUpperArm": 3.325734,
94
+ "leftThigh": -3.088003,
95
+ "rightThigh": 3.088003
96
+ }
97
+ },
98
+ {
99
+ "rotationValues": {
100
+ "leftUpperArm": -3.141593,
101
+ "rightUpperArm": 3.141593,
102
+ "leftThigh": -3.141593,
103
+ "rightThigh": 3.141593
104
+ }
105
+ },
106
+ {
107
+ "rotationValues": {
108
+ "leftUpperArm": -3.325734,
109
+ "rightUpperArm": 3.325734,
110
+ "leftThigh": -3.088003,
111
+ "rightThigh": 3.088003
112
+ }
113
+ },
114
+ {
115
+ "rotationValues": {
116
+ "leftUpperArm": -3.828816,
117
+ "rightUpperArm": 3.828816,
118
+ "leftThigh": -2.941593,
119
+ "rightThigh": 2.941593
120
+ }
121
+ },
122
+ {
123
+ "rotationValues": {
124
+ "leftUpperArm": -4.516039,
125
+ "rightUpperArm": 4.516039,
126
+ "leftThigh": -2.741593,
127
+ "rightThigh": 2.741593
128
+ }
129
+ },
130
+ {
131
+ "rotationValues": {
132
+ "leftUpperArm": -5.203263,
133
+ "rightUpperArm": 5.203263,
134
+ "leftThigh": -2.541593,
135
+ "rightThigh": 2.541593
136
+ }
137
+ },
138
+ {
139
+ "rotationValues": {
140
+ "leftUpperArm": -5.706345,
141
+ "rightUpperArm": 5.706345,
142
+ "leftThigh": -2.395182,
143
+ "rightThigh": 2.395182
144
+ }
145
+ },
146
+ {
147
+ "rotationValues": {
148
+ "leftUpperArm": -5.890486,
149
+ "rightUpperArm": 5.890486,
150
+ "leftThigh": -2.341593,
151
+ "rightThigh": 2.341593
152
+ }
153
+ },
154
+ {
155
+ "rotationValues": {
156
+ "leftUpperArm": -5.706345,
157
+ "rightUpperArm": 5.706345,
158
+ "leftThigh": -2.395182,
159
+ "rightThigh": 2.395182
160
+ }
161
+ },
162
+ {
163
+ "rotationValues": {
164
+ "leftUpperArm": -5.203263,
165
+ "rightUpperArm": 5.203263,
166
+ "leftThigh": -2.541593,
167
+ "rightThigh": 2.541593
168
+ }
169
+ },
170
+ {
171
+ "rotationValues": {
172
+ "leftUpperArm": -4.516039,
173
+ "rightUpperArm": 4.516039,
174
+ "leftThigh": -2.741593,
175
+ "rightThigh": 2.741593
176
+ }
177
+ },
178
+ {
179
+ "rotationValues": {
180
+ "leftUpperArm": -3.828816,
181
+ "rightUpperArm": 3.828816,
182
+ "leftThigh": -2.941593,
183
+ "rightThigh": 2.941593
184
+ }
185
+ },
186
+ {
187
+ "rotationValues": {
188
+ "leftUpperArm": -3.325734,
189
+ "rightUpperArm": 3.325734,
190
+ "leftThigh": -3.088003,
191
+ "rightThigh": 3.088003
192
+ }
193
+ }
194
+ ]
package/assets/tank.json CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/dist/cli/diff.js CHANGED
File without changes
File without changes
File without changes
File without changes
@@ -16,20 +16,23 @@ import { runDiff } from './diff.js';
16
16
  import { runQuery } from './query.js';
17
17
  import { runRecord } from './record.js';
18
18
  import { runTest } from './test.js';
19
- const USAGE = `distark-check - CLI tool for LLM-driven rig testing
20
-
21
- Commands:
22
- render <rig.json> [-o out.png] [--width N] [--height N] [--report]
23
- verify <rig.json> [--checks all|bounds,visibility,proportions,zorder]
24
- animate <rig.json> <animation.json> [-o frames/] [--width N] [--height N]
25
- diff <before.png> <after.png> [-o diff.png] [--threshold N]
26
- query <image.png|rig.json> --prompt "..." [-o report.json]
27
- test <rig.json|image|video> --prompt "..." [--tries N] [-o report.json]
28
- record <world.json> [--orc URL] [-o out.mp4] [--timeout 300]
29
-
30
- Environment:
31
- GEMINI_API_KEY Required for 'query' and 'test' commands
32
- ORC_URL Orchestrator URL for 'record' command (default: https://orchestrator.distark.com)
19
+ import { runScene } from './scene.js';
20
+ const USAGE = `distark-check - CLI tool for LLM-driven rig testing
21
+
22
+ Commands:
23
+ render <rig.json> [-o out.png] [--width N] [--height N] [--report]
24
+ verify <rig.json> [--checks all|bounds,visibility,proportions,zorder]
25
+ animate <rig.json> <animation.json> [-o frames/] [--width N] [--height N]
26
+ scene <world.json> [--time 0] [--chars a.json,b.json] [-o out.png] [--report]
27
+ scene <world.json> --keyframes [--frames 5] [--chars ...] [-o frames/]
28
+ diff <before.png> <after.png> [-o diff.png] [--threshold N]
29
+ query <image.png|rig.json> --prompt "..." [-o report.json]
30
+ test <rig.json|image|video> --prompt "..." [--tries N] [-o report.json]
31
+ record <world.json> [--orc URL] [-o out.mp4] [--timeout 300]
32
+
33
+ Environment:
34
+ GEMINI_API_KEY Required for 'query' and 'test' commands
35
+ ORC_URL Orchestrator URL for 'record' command (default: https://orchestrator.distark.com)
33
36
  `;
34
37
  async function main() {
35
38
  const args = process.argv.slice(2);
@@ -51,6 +54,9 @@ async function main() {
51
54
  case 'query':
52
55
  await runQuery(commandArgs);
53
56
  break;
57
+ case 'scene':
58
+ await runScene(commandArgs);
59
+ break;
54
60
  case 'record':
55
61
  await runRecord(commandArgs);
56
62
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"distark-check.js","sourceRoot":"","sources":["../../cli/distark-check.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,KAAK,GAAG;;;;;;;;;;;;;;CAcb,CAAC;AAEF,KAAK,UAAU,IAAI;IACf,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAElC,QAAQ,OAAO,EAAE,CAAC;QACd,KAAK,QAAQ;YACT,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;YAC7B,MAAM;QACV,KAAK,QAAQ;YACT,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;YAC7B,MAAM;QACV,KAAK,SAAS;YACV,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;YAC9B,MAAM;QACV,KAAK,MAAM;YACP,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;YAC3B,MAAM;QACV,KAAK,OAAO;YACR,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC5B,MAAM;QACV,KAAK,QAAQ;YACT,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;YAC7B,MAAM;QACV,KAAK,MAAM;YACP,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;YAC3B,MAAM;QACV;YACI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACf,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"distark-check.js","sourceRoot":"","sources":["../../cli/distark-check.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;CAgBb,CAAC;AAEF,KAAK,UAAU,IAAI;IACf,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAElC,QAAQ,OAAO,EAAE,CAAC;QACd,KAAK,QAAQ;YACT,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;YAC7B,MAAM;QACV,KAAK,QAAQ;YACT,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;YAC7B,MAAM;QACV,KAAK,SAAS;YACV,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;YAC9B,MAAM;QACV,KAAK,MAAM;YACP,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;YAC3B,MAAM;QACV,KAAK,OAAO;YACR,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC5B,MAAM;QACV,KAAK,OAAO;YACR,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC5B,MAAM;QACV,KAAK,QAAQ;YACT,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;YAC7B,MAAM;QACV,KAAK,MAAM;YACP,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;YAC3B,MAAM;QACV;YACI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IACf,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
File without changes
File without changes
package/dist/cli/query.js CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,15 @@
1
+ /**
2
+ * scene command - Render a world JSON scene to PNG frames or MP4 video
3
+ *
4
+ * Usage:
5
+ * distark-check scene <world.json> [--time 0] [-o output.png]
6
+ * distark-check scene <world.json> --keyframes [--frames 5] [-o frames/]
7
+ * distark-check scene <world.json> --video [-o output.mp4] [--fps 30]
8
+ *
9
+ * Characters: If world.characters[].imagePaths exists, rig data is used directly.
10
+ * Otherwise pass --chars char1.json,char2.json (id=path or just path).
11
+ *
12
+ * No audio/mouth — visual-only preview.
13
+ */
14
+ export declare function runScene(args: string[]): Promise<void>;
15
+ //# sourceMappingURL=scene.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../cli/scene.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAkEH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuD5D"}
@@ -0,0 +1,239 @@
1
+ /**
2
+ * scene command - Render a world JSON scene to PNG frames or MP4 video
3
+ *
4
+ * Usage:
5
+ * distark-check scene <world.json> [--time 0] [-o output.png]
6
+ * distark-check scene <world.json> --keyframes [--frames 5] [-o frames/]
7
+ * distark-check scene <world.json> --video [-o output.mp4] [--fps 30]
8
+ *
9
+ * Characters: If world.characters[].imagePaths exists, rig data is used directly.
10
+ * Otherwise pass --chars char1.json,char2.json (id=path or just path).
11
+ *
12
+ * No audio/mouth — visual-only preview.
13
+ */
14
+ import { readFile, writeFile } from 'fs/promises';
15
+ import { existsSync } from 'fs';
16
+ import { renderScene, renderSceneKeyFrames, evaluateScene, SceneEngine } from '../modules/sceneRenderer.js';
17
+ function getMaxTime(world) {
18
+ let maxTime = 0;
19
+ for (const track of world.timeline || []) {
20
+ for (const lane of track.lanes || []) {
21
+ for (const kf of lane.keyframes || []) {
22
+ if (kf.time > maxTime)
23
+ maxTime = kf.time;
24
+ }
25
+ }
26
+ }
27
+ return maxTime || 5;
28
+ }
29
+ async function loadRigDataMap(world, charsArg) {
30
+ const rigDataMap = {};
31
+ // 1. Check if characters in world JSON already have embedded rig data
32
+ for (const char of world.characters || []) {
33
+ if (char.imagePaths) {
34
+ rigDataMap[char.id] = char;
35
+ console.error(` Using embedded rig: ${char.id}`);
36
+ }
37
+ }
38
+ // 2. Load from --chars argument (overrides embedded data)
39
+ if (charsArg) {
40
+ const entries = charsArg.split(',').map(s => s.trim()).filter(Boolean);
41
+ for (const entry of entries) {
42
+ let id, path;
43
+ if (entry.includes('=')) {
44
+ [id, path] = entry.split('=', 2);
45
+ }
46
+ else {
47
+ path = entry;
48
+ id = path.replace(/\.json$/, '').split('/').pop() || path;
49
+ }
50
+ if (!existsSync(path)) {
51
+ console.error(` Warning: not found: ${path}`);
52
+ continue;
53
+ }
54
+ try {
55
+ rigDataMap[id] = JSON.parse(await readFile(path, 'utf-8'));
56
+ console.error(` Loaded rig file: ${id} ← ${path}`);
57
+ }
58
+ catch (e) {
59
+ console.error(` Warning: parse failed ${path}: ${e.message}`);
60
+ }
61
+ }
62
+ }
63
+ const embedded = Object.keys(rigDataMap).length;
64
+ const charTotal = (world.characters || []).length;
65
+ if (embedded === 0 && charTotal > 0) {
66
+ console.error(` No rig data found — ${charTotal} character(s) will render as placeholders`);
67
+ }
68
+ return rigDataMap;
69
+ }
70
+ export async function runScene(args) {
71
+ const inputFile = args.find(a => !a.startsWith('-')) || '';
72
+ if (!inputFile) {
73
+ console.error(`Usage:
74
+ distark-check scene <world.json> [--time 0] [-o output.png] [--report]
75
+ distark-check scene <world.json> --keyframes [--frames 5] [-o frames/]
76
+ distark-check scene <world.json> --video [-o output.mp4] [--fps 30]
77
+
78
+ Options:
79
+ --time <seconds> Time to evaluate (default: 0)
80
+ --chars <files> Comma-separated rig files: id=path or path (optional if embedded)
81
+ --keyframes Render key frames across scene duration
82
+ --video Render all frames and assemble into MP4 via ffmpeg
83
+ --frames <count> Key frame count (default: 5, used with --keyframes)
84
+ --fps <number> Frames per second for --video (default: 30)
85
+ --width <pixels> Output width (default: 2560)
86
+ --height <pixels> Output height (default: 1440)
87
+ -o <path> Output file or directory
88
+ --state Print scene state as JSON (no rendering)
89
+ --report Save report JSON alongside output`);
90
+ process.exit(1);
91
+ }
92
+ // Parse args
93
+ const getArg = (flag) => { const i = args.indexOf(flag); return i !== -1 ? args[i + 1] : undefined; };
94
+ const time = parseFloat(getArg('--time') || '0');
95
+ const charsArg = getArg('--chars') || '';
96
+ const outIdx = args.indexOf('-o');
97
+ const keyframeMode = args.includes('--keyframes');
98
+ const videoMode = args.includes('--video');
99
+ const frameCount = parseInt(getArg('--frames') || '5');
100
+ const fps = parseInt(getArg('--fps') || '30');
101
+ const width = parseInt(getArg('--width') || '2560');
102
+ const height = parseInt(getArg('--height') || '1440');
103
+ const stateOnly = args.includes('--state');
104
+ const wantReport = args.includes('--report');
105
+ const world = JSON.parse(await readFile(inputFile, 'utf-8'));
106
+ if (stateOnly) {
107
+ const state = evaluateScene(world, time);
108
+ console.log(JSON.stringify(state, null, 2));
109
+ return;
110
+ }
111
+ console.error(`Loading character rigs...`);
112
+ const rigDataMap = await loadRigDataMap(world, charsArg);
113
+ if (videoMode) {
114
+ await renderVideo(world, rigDataMap, { width, height, fps, inputFile, outputArg: outIdx !== -1 ? args[outIdx + 1] : undefined });
115
+ }
116
+ else if (keyframeMode) {
117
+ await renderKeyframes(world, rigDataMap, { width, height, frameCount, inputFile, outputArg: outIdx !== -1 ? args[outIdx + 1] : undefined });
118
+ }
119
+ else {
120
+ await renderSingleFrame(world, rigDataMap, { width, height, time, wantReport, inputFile, outputArg: outIdx !== -1 ? args[outIdx + 1] : undefined });
121
+ }
122
+ }
123
+ // ── Single frame ──────────────────────────────────────────────────
124
+ async function renderSingleFrame(world, rigDataMap, opts) {
125
+ const outputFile = opts.outputArg || opts.inputFile.replace(/\.json$/, '.png');
126
+ console.error(`Rendering scene at t=${opts.time}s → ${outputFile}`);
127
+ const origLog = console.log;
128
+ console.log = (...a) => console.error(...a);
129
+ const report = await renderScene(world, opts.time, outputFile, rigDataMap, { width: opts.width, height: opts.height });
130
+ console.log = origLog;
131
+ console.error(`Rendered: ${outputFile} (${opts.width}x${opts.height})`);
132
+ console.error(` Characters: ${report.quality.visible_characters}/${report.quality.total_characters} visible`);
133
+ if (opts.wantReport) {
134
+ const reportFile = outputFile.replace(/\.png$/, '.report.json');
135
+ await writeFile(reportFile, JSON.stringify(report, null, 2));
136
+ console.error(`Report: ${reportFile}`);
137
+ }
138
+ console.log(JSON.stringify(report, null, 2));
139
+ }
140
+ // ── Keyframes ─────────────────────────────────────────────────────
141
+ async function renderKeyframes(world, rigDataMap, opts) {
142
+ const outputDir = opts.outputArg || 'scene-frames';
143
+ console.error(`Rendering ${opts.frameCount} key frames to ${outputDir}/`);
144
+ const reports = await renderSceneKeyFrames(world, outputDir, rigDataMap, {
145
+ width: opts.width, height: opts.height, frameCount: opts.frameCount
146
+ });
147
+ const manifest = {
148
+ input: opts.inputFile, output_dir: outputDir, frame_count: reports.length,
149
+ frames: reports.map((r, i) => ({
150
+ index: i, time: r.time, file: `${String(i).padStart(3, '0')}.png`,
151
+ visible_characters: r.characters.filter(c => !c.hidden).map(c => c.id), camera: r.camera,
152
+ })),
153
+ quality: reports[0]?.quality || {},
154
+ };
155
+ await writeFile(`${outputDir}/manifest.json`, JSON.stringify(manifest, null, 2));
156
+ console.error(`Manifest: ${outputDir}/manifest.json`);
157
+ console.log(JSON.stringify(manifest, null, 2));
158
+ }
159
+ // ── Video ─────────────────────────────────────────────────────────
160
+ async function renderVideo(world, rigDataMap, opts) {
161
+ const { spawn } = await import('child_process');
162
+ const outputFile = opts.outputArg || opts.inputFile.replace(/\.json$/, '.mp4');
163
+ const maxTime = getMaxTime(world);
164
+ const totalFrames = Math.max(1, Math.ceil(maxTime * opts.fps));
165
+ console.error(`Rendering video: ${totalFrames} frames at ${opts.fps}fps (${maxTime.toFixed(1)}s) → ${outputFile}`);
166
+ console.error(` Resolution: ${opts.width}x${opts.height}`);
167
+ const engine = new SceneEngine(world, rigDataMap);
168
+ console.error(` Initializing engine...`);
169
+ const origLog = console.log;
170
+ console.log = (...a) => console.error(...a);
171
+ await engine.init();
172
+ console.log = origLog;
173
+ console.error(` Engine ready. Piping raw frames to ffmpeg...`);
174
+ // Spawn ffmpeg, pipe raw RGBA frames via stdin — no PNG encoding, no temp files
175
+ const ffmpeg = spawn('ffmpeg', [
176
+ '-y',
177
+ '-f', 'rawvideo',
178
+ '-pix_fmt', 'rgba',
179
+ '-s', `${opts.width}x${opts.height}`,
180
+ '-r', String(opts.fps),
181
+ '-i', 'pipe:0',
182
+ '-c:v', 'libx264',
183
+ '-pix_fmt', 'yuv420p',
184
+ '-crf', '23',
185
+ '-preset', 'fast',
186
+ outputFile
187
+ ], { stdio: ['pipe', 'pipe', 'pipe'] });
188
+ const ffmpegPromise = new Promise((resolve, reject) => {
189
+ ffmpeg.on('close', (code) => {
190
+ if (code === 0)
191
+ resolve();
192
+ else
193
+ reject(new Error(`ffmpeg exited with code ${code}`));
194
+ });
195
+ ffmpeg.on('error', reject);
196
+ });
197
+ const startTime = Date.now();
198
+ for (let i = 0; i < totalFrames; i++) {
199
+ const t = i / opts.fps;
200
+ const canvas = await engine.renderFrameToCanvas(t, opts.width, opts.height);
201
+ // Get raw RGBA pixel data from canvas
202
+ const ctx = canvas.getContext('2d');
203
+ const imageData = ctx.getImageData(0, 0, opts.width, opts.height);
204
+ const rgbaBuffer = Buffer.from(imageData.data.buffer);
205
+ // Write to ffmpeg stdin (backpressure handling)
206
+ const canWrite = ffmpeg.stdin.write(rgbaBuffer);
207
+ if (!canWrite) {
208
+ await new Promise(resolve => ffmpeg.stdin.once('drain', resolve));
209
+ }
210
+ if (i % 30 === 0 || i === totalFrames - 1) {
211
+ const elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
212
+ const pct = Math.round((i / totalFrames) * 100);
213
+ const msPerFrame = i > 0 ? ((Date.now() - startTime) / i).toFixed(0) : '?';
214
+ console.error(` Frame ${i}/${totalFrames - 1} (${pct}%) t=${t.toFixed(2)}s [${elapsed}s, ${msPerFrame}ms/frame]`);
215
+ }
216
+ }
217
+ // Close stdin to signal EOF, wait for ffmpeg to finish
218
+ ffmpeg.stdin.end();
219
+ await ffmpegPromise;
220
+ const renderTime = ((Date.now() - startTime) / 1000).toFixed(1);
221
+ const { statSync } = await import('fs');
222
+ const stats = statSync(outputFile);
223
+ const sizeMB = (stats.size / 1024 / 1024).toFixed(1);
224
+ const totalTime = ((Date.now() - startTime) / 1000).toFixed(1);
225
+ console.error(` Video: ${outputFile} (${sizeMB}MB, ${totalTime}s total)`);
226
+ const report = {
227
+ input: opts.inputFile,
228
+ output: outputFile,
229
+ duration_seconds: maxTime,
230
+ fps: opts.fps,
231
+ total_frames: totalFrames,
232
+ resolution: { width: opts.width, height: opts.height },
233
+ file_size_mb: parseFloat(sizeMB),
234
+ render_time_seconds: parseFloat(renderTime),
235
+ total_time_seconds: parseFloat(totalTime),
236
+ };
237
+ console.log(JSON.stringify(report, null, 2));
238
+ }
239
+ //# sourceMappingURL=scene.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene.js","sourceRoot":"","sources":["../../cli/scene.ts"],"names":[],"mappings":"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"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/dist/cli/test.js CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes