distark-render 1.0.5 → 1.0.7

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 (94) hide show
  1. package/README.md +158 -154
  2. package/dist/cli/animate.d.ts +8 -0
  3. package/dist/cli/animate.d.ts.map +1 -0
  4. package/dist/cli/animate.js +121 -0
  5. package/dist/cli/animate.js.map +1 -0
  6. package/dist/cli/diff.d.ts +8 -0
  7. package/dist/cli/diff.d.ts.map +1 -0
  8. package/dist/cli/diff.js +124 -0
  9. package/dist/cli/diff.js.map +1 -0
  10. package/dist/cli/distark-check.d.ts +13 -0
  11. package/dist/cli/distark-check.d.ts.map +1 -0
  12. package/dist/cli/distark-check.js +69 -0
  13. package/dist/cli/distark-check.js.map +1 -0
  14. package/dist/cli/query.d.ts +12 -0
  15. package/dist/cli/query.d.ts.map +1 -0
  16. package/dist/cli/query.js +64 -0
  17. package/dist/cli/query.js.map +1 -0
  18. package/dist/cli/record.d.ts +13 -0
  19. package/dist/cli/record.d.ts.map +1 -0
  20. package/dist/cli/record.js +97 -0
  21. package/dist/cli/record.js.map +1 -0
  22. package/dist/cli/render.d.ts +40 -0
  23. package/dist/cli/render.d.ts.map +1 -0
  24. package/dist/cli/render.js +75 -0
  25. package/dist/cli/render.js.map +1 -0
  26. package/dist/cli/shared.d.ts +6 -0
  27. package/dist/cli/shared.d.ts.map +1 -0
  28. package/dist/cli/shared.js +54 -0
  29. package/dist/cli/shared.js.map +1 -0
  30. package/dist/cli/test.d.ts +13 -0
  31. package/dist/cli/test.d.ts.map +1 -0
  32. package/dist/cli/test.js +130 -0
  33. package/dist/cli/test.js.map +1 -0
  34. package/dist/cli/verify.d.ts +21 -0
  35. package/dist/cli/verify.d.ts.map +1 -0
  36. package/dist/cli/verify.js +175 -0
  37. package/dist/cli/verify.js.map +1 -0
  38. package/dist/modules/adapters/p5Renderer.d.ts +0 -0
  39. package/dist/modules/adapters/p5Renderer.d.ts.map +0 -0
  40. package/dist/modules/adapters/p5Renderer.js +0 -0
  41. package/dist/modules/adapters/p5Renderer.js.map +0 -0
  42. package/dist/modules/adapters/skiaRenderer.d.ts +0 -0
  43. package/dist/modules/adapters/skiaRenderer.d.ts.map +0 -0
  44. package/dist/modules/adapters/skiaRenderer.js +0 -0
  45. package/dist/modules/adapters/skiaRenderer.js.map +0 -0
  46. package/dist/modules/animationDiff.d.ts +101 -0
  47. package/dist/modules/animationDiff.d.ts.map +1 -0
  48. package/dist/modules/animationDiff.js +327 -0
  49. package/dist/modules/animationDiff.js.map +1 -0
  50. package/dist/modules/eyeSystem.d.ts +0 -0
  51. package/dist/modules/eyeSystem.d.ts.map +0 -0
  52. package/dist/modules/eyeSystem.js +0 -0
  53. package/dist/modules/eyeSystem.js.map +0 -0
  54. package/dist/modules/imageLoad.d.ts +0 -0
  55. package/dist/modules/imageLoad.d.ts.map +0 -0
  56. package/dist/modules/imageLoad.js +0 -0
  57. package/dist/modules/imageLoad.js.map +0 -0
  58. package/dist/modules/mouthSystem.d.ts +0 -0
  59. package/dist/modules/mouthSystem.d.ts.map +0 -0
  60. package/dist/modules/mouthSystem.js +0 -0
  61. package/dist/modules/mouthSystem.js.map +0 -0
  62. package/dist/modules/renderRig.d.ts +0 -0
  63. package/dist/modules/renderRig.d.ts.map +0 -0
  64. package/dist/modules/renderRig.js +0 -0
  65. package/dist/modules/renderRig.js.map +0 -0
  66. package/dist/tests/test-animation-diff-rendering.d.ts +7 -0
  67. package/dist/tests/test-animation-diff-rendering.d.ts.map +1 -0
  68. package/dist/tests/test-animation-diff-rendering.js +444 -0
  69. package/dist/tests/test-animation-diff-rendering.js.map +1 -0
  70. package/dist/tests/test-animation-diff.d.ts +7 -0
  71. package/dist/tests/test-animation-diff.d.ts.map +1 -0
  72. package/dist/tests/test-animation-diff.js +488 -0
  73. package/dist/tests/test-animation-diff.js.map +1 -0
  74. package/dist/tests/test-cli.d.ts +8 -0
  75. package/dist/tests/test-cli.d.ts.map +1 -0
  76. package/dist/tests/test-cli.js +307 -0
  77. package/dist/tests/test-cli.js.map +1 -0
  78. package/dist/tests/test-joint-movement.d.ts +0 -0
  79. package/dist/tests/test-joint-movement.d.ts.map +0 -0
  80. package/dist/tests/test-joint-movement.js +0 -0
  81. package/dist/tests/test-joint-movement.js.map +0 -0
  82. package/dist/tests/test-skia.d.ts +0 -0
  83. package/dist/tests/test-skia.d.ts.map +0 -0
  84. package/dist/tests/test-skia.js +0 -0
  85. package/dist/tests/test-skia.js.map +0 -0
  86. package/dist/tests/test-visual-verification.d.ts +0 -0
  87. package/dist/tests/test-visual-verification.d.ts.map +0 -0
  88. package/dist/tests/test-visual-verification.js +0 -0
  89. package/dist/tests/test-visual-verification.js.map +0 -0
  90. package/dist/types.d.ts +0 -0
  91. package/dist/types.d.ts.map +0 -0
  92. package/dist/types.js +0 -0
  93. package/dist/types.js.map +0 -0
  94. package/package.json +13 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animationDiff.js","sourceRoot":"","sources":["../../modules/animationDiff.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
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,7 @@
1
+ /**
2
+ * Animation Diff Rendering Test
3
+ * Tests that animation diffs are correctly applied and rendered
4
+ * Verifies joint positions after diff application using visual verification
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=test-animation-diff-rendering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-animation-diff-rendering.d.ts","sourceRoot":"","sources":["../../tests/test-animation-diff-rendering.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,444 @@
1
+ /**
2
+ * Animation Diff Rendering Test
3
+ * Tests that animation diffs are correctly applied and rendered
4
+ * Verifies joint positions after diff application using visual verification
5
+ */
6
+ import * as fs from 'fs';
7
+ import { writeFile, mkdir } from 'fs/promises';
8
+ import { SkiaRenderer } from '../modules/adapters/skiaRenderer.js';
9
+ import { createDiffBasedAnimation, expandDiffBasedAnimation } from '../modules/animationDiff.js';
10
+ /**
11
+ * Define 3x3 grid of screen sectors
12
+ */
13
+ function defineScreenSectors(width, height) {
14
+ const sectorWidth = width / 3;
15
+ const sectorHeight = height / 3;
16
+ const sectors = [];
17
+ const rows = ['Top', 'Middle', 'Bottom'];
18
+ const cols = ['Left', 'Center', 'Right'];
19
+ for (let row = 0; row < 3; row++) {
20
+ for (let col = 0; col < 3; col++) {
21
+ sectors.push({
22
+ name: `${rows[row]}-${cols[col]}`,
23
+ x: col * sectorWidth,
24
+ y: row * sectorHeight,
25
+ width: sectorWidth,
26
+ height: sectorHeight
27
+ });
28
+ }
29
+ }
30
+ return sectors;
31
+ }
32
+ /**
33
+ * Get pixel color from ImageData
34
+ */
35
+ function getPixelColor(imageData, x, y) {
36
+ const index = (Math.floor(y) * imageData.width + Math.floor(x)) * 4;
37
+ return {
38
+ r: imageData.data[index],
39
+ g: imageData.data[index + 1],
40
+ b: imageData.data[index + 2],
41
+ a: imageData.data[index + 3]
42
+ };
43
+ }
44
+ /**
45
+ * Check if color is different from background
46
+ */
47
+ function isDifferentFromBackground(color, bgColor, threshold = 10) {
48
+ const rDiff = Math.abs(color.r - bgColor.r);
49
+ const gDiff = Math.abs(color.g - bgColor.g);
50
+ const bDiff = Math.abs(color.b - bgColor.b);
51
+ return rDiff > threshold || gDiff > threshold || bDiff > threshold;
52
+ }
53
+ /**
54
+ * Check if sector has content (non-background pixels)
55
+ */
56
+ function hasContentInSector(imageData, sector, bgColor, samplePoints = 25) {
57
+ let contentPixels = 0;
58
+ const gridSize = Math.ceil(Math.sqrt(samplePoints));
59
+ for (let row = 0; row < gridSize; row++) {
60
+ for (let col = 0; col < gridSize; col++) {
61
+ const x = sector.x + (sector.width / gridSize) * (col + 0.5);
62
+ const y = sector.y + (sector.height / gridSize) * (row + 0.5);
63
+ if (x < imageData.width && y < imageData.height) {
64
+ const color = getPixelColor(imageData, x, y);
65
+ if (isDifferentFromBackground(color, bgColor, 10)) {
66
+ contentPixels++;
67
+ }
68
+ }
69
+ }
70
+ }
71
+ return contentPixels > 0;
72
+ }
73
+ /**
74
+ * Save canvas to file
75
+ */
76
+ async function saveCanvas(canvas, filename) {
77
+ try {
78
+ const buffer = await canvas.toBuffer('image/png');
79
+ await writeFile(filename, buffer);
80
+ console.log(` 💾 Saved: ${filename}`);
81
+ }
82
+ catch (error) {
83
+ console.log(` ❌ Failed to save ${filename}:`, error);
84
+ }
85
+ }
86
+ /**
87
+ * Draw sector grid on canvas for visualization
88
+ */
89
+ function drawSectorGrid(ctx, sectors) {
90
+ ctx.strokeStyle = '#FF0000';
91
+ ctx.lineWidth = 2;
92
+ ctx.font = '24px Arial';
93
+ ctx.fillStyle = '#FF0000';
94
+ sectors.forEach(sector => {
95
+ // Draw sector border
96
+ ctx.strokeRect(sector.x, sector.y, sector.width, sector.height);
97
+ // Draw sector label
98
+ const labelX = sector.x + 10;
99
+ const labelY = sector.y + 30;
100
+ ctx.fillText(sector.name, labelX, labelY);
101
+ });
102
+ }
103
+ /**
104
+ * Render character with applied frame data
105
+ */
106
+ async function renderFrame(baseRigData, frameData, renderer, width, height, saveFilename, drawGrid = false) {
107
+ const canvas = await renderer.createCanvas(width, height);
108
+ const ctx = canvas.getContext('2d');
109
+ // Apply frame data to base rig
110
+ const rigDataWithFrame = {
111
+ ...baseRigData,
112
+ ...frameData,
113
+ rotationValues: {
114
+ ...baseRigData.rotationValues,
115
+ ...frameData.rotationValues
116
+ },
117
+ selfRotationValues: {
118
+ ...baseRigData.selfRotationValues,
119
+ ...frameData.selfRotationValues
120
+ }
121
+ };
122
+ // Render
123
+ ctx.fillStyle = '#FFFFFF';
124
+ ctx.fillRect(0, 0, width, height);
125
+ await renderer.renderToCanvas(canvas, rigDataWithFrame);
126
+ // Draw grid if requested
127
+ if (drawGrid) {
128
+ const sectors = defineScreenSectors(width, height);
129
+ drawSectorGrid(ctx, sectors);
130
+ }
131
+ // Save if filename provided
132
+ if (saveFilename) {
133
+ await saveCanvas(canvas, saveFilename);
134
+ }
135
+ return ctx.getImageData(0, 0, width, height);
136
+ }
137
+ /**
138
+ * Test 1: Arm Movement via Diff
139
+ */
140
+ async function testArmMovementDiff(baseRigData, renderer, width, height) {
141
+ console.log('\n Test 1: Arm Movement via Diff');
142
+ console.log(' ' + '-'.repeat(40));
143
+ // Create animation frames with diff
144
+ const frames = [
145
+ // Frame 0: Base frame (no rotations)
146
+ {
147
+ rotationValues: {}
148
+ },
149
+ // Frame 1: Left arm raised (diff only contains the change)
150
+ {
151
+ rotationValues: {
152
+ leftUpperArm: -Math.PI / 3 // Raise left arm
153
+ }
154
+ }
155
+ ];
156
+ // Create diff-based animation
157
+ const diffAnimation = createDiffBasedAnimation(frames);
158
+ console.log(' Created diff animation with', diffAnimation.length, 'frames');
159
+ console.log(' Frame 0 keys:', Object.keys(diffAnimation[0]));
160
+ console.log(' Frame 1 keys:', Object.keys(diffAnimation[1]));
161
+ // Expand diffs back to full frames
162
+ const expandedFrames = expandDiffBasedAnimation(diffAnimation);
163
+ console.log(' Expanded to full frames');
164
+ // Render before (frame 0 - base frame)
165
+ console.log(' Rendering before frame...');
166
+ await renderFrame(baseRigData, expandedFrames[0], renderer, width, height, 'test-outputs/diff-test-1-before.png', true);
167
+ // Render after (frame 1 - arm raised)
168
+ console.log(' Rendering after frame...');
169
+ const imageData = await renderFrame(baseRigData, expandedFrames[1], renderer, width, height, 'test-outputs/diff-test-1-after.png', true);
170
+ const sectors = defineScreenSectors(width, height);
171
+ const bgColor = getPixelColor(imageData, 10, 10);
172
+ // Check if arm appears in expected sectors (top-left or middle-left)
173
+ const topLeft = sectors.find(s => s.name === 'Top-Left');
174
+ const middleLeft = sectors.find(s => s.name === 'Middle-Left');
175
+ const hasContentTopLeft = topLeft ? hasContentInSector(imageData, topLeft, bgColor) : false;
176
+ const hasContentMiddleLeft = middleLeft ? hasContentInSector(imageData, middleLeft, bgColor) : false;
177
+ console.log(' Content in Top-Left:', hasContentTopLeft ? '✅' : '❌');
178
+ console.log(' Content in Middle-Left:', hasContentMiddleLeft ? '✅' : '❌');
179
+ const passed = hasContentTopLeft || hasContentMiddleLeft;
180
+ console.log(` Result: ${passed ? '✅ PASS' : '❌ FAIL'}`);
181
+ return passed;
182
+ }
183
+ /**
184
+ * Test 2: Head Rotation via Diff
185
+ */
186
+ async function testHeadRotationDiff(baseRigData, renderer, width, height) {
187
+ console.log('\n Test 2: Head Rotation via Diff');
188
+ console.log(' ' + '-'.repeat(40));
189
+ const frames = [
190
+ {
191
+ rotationValues: {}
192
+ },
193
+ {
194
+ rotationValues: {
195
+ head: Math.PI / 4 // Turn head 45 degrees
196
+ }
197
+ }
198
+ ];
199
+ const diffAnimation = createDiffBasedAnimation(frames);
200
+ const expandedFrames = expandDiffBasedAnimation(diffAnimation);
201
+ // Render before and after
202
+ console.log(' Rendering before frame...');
203
+ await renderFrame(baseRigData, expandedFrames[0], renderer, width, height, 'test-outputs/diff-test-2-before.png', true);
204
+ console.log(' Rendering after frame...');
205
+ const imageData = await renderFrame(baseRigData, expandedFrames[1], renderer, width, height, 'test-outputs/diff-test-2-after.png', true);
206
+ const sectors = defineScreenSectors(width, height);
207
+ const bgColor = getPixelColor(imageData, 10, 10);
208
+ // Head should still be in top-center region
209
+ const topCenter = sectors.find(s => s.name === 'Top-Center');
210
+ const middleCenter = sectors.find(s => s.name === 'Middle-Center');
211
+ const hasContentTopCenter = topCenter ? hasContentInSector(imageData, topCenter, bgColor) : false;
212
+ const hasContentMiddleCenter = middleCenter ? hasContentInSector(imageData, middleCenter, bgColor) : false;
213
+ console.log(' Content in Top-Center:', hasContentTopCenter ? '✅' : '❌');
214
+ console.log(' Content in Middle-Center:', hasContentMiddleCenter ? '✅' : '❌');
215
+ const passed = hasContentTopCenter || hasContentMiddleCenter;
216
+ console.log(` Result: ${passed ? '✅ PASS' : '❌ FAIL'}`);
217
+ return passed;
218
+ }
219
+ /**
220
+ * Test 3: Multiple Joints via Diff
221
+ */
222
+ async function testMultipleJointsDiff(baseRigData, renderer, width, height) {
223
+ console.log('\n Test 3: Multiple Joints via Diff');
224
+ console.log(' ' + '-'.repeat(40));
225
+ const frames = [
226
+ {
227
+ rotationValues: {}
228
+ },
229
+ {
230
+ rotationValues: {
231
+ leftUpperArm: -Math.PI / 4, // Left arm raised slightly
232
+ rightUpperArm: -Math.PI / 4, // Right arm raised slightly
233
+ leftThigh: Math.PI / 12, // Left leg forward slightly
234
+ rightThigh: -Math.PI / 12 // Right leg back slightly
235
+ }
236
+ }
237
+ ];
238
+ const diffAnimation = createDiffBasedAnimation(frames);
239
+ console.log(' Diff contains:', Object.keys(diffAnimation[1]));
240
+ console.log(' Diff has 4 joint rotations:', Object.keys(diffAnimation[1].rotationValues || {}).length === 4 ? '✅' : '❌');
241
+ const expandedFrames = expandDiffBasedAnimation(diffAnimation);
242
+ // Render before and after
243
+ console.log(' Rendering before frame...');
244
+ const beforeImageData = await renderFrame(baseRigData, expandedFrames[0], renderer, width, height, 'test-outputs/diff-test-3-before.png', true);
245
+ console.log(' Rendering after frame...');
246
+ const afterImageData = await renderFrame(baseRigData, expandedFrames[1], renderer, width, height, 'test-outputs/diff-test-3-after.png', true);
247
+ const sectors = defineScreenSectors(width, height);
248
+ const bgColor = getPixelColor(afterImageData, 10, 10);
249
+ // Check that arms are spread
250
+ const topLeft = sectors.find(s => s.name === 'Top-Left');
251
+ const topRight = sectors.find(s => s.name === 'Top-Right');
252
+ const hasArmsSpread = (topLeft ? hasContentInSector(afterImageData, topLeft, bgColor) : false) ||
253
+ (topRight ? hasContentInSector(afterImageData, topRight, bgColor) : false);
254
+ // Verify the frames are different (proves diff was applied)
255
+ let differentPixels = 0;
256
+ const totalPixels = beforeImageData.width * beforeImageData.height;
257
+ for (let i = 0; i < beforeImageData.data.length; i += 4) {
258
+ const rDiff = Math.abs(beforeImageData.data[i] - afterImageData.data[i]);
259
+ const gDiff = Math.abs(beforeImageData.data[i + 1] - afterImageData.data[i + 1]);
260
+ const bDiff = Math.abs(beforeImageData.data[i + 2] - afterImageData.data[i + 2]);
261
+ if (rDiff > 10 || gDiff > 10 || bDiff > 10) {
262
+ differentPixels++;
263
+ }
264
+ }
265
+ const percentDifferent = (differentPixels / totalPixels) * 100;
266
+ const framesAreDifferent = percentDifferent > 1; // At least 1% of pixels changed
267
+ console.log(' Arms visible in upper sectors:', hasArmsSpread ? '✅' : '❌');
268
+ console.log(` Frames are different (${percentDifferent.toFixed(2)}% pixels changed):`, framesAreDifferent ? '✅' : '❌');
269
+ const passed = hasArmsSpread && framesAreDifferent;
270
+ console.log(` Result: ${passed ? '✅ PASS' : '❌ FAIL'}`);
271
+ return passed;
272
+ }
273
+ /**
274
+ * Test 4: Animation Sequence via Diffs
275
+ */
276
+ async function testAnimationSequenceDiff(baseRigData, renderer, width, height) {
277
+ console.log('\n Test 4: Animation Sequence via Diffs');
278
+ console.log(' ' + '-'.repeat(40));
279
+ // Create a simple walk cycle
280
+ const frames = [
281
+ {
282
+ rotationValues: {}
283
+ },
284
+ {
285
+ rotationValues: {
286
+ leftThigh: Math.PI / 8,
287
+ rightThigh: -Math.PI / 8
288
+ }
289
+ },
290
+ {
291
+ rotationValues: {
292
+ leftThigh: 0,
293
+ rightThigh: 0
294
+ }
295
+ },
296
+ {
297
+ rotationValues: {
298
+ leftThigh: -Math.PI / 8,
299
+ rightThigh: Math.PI / 8
300
+ }
301
+ }
302
+ ];
303
+ const diffAnimation = createDiffBasedAnimation(frames);
304
+ console.log(' Created', diffAnimation.length, 'frame animation');
305
+ console.log(' Frame 1 diff size:', JSON.stringify(diffAnimation[1]).length, 'bytes');
306
+ console.log(' Frame 2 diff size:', JSON.stringify(diffAnimation[2]).length, 'bytes');
307
+ console.log(' Frame 3 diff size:', JSON.stringify(diffAnimation[3]).length, 'bytes');
308
+ const expandedFrames = expandDiffBasedAnimation(diffAnimation);
309
+ // Render each frame and verify character is present (not checking legs specifically as they may move out of frame)
310
+ let allFramesValid = true;
311
+ for (let i = 0; i < expandedFrames.length; i++) {
312
+ console.log(` Rendering frame ${i}...`);
313
+ const imageData = await renderFrame(baseRigData, expandedFrames[i], renderer, width, height, `test-outputs/diff-test-4-frame-${i}.png`, true);
314
+ const sectors = defineScreenSectors(width, height);
315
+ const bgColor = getPixelColor(imageData, 10, 10);
316
+ // Check if character has content in ANY sector (proves frame was rendered)
317
+ const hasAnyContent = sectors.some(sector => hasContentInSector(imageData, sector, bgColor));
318
+ console.log(` Frame ${i} rendered:`, hasAnyContent ? '✅' : '❌');
319
+ if (!hasAnyContent) {
320
+ allFramesValid = false;
321
+ }
322
+ }
323
+ console.log(` Result: ${allFramesValid ? '✅ PASS' : '❌ FAIL'}`);
324
+ return allFramesValid;
325
+ }
326
+ /**
327
+ * Test 5: Complex Diff with Multiple Properties
328
+ */
329
+ async function testComplexDiff(baseRigData, renderer, width, height) {
330
+ console.log('\n Test 5: Complex Diff with Multiple Properties');
331
+ console.log(' ' + '-'.repeat(40));
332
+ const frames = [
333
+ {
334
+ rotationValues: {},
335
+ flipX: false
336
+ },
337
+ {
338
+ rotationValues: {
339
+ head: Math.PI / 6,
340
+ leftUpperArm: -Math.PI / 4,
341
+ rightUpperArm: -Math.PI / 4
342
+ },
343
+ flipX: false // Same value, should not be in diff
344
+ },
345
+ {
346
+ rotationValues: {
347
+ head: Math.PI / 6,
348
+ leftUpperArm: -Math.PI / 3, // Changed
349
+ rightUpperArm: -Math.PI / 3 // Changed
350
+ },
351
+ flipX: true // Changed
352
+ }
353
+ ];
354
+ const diffAnimation = createDiffBasedAnimation(frames);
355
+ // Verify diff 1 doesn't contain flipX (unchanged)
356
+ const diff1HasFlipX = 'flipX' in diffAnimation[1];
357
+ console.log(' Diff 1 excludes unchanged flipX:', !diff1HasFlipX ? '✅' : '❌');
358
+ // Verify diff 2 contains flipX (changed)
359
+ const diff2HasFlipX = 'flipX' in diffAnimation[2];
360
+ console.log(' Diff 2 includes changed flipX:', diff2HasFlipX ? '✅' : '❌');
361
+ const expandedFrames = expandDiffBasedAnimation(diffAnimation);
362
+ // Render initial, middle, and final frames
363
+ console.log(' Rendering frame 0 (initial)...');
364
+ await renderFrame(baseRigData, expandedFrames[0], renderer, width, height, 'test-outputs/diff-test-5-frame-0.png', true);
365
+ console.log(' Rendering frame 1 (middle)...');
366
+ await renderFrame(baseRigData, expandedFrames[1], renderer, width, height, 'test-outputs/diff-test-5-frame-1.png', true);
367
+ console.log(' Rendering frame 2 (final)...');
368
+ const imageData = await renderFrame(baseRigData, expandedFrames[2], renderer, width, height, 'test-outputs/diff-test-5-frame-2.png', true);
369
+ const sectors = defineScreenSectors(width, height);
370
+ const bgColor = getPixelColor(imageData, 10, 10);
371
+ const topSectors = sectors.filter(s => s.name.startsWith('Top'));
372
+ const hasTopContent = topSectors.some(sector => hasContentInSector(imageData, sector, bgColor));
373
+ console.log(' Frame renders correctly:', hasTopContent ? '✅' : '❌');
374
+ const passed = !diff1HasFlipX && diff2HasFlipX && hasTopContent;
375
+ console.log(` Result: ${passed ? '✅ PASS' : '❌ FAIL'}`);
376
+ return passed;
377
+ }
378
+ /**
379
+ * Main test runner
380
+ */
381
+ async function runAllTests(inputFile = 'tank.json') {
382
+ console.log('\n🎬 Animation Diff Rendering Tests');
383
+ console.log('='.repeat(50));
384
+ console.log(` Testing with: ${inputFile}`);
385
+ // Load base rig data
386
+ if (!fs.existsSync(inputFile)) {
387
+ console.error(`❌ Error: File not found: ${inputFile}`);
388
+ return false;
389
+ }
390
+ const rigData = JSON.parse(fs.readFileSync(inputFile, 'utf-8'));
391
+ // Create test-outputs directory if it doesn't exist
392
+ try {
393
+ await mkdir('test-outputs', { recursive: true });
394
+ }
395
+ catch (error) {
396
+ // Directory might already exist, that's fine
397
+ }
398
+ // Create renderer and load images
399
+ const renderer = new SkiaRenderer();
400
+ console.log(' Loading character images...');
401
+ await renderer.loadImages(rigData);
402
+ console.log(' ✅ Images loaded\n');
403
+ const width = 1000;
404
+ const height = 1000;
405
+ // Run all tests
406
+ const results = {
407
+ 'Arm Movement via Diff': await testArmMovementDiff(rigData, renderer, width, height),
408
+ 'Head Rotation via Diff': await testHeadRotationDiff(rigData, renderer, width, height),
409
+ 'Multiple Joints via Diff': await testMultipleJointsDiff(rigData, renderer, width, height),
410
+ 'Animation Sequence via Diffs': await testAnimationSequenceDiff(rigData, renderer, width, height),
411
+ 'Complex Diff Properties': await testComplexDiff(rigData, renderer, width, height)
412
+ };
413
+ // Summary
414
+ console.log('\n' + '='.repeat(50));
415
+ console.log('📊 Test Summary:');
416
+ const passed = Object.values(results).filter(r => r).length;
417
+ const total = Object.keys(results).length;
418
+ console.log(` ${passed}/${total} tests passed`);
419
+ Object.entries(results).forEach(([name, result]) => {
420
+ console.log(` ${result ? '✅' : '❌'} ${name}`);
421
+ });
422
+ const allPassed = passed === total;
423
+ if (allPassed) {
424
+ console.log('\n✅ All animation diff rendering tests PASSED\n');
425
+ }
426
+ else {
427
+ console.log('\n❌ Some animation diff rendering tests FAILED\n');
428
+ }
429
+ return allPassed;
430
+ }
431
+ // Run tests
432
+ async function main() {
433
+ try {
434
+ const inputFile = process.argv[2] || 'assets/tank.json';
435
+ const success = await runAllTests(inputFile);
436
+ process.exit(success ? 0 : 1);
437
+ }
438
+ catch (error) {
439
+ console.error('❌ Test failed with error:', error);
440
+ process.exit(1);
441
+ }
442
+ }
443
+ main();
444
+ //# sourceMappingURL=test-animation-diff-rendering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-animation-diff-rendering.js","sourceRoot":"","sources":["../../tests/test-animation-diff-rendering.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Animation Diff System Unit Tests
3
+ * Tests diff creation, application, and round-trip conversion
4
+ * No rendering required - pure data transformation tests
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=test-animation-diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-animation-diff.d.ts","sourceRoot":"","sources":["../../tests/test-animation-diff.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}