distark-render 1.1.9 → 1.1.11

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 (156) hide show
  1. package/README.md +0 -0
  2. package/assets/tank.json +0 -0
  3. package/dist/cli/animate.d.ts +0 -0
  4. package/dist/cli/animate.d.ts.map +0 -0
  5. package/dist/cli/animate.js +0 -0
  6. package/dist/cli/animate.js.map +0 -0
  7. package/dist/cli/diff.d.ts +0 -0
  8. package/dist/cli/diff.d.ts.map +0 -0
  9. package/dist/cli/diff.js +0 -0
  10. package/dist/cli/diff.js.map +0 -0
  11. package/dist/cli/distark-check.d.ts +0 -0
  12. package/dist/cli/distark-check.d.ts.map +0 -0
  13. package/dist/cli/distark-check.js +16 -16
  14. package/dist/cli/distark-check.js.map +0 -0
  15. package/dist/cli/query.d.ts +0 -0
  16. package/dist/cli/query.d.ts.map +0 -0
  17. package/dist/cli/query.js +0 -0
  18. package/dist/cli/query.js.map +0 -0
  19. package/dist/cli/record.d.ts +0 -0
  20. package/dist/cli/record.d.ts.map +0 -0
  21. package/dist/cli/record.js +0 -0
  22. package/dist/cli/record.js.map +0 -0
  23. package/dist/cli/render.d.ts +0 -0
  24. package/dist/cli/render.d.ts.map +0 -0
  25. package/dist/cli/render.js +0 -0
  26. package/dist/cli/render.js.map +0 -0
  27. package/dist/cli/scene.d.ts +2 -12
  28. package/dist/cli/scene.d.ts.map +1 -1
  29. package/dist/cli/scene.js +4 -235
  30. package/dist/cli/scene.js.map +1 -1
  31. package/dist/cli/shared.d.ts +0 -0
  32. package/dist/cli/shared.d.ts.map +0 -0
  33. package/dist/cli/shared.js +0 -0
  34. package/dist/cli/shared.js.map +0 -0
  35. package/dist/cli/test.d.ts +0 -0
  36. package/dist/cli/test.d.ts.map +0 -0
  37. package/dist/cli/test.js +0 -0
  38. package/dist/cli/test.js.map +0 -0
  39. package/dist/cli/verify.d.ts +0 -0
  40. package/dist/cli/verify.d.ts.map +0 -0
  41. package/dist/cli/verify.js +0 -0
  42. package/dist/cli/verify.js.map +0 -0
  43. package/dist/modules/adapters/p5Renderer.d.ts +0 -0
  44. package/dist/modules/adapters/p5Renderer.d.ts.map +1 -1
  45. package/dist/modules/adapters/p5Renderer.js +40 -17
  46. package/dist/modules/adapters/p5Renderer.js.map +1 -1
  47. package/dist/modules/adapters/skiaRenderer.d.ts +2 -0
  48. package/dist/modules/adapters/skiaRenderer.d.ts.map +1 -1
  49. package/dist/modules/adapters/skiaRenderer.js +47 -16
  50. package/dist/modules/adapters/skiaRenderer.js.map +1 -1
  51. package/dist/modules/animationDiff.d.ts +0 -0
  52. package/dist/modules/animationDiff.d.ts.map +0 -0
  53. package/dist/modules/animationDiff.js +0 -0
  54. package/dist/modules/animationDiff.js.map +0 -0
  55. package/dist/modules/browserSceneRenderer.d.ts +21 -0
  56. package/dist/modules/browserSceneRenderer.d.ts.map +1 -0
  57. package/dist/modules/browserSceneRenderer.js +263 -0
  58. package/dist/modules/browserSceneRenderer.js.map +1 -0
  59. package/dist/modules/eyeSystem.d.ts +0 -0
  60. package/dist/modules/eyeSystem.d.ts.map +0 -0
  61. package/dist/modules/eyeSystem.js +0 -0
  62. package/dist/modules/eyeSystem.js.map +0 -0
  63. package/dist/modules/imageLoad.d.ts +22 -8
  64. package/dist/modules/imageLoad.d.ts.map +1 -1
  65. package/dist/modules/imageLoad.js +203 -78
  66. package/dist/modules/imageLoad.js.map +1 -1
  67. package/dist/modules/mouthSystem.d.ts +0 -0
  68. package/dist/modules/mouthSystem.d.ts.map +0 -0
  69. package/dist/modules/mouthSystem.js +0 -0
  70. package/dist/modules/mouthSystem.js.map +0 -0
  71. package/dist/modules/renderRig.d.ts +0 -0
  72. package/dist/modules/renderRig.d.ts.map +1 -1
  73. package/dist/modules/renderRig.js +40 -0
  74. package/dist/modules/renderRig.js.map +1 -1
  75. package/dist/modules/sceneRenderer.d.ts +2 -1
  76. package/dist/modules/sceneRenderer.d.ts.map +1 -1
  77. package/dist/modules/sceneRenderer.js +9 -6
  78. package/dist/modules/sceneRenderer.js.map +1 -1
  79. package/dist/tests/helpers.d.ts +0 -0
  80. package/dist/tests/helpers.d.ts.map +0 -0
  81. package/dist/tests/helpers.js +0 -0
  82. package/dist/tests/helpers.js.map +0 -0
  83. package/dist/tests/test-animation-diff-rendering.d.ts +0 -0
  84. package/dist/tests/test-animation-diff-rendering.d.ts.map +0 -0
  85. package/dist/tests/test-animation-diff-rendering.js +0 -0
  86. package/dist/tests/test-animation-diff-rendering.js.map +0 -0
  87. package/dist/tests/test-animation-diff.d.ts +0 -0
  88. package/dist/tests/test-animation-diff.d.ts.map +0 -0
  89. package/dist/tests/test-animation-diff.js +0 -0
  90. package/dist/tests/test-animation-diff.js.map +0 -0
  91. package/dist/tests/test-autofit.d.ts +0 -0
  92. package/dist/tests/test-autofit.d.ts.map +0 -0
  93. package/dist/tests/test-autofit.js +0 -0
  94. package/dist/tests/test-autofit.js.map +0 -0
  95. package/dist/tests/test-base-autofit.d.ts +0 -0
  96. package/dist/tests/test-base-autofit.d.ts.map +0 -0
  97. package/dist/tests/test-base-autofit.js +0 -0
  98. package/dist/tests/test-base-autofit.js.map +0 -0
  99. package/dist/tests/test-browser-scene.d.ts +2 -0
  100. package/dist/tests/test-browser-scene.d.ts.map +1 -0
  101. package/dist/tests/test-browser-scene.js +132 -0
  102. package/dist/tests/test-browser-scene.js.map +1 -0
  103. package/dist/tests/test-cli.d.ts +0 -0
  104. package/dist/tests/test-cli.d.ts.map +0 -0
  105. package/dist/tests/test-cli.js +0 -0
  106. package/dist/tests/test-cli.js.map +0 -0
  107. package/dist/tests/test-image-loading.d.ts +0 -0
  108. package/dist/tests/test-image-loading.d.ts.map +0 -0
  109. package/dist/tests/test-image-loading.js +0 -0
  110. package/dist/tests/test-image-loading.js.map +0 -0
  111. package/dist/tests/test-joint-movement.d.ts +0 -0
  112. package/dist/tests/test-joint-movement.d.ts.map +0 -0
  113. package/dist/tests/test-joint-movement.js +0 -0
  114. package/dist/tests/test-joint-movement.js.map +0 -0
  115. package/dist/tests/test-p5-image-types.d.ts +0 -0
  116. package/dist/tests/test-p5-image-types.d.ts.map +0 -0
  117. package/dist/tests/test-p5-image-types.js +0 -0
  118. package/dist/tests/test-p5-image-types.js.map +0 -0
  119. package/dist/tests/test-render-cache-visual.d.ts +2 -0
  120. package/dist/tests/test-render-cache-visual.d.ts.map +1 -0
  121. package/dist/tests/test-render-cache-visual.js +108 -0
  122. package/dist/tests/test-render-cache-visual.js.map +1 -0
  123. package/dist/tests/test-render-cache.d.ts +2 -0
  124. package/dist/tests/test-render-cache.d.ts.map +1 -0
  125. package/dist/tests/test-render-cache.js +124 -0
  126. package/dist/tests/test-render-cache.js.map +1 -0
  127. package/dist/tests/test-scene-object-svg-rerasterization.d.ts +2 -0
  128. package/dist/tests/test-scene-object-svg-rerasterization.d.ts.map +1 -0
  129. package/dist/tests/test-scene-object-svg-rerasterization.js +86 -0
  130. package/dist/tests/test-scene-object-svg-rerasterization.js.map +1 -0
  131. package/dist/tests/test-scene.d.ts +0 -0
  132. package/dist/tests/test-scene.d.ts.map +0 -0
  133. package/dist/tests/test-scene.js +0 -0
  134. package/dist/tests/test-scene.js.map +0 -0
  135. package/dist/tests/test-skia.d.ts +0 -0
  136. package/dist/tests/test-skia.d.ts.map +0 -0
  137. package/dist/tests/test-skia.js +0 -0
  138. package/dist/tests/test-skia.js.map +0 -0
  139. package/dist/tests/test-svg-rerasterization.d.ts +2 -0
  140. package/dist/tests/test-svg-rerasterization.d.ts.map +1 -0
  141. package/dist/tests/test-svg-rerasterization.js +97 -0
  142. package/dist/tests/test-svg-rerasterization.js.map +1 -0
  143. package/dist/tests/test-torso-pivot.d.ts +0 -0
  144. package/dist/tests/test-torso-pivot.d.ts.map +0 -0
  145. package/dist/tests/test-torso-pivot.js +0 -0
  146. package/dist/tests/test-torso-pivot.js.map +0 -0
  147. package/dist/tests/test-visual-verification.d.ts +0 -0
  148. package/dist/tests/test-visual-verification.d.ts.map +0 -0
  149. package/dist/tests/test-visual-verification.js +0 -0
  150. package/dist/tests/test-visual-verification.js.map +0 -0
  151. package/dist/types.d.ts +0 -0
  152. package/dist/types.d.ts.map +0 -0
  153. package/dist/types.js +0 -0
  154. package/dist/types.js.map +0 -0
  155. package/package.json +5 -1
  156. package/assets/presets/jumping-jack.json +0 -194
package/README.md CHANGED
File without changes
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
@@ -17,22 +17,22 @@ import { runQuery } from './query.js';
17
17
  import { runRecord } from './record.js';
18
18
  import { runTest } from './test.js';
19
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)
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)
36
36
  `;
37
37
  async function main() {
38
38
  const args = process.argv.slice(2);
File without changes
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
@@ -1,15 +1,5 @@
1
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.
2
+ * scene command - stub placeholder (not yet implemented)
13
3
  */
14
- export declare function runScene(args: string[]): Promise<void>;
4
+ export declare function runScene(_args: string[]): Promise<void>;
15
5
  //# sourceMappingURL=scene.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../cli/scene.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAG7D"}
package/dist/cli/scene.js CHANGED
@@ -1,239 +1,8 @@
1
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.
2
+ * scene command - stub placeholder (not yet implemented)
13
3
  */
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));
4
+ export async function runScene(_args) {
5
+ console.error('scene command is not yet implemented');
6
+ process.exit(1);
238
7
  }
239
8
  //# sourceMappingURL=scene.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scene.js","sourceRoot":"","sources":["../../cli/scene.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scene.js","sourceRoot":"","sources":["../../cli/scene.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,KAAe;IAC1C,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
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
@@ -1 +1 @@
1
- {"version":3,"file":"p5Renderer.d.ts","sourceRoot":"","sources":["../../../modules/adapters/p5Renderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5E,KAAK,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AAEhF;;;GAGG;AACH,qBAAa,aAAc,SAAQ,WAAW;IAC1C,OAAO,CAAC,EAAE,CAAM;gBAEJ,UAAU,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM;IAK9C;;;OAGG;IACH,SAAS,CACL,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,EACxC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,KAAK,IAAI,GACvD,IAAI;IA8BP;;;;OAIG;IACG,gBAAgB,CAClB,OAAO,EAAE,OAAO,EAChB,QAAQ,GAAE,OAAc,EACxB,UAAU,CAAC,EAAE,gBAAgB,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAwClC;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,UAAW,SAAQ,oBAAoB;IAChD,OAAO,CAAC,EAAE,CAAM;IAChB,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,OAAO,CAAkB;gBAErB,UAAU,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM;IAM9C;;;OAGG;IACG,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjD;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa;IAe1E;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,UAAU,GAAE,OAAe,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI;IA6BrF;;;;;;OAMG;IACH,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,UAAU,GAAE,OAAe,GAAG,IAAI;IAKhG;;OAEG;IACH,KAAK,IAAI,OAAO;IAIhB;;OAEG;IACH,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAGzC"}
1
+ {"version":3,"file":"p5Renderer.d.ts","sourceRoot":"","sources":["../../../modules/adapters/p5Renderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5E,KAAK,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AAEhF;;;GAGG;AACH,qBAAa,aAAc,SAAQ,WAAW;IAC1C,OAAO,CAAC,EAAE,CAAM;gBAEJ,UAAU,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM;IAK9C;;;OAGG;IACH,SAAS,CACL,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,EACxC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,KAAK,IAAI,GACvD,IAAI;IA8DP;;;;OAIG;IACG,gBAAgB,CAClB,OAAO,EAAE,OAAO,EAChB,QAAQ,GAAE,OAAc,EACxB,UAAU,CAAC,EAAE,gBAAgB,GAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAwClC;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,UAAW,SAAQ,oBAAoB;IAChD,OAAO,CAAC,EAAE,CAAM;IAChB,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,OAAO,CAAkB;gBAErB,UAAU,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM;IAM9C;;;OAGG;IACG,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjD;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa;IAe1E;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,UAAU,GAAE,OAAe,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI;IA6BrF;;;;;;OAMG;IACH,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,UAAU,GAAE,OAAe,GAAG,IAAI;IAKhG;;OAEG;IACH,KAAK,IAAI,OAAO;IAIhB;;OAEG;IACH,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAGzC"}
@@ -18,30 +18,53 @@ export class P5ImageLoader extends ImageLoader {
18
18
  * Inherits all caching, URL resolution, and batch loading from base class
19
19
  */
20
20
  loadImage(key, imageData, onLoad, onError) {
21
- const imageUrl = this.resolveImageSource(imageData);
22
- if (!imageUrl) {
23
- console.warn(`Could not resolve image source for ${key}: ${imageData}`);
24
- if (onError)
25
- onError(key, 'Invalid image source');
26
- return;
27
- }
28
- // Check cache first (from base class)
29
21
  const cached = this.getCachedImage(key);
30
22
  if (cached) {
31
23
  if (onLoad)
32
24
  onLoad(key, cached);
33
25
  return;
34
26
  }
35
- // Use p5.loadImage
36
- this.p5.loadImage(imageUrl, (img) => {
37
- this.cacheImage(key, img);
38
- if (onLoad)
39
- onLoad(key, img);
40
- }, (err) => {
41
- console.error(`Failed to load ${key}:`, err);
27
+ const imageUrl = this.resolveImageSource(imageData);
28
+ if (!imageUrl) {
29
+ console.warn(`Could not resolve image source for ${key}: ${imageData}`);
42
30
  if (onError)
43
- onError(key, err);
44
- });
31
+ onError(key, 'Invalid image source');
32
+ return;
33
+ }
34
+ void (async () => {
35
+ try {
36
+ const prepared = await this.prepareResolvedAsset(imageUrl);
37
+ if (prepared?.kind === 'svg') {
38
+ const canvas = await this.createSvgCanvas(prepared.svgSource, prepared.intrinsicWidth, prepared.intrinsicHeight);
39
+ this.attachSvgMetadata(canvas, prepared.svgSource, prepared.intrinsicWidth, prepared.intrinsicHeight, prepared.intrinsicWidth, prepared.intrinsicHeight);
40
+ this.cacheImage(key, canvas);
41
+ if (onLoad)
42
+ onLoad(key, canvas);
43
+ return;
44
+ }
45
+ const loadUrl = prepared?.kind === 'blob' ? prepared.objectUrl : imageUrl;
46
+ this.p5.loadImage(loadUrl, (img) => {
47
+ this.cacheImage(key, img);
48
+ if (prepared?.kind === 'blob') {
49
+ URL.revokeObjectURL(prepared.objectUrl);
50
+ }
51
+ if (onLoad)
52
+ onLoad(key, img);
53
+ }, (err) => {
54
+ if (prepared?.kind === 'blob') {
55
+ URL.revokeObjectURL(prepared.objectUrl);
56
+ }
57
+ console.error(`Failed to load ${key}:`, err);
58
+ if (onError)
59
+ onError(key, err);
60
+ });
61
+ }
62
+ catch (err) {
63
+ console.error(`Failed to load ${key}:`, err);
64
+ if (onError)
65
+ onError(key, err instanceof Error ? err.message : err);
66
+ }
67
+ })();
45
68
  }
46
69
  /**
47
70
  * Override to use p5.loadImage instead of createImageBitmap.
@@ -1 +1 @@
1
- {"version":3,"file":"p5Renderer.js","sourceRoot":"","sources":["../../../modules/adapters/p5Renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"p5Renderer.js","sourceRoot":"","sources":["../../../modules/adapters/p5Renderer.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,8 @@ export declare class SkiaImageLoader extends ImageLoader {
17
17
  */
18
18
  loadImageAsync(key: string, imageData: string): Promise<any>;
19
19
  loadAllRigImagesAsync(rigData: RigData): Promise<Record<string, any>>;
20
+ protected createSvgCanvas(svgSource: string, targetWidth: number, targetHeight: number): Promise<any>;
21
+ private getCanvasModule;
20
22
  }
21
23
  /**
22
24
  * Skia Canvas Renderer - Complete rendering solution for Node.js
@@ -1 +1 @@
1
- {"version":3,"file":"skiaRenderer.d.ts","sourceRoot":"","sources":["../../../modules/adapters/skiaRenderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE5E;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,WAAW;gBAChC,QAAQ,CAAC,EAAE,MAAM;IAI7B;;;OAGG;IACG,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA+B5D,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAgE9E;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,YAAa,SAAQ,oBAAoB;IAClD,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,OAAO,CAAkB;gBAErB,QAAQ,CAAC,EAAE,MAAM;IAK7B;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjD;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAa/D;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,OAAO,CAAC,aAAa,CAAM,GAAG,aAAa;IAe9E;;;OAGG;IACH,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,UAAU,GAAE,OAAe,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI;IAgC/F;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,UAAU,GAAE,OAAe,GAAG,IAAI;IAgBlH;;;;;;OAMG;IACG,YAAY,CACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/E,OAAO,CAAC,IAAI,CAAC;IA+BhB;;OAEG;IACG,cAAc,CAChB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,EAChC,MAAM,GAAE,KAAK,GAAG,MAAc,GAC/B,OAAO,CAAC,MAAM,CAAC;IAclB;;OAEG;IACH,KAAK,IAAI,OAAO;IAIhB;;OAEG;IACH,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAGzC"}
1
+ {"version":3,"file":"skiaRenderer.d.ts","sourceRoot":"","sources":["../../../modules/adapters/skiaRenderer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE5E;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,WAAW;gBAChC,QAAQ,CAAC,EAAE,MAAM;IAI7B;;;OAGG;IACG,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA0C5D,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;cAiElD,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;YAiBtG,eAAe;CAiBhC;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,YAAa,SAAQ,oBAAoB;IAClD,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,OAAO,CAAkB;gBAErB,QAAQ,CAAC,EAAE,MAAM;IAK7B;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAMjD;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAa/D;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAE,OAAO,CAAC,aAAa,CAAM,GAAG,aAAa;IAe9E;;;OAGG;IACH,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,UAAU,GAAE,OAAe,EAAE,WAAW,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI;IAgC/F;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,UAAU,GAAE,OAAe,GAAG,IAAI;IAgBlH;;;;;;OAMG;IACG,YAAY,CACd,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/E,OAAO,CAAC,IAAI,CAAC;IA+BhB;;OAEG;IACG,cAAc,CAChB,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,EAChC,MAAM,GAAE,KAAK,GAAG,MAAc,GAC/B,OAAO,CAAC,MAAM,CAAC;IAclB;;OAEG;IACH,KAAK,IAAI,OAAO;IAIhB;;OAEG;IACH,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAGzC"}