@hatiolab/figure-model 0.3.1 โ†’ 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"render-batches.js","sourceRoot":"","sources":["../src/render-batches.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render-batches.js","sourceRoot":"","sources":["../src/render-batches.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"score.d.ts","sourceRoot":"","sources":["../src/score.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAI1D,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAExE,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,WAAW,GAAG,aAAa,GAAG,QAAQ,GAAG,aAAa,GAAG,OAAO,CAAA;AAEzG,sDAAsD;AACtD,eAAO,MAAM,kBAAkB,EAAE,SAAS,eAAe,EAA6E,CAAA;AAEtI;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAE5D;AAED,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAGtH;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,eAAe,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,mHAAmH;IACnH,KAAK,EAAE,MAAM,CAAA;IACb,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,WAAW,CAAA;IAClB,sFAAsF;IACtF,QAAQ,EAAE,eAAe,CAAA;IACzB,OAAO,EAAE,eAAe,EAAE,CAAA;CAC3B;AAED,6FAA6F;AAC7F,eAAO,MAAM,kBAAkB,EAAE,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,EAIzE,CAAA;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAGxD;AAED,6FAA6F;AAC7F,eAAO,MAAM,mBAAmB;;;;CAItB,CAAA;AAEV,oFAAoF;AACpF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAIrE;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,mBAAmB,EAAE,GAAG,MAAM,CAG3G;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS,CAyCzE"}
1
+ {"version":3,"file":"score.d.ts","sourceRoot":"","sources":["../src/score.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAI1D,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAExE,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,WAAW,GAAG,aAAa,GAAG,QAAQ,GAAG,aAAa,GAAG,OAAO,CAAA;AAEzG,sDAAsD;AACtD,eAAO,MAAM,kBAAkB,EAAE,SAAS,eAAe,EAA6E,CAAA;AAEtI;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAE5D;AAED,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAGtH;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,eAAe,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,mHAAmH;IACnH,KAAK,EAAE,MAAM,CAAA;IACb,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,WAAW,CAAA;IAClB,sFAAsF;IACtF,QAAQ,EAAE,eAAe,CAAA;IACzB,OAAO,EAAE,eAAe,EAAE,CAAA;CAC3B;AAED,6FAA6F;AAC7F,eAAO,MAAM,kBAAkB,EAAE,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,EAIzE,CAAA;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAGxD;AAED,6FAA6F;AAC7F,eAAO,MAAM,mBAAmB;;;;CAItB,CAAA;AAEV,oFAAoF;AACpF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAIrE;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,mBAAmB,EAAE,GAAG,MAAM,CAG3G;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS,CA6CzE"}
package/dist/score.js CHANGED
@@ -90,10 +90,14 @@ export function figureScoreOf(asset) {
90
90
  const plan = figureDrawPlanOf(asset, drawn);
91
91
  const byId = new Map(drawn.map(body => [body.id, body]));
92
92
  const groups = figureDrawsOf(plan);
93
- /* A carried group still counts body by body (ADR-0111 Q2: as one only once the rig has measured one matrix a group). */
93
+ /*
94
+ A carried group moves by one matrix a frame (ADR-0111 Q2, ruled after the rig measured it: a door 7 matrices a frame to 2,
95
+ a forklift 12 to 3), so it counts once. What moves -- \`moving\` below -- still counts every body: the kernel goes on
96
+ working each body's pose out.
97
+ */
94
98
  const independent = plan.batches.filter(b => b.ids.some(id => moves(byId.get(id)))).length +
95
99
  plan.alone.filter(id => moves(byId.get(id))).length +
96
- plan.carried.reduce((sum, group) => sum + group.ids.length, 0);
100
+ plan.carried.length;
97
101
  const moving = drawn.filter(moves).length;
98
102
  const budget = (key, used, limit) => ({ key, used, limit, ratio: used / limit });
99
103
  const budgets = [
package/dist/score.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"score.js","sourceRoot":"","sources":["../src/score.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"score.js","sourceRoot":"","sources":["../src/score.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,256 @@
1
+ # figure-model ์™„๊ฒฐ์„ฑยทํ™•์žฅ์„ฑ ์ ๊ฒ€
2
+
3
+ ์ ๊ฒ€์ผ: 2026-10-04. ๋Œ€์ƒ: ์ž‘์—… ํŠธ๋ฆฌ๊ฐ€ ๊นจ๋—ํ•œ `4610edc`(ํŒจํ‚ค์ง€ 0.3.2).
4
+ ์ฝ”๋“œ์™€ ๊ณต๊ฐœ ๊ณ„์•ฝ์„ ๊ฒ€ํ† ํ•˜๊ณ  `npm test` ๋ฐ ๋ณ„๋„ ๊ฒฝ๊ณ„ ์‚ฌ๋ก€๋ฅผ ์‹คํ–‰ํ–ˆ๋‹ค.
5
+ ๋Ÿฐํƒ€์ž„ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ๋ฐœํ–‰ํ•˜์ง€ ์•Š์•˜๋‹ค. ์„ค์น˜๋œ ์ œํ’ˆ ๋ฐ npm ๋ฐฐํฌ ์ƒํƒœ๋Š” ์ด๋ฒˆ ์ ๊ฒ€ ๋ฒ”์œ„๊ฐ€ ์•„๋‹ˆ๋‹ค.
6
+
7
+ ## ํ•ด๊ฒฐ ํ˜„ํ™ฉ (2026-10-04, ๋ฏธ๋ฐœํ–‰)
8
+
9
+ F1~F4๋ฅผ ๊ณ ์ณค๋‹ค. ํ•ญ๋ชฉ๋งˆ๋‹ค ๊ธฐ์กด ์ฝ”๋“œ์—์„œ ์‹คํŒจํ•˜๋Š” ํšŒ๊ท€ ์‹œํ—˜์„ ๋จผ์ € ๋„ฃ์—ˆ๊ณ , ๊ณ ์นœ ๋’ค `npm test`(ํƒ€์ž… ๊ฒ€์‚ฌ์™€
10
+ 725๊ฐœ ์‹œํ—˜)์™€ build๊ฐ€ ํ†ต๊ณผํ•œ๋‹ค. ์žฌํ˜„ ์Šคํฌ๋ฆฝํŠธ๋Š” ์ด์ œ ๋„ค ํ•ญ๋ชฉ ๋ชจ๋‘ ๊ฑฐ์ ˆ ๋˜๋Š” ์ •์ƒ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
11
+ `npm run test:coverage`์˜ ๊ธฐ์ค€(์ค„ 100%, ๋ถ„๊ธฐ 95%)์€ ์ ๊ฒ€ ์‹œ์  HEAD์—์„œ๋„ ๋ชป ๋ฏธ์ณค๋‹ค(์ค„ 96.87%, ๋ถ„๊ธฐ 89.24%).
12
+ ๊ณ ์นœ ๋’ค ์ค„ 96.91%, ๋ถ„๊ธฐ 89.50%์ด๋ฉฐ ์ƒˆ ์ฝ”๋“œ์— ๋ฎ์ด์ง€ ์•Š์€ ์ค„์€ ์—†๋‹ค.
13
+
14
+ | ํ•ญ๋ชฉ | ์ปค๋ฐ‹ | ์„ ํƒํ•œ ๊ณ„์•ฝ | ์‹œํ—˜ |
15
+ | -------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
16
+ | F1 ๊ฒฐ๊ณผ ์†Œ์œ ๊ถŒ | `122b3c0` | ์ธ์Šคํ„ด์Šค evaluator ๊ฒฐ๊ณผ์˜ values ๋ ˆ์ฝ”๋“œ์™€ geometry ๋ชฉ๋ก์€ ํ˜ธ์ถœ์ž ์†Œ์œ ์ด๊ณ , ๊ทธ ์•ˆ์˜ ๊ฐ’๊ณผ body๋Š” ๋™๊ฒฐ๋œ๋‹ค. ์“ฐ๊ธฐ๋Š” TypeError๋กœ ๊ฑฐ์ ˆ๋œ๋‹ค. ๋‚ด๋ถ€ ์Šฌ๋กฏ์€ ๋™๊ฒฐํ•˜์ง€ ์•Š์€ ๋น„๊ณต๊ฐœ ๊ฐ์ฒด๋กœ ๋‘๊ณ , ๊ฒฐ๊ณผ์—๋Š” ๊ฐ’์ด ๋ฐ”๋€” ๋•Œ ๋งŒ๋“  ๋™๊ฒฐ ์‚ฌ๋ณธ์„ ๋„ฃ๋Š”๋‹ค. ํ˜•์ƒ์€ ์ œ์ž๋ฆฌ์—์„œ ๋™๊ฒฐํ•œ๋‹ค. ๋ฐ”๋€Œ์ง€ ์•Š์€ ํ˜•์ƒยทbody๋Š” ๊ฐ™์€ ๊ฐ์ฒด๋กœ ์ด์–ด์ง„๋‹ค. ์ „์ฒด ํ‰๊ฐ€(`plan.evaluate`)๋Š” ์•„๋ฌด๊ฒƒ๋„ ๋ณด๊ด€ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ฒฐ๊ณผ ์ „์ฒด๊ฐ€ ํ˜ธ์ถœ์ž ์†Œ์œ ์ด๊ณ  ๋™๊ฒฐํ•˜์ง€ ์•Š๋Š”๋‹ค. pose step์˜ `bodies`ยท`poses`๋Š” ํ˜ธ์ถœ์ž ์‚ฌ๋ณธ์ด๊ณ , `read`ยท`changed`๋Š” ๊ฐ™์€ evaluator์˜ ๋‹ค์Œ ํ˜ธ์ถœ ์ „๊นŒ์ง€๋งŒ ๋‹ตํ•˜๋ฉฐ ๊ทธ ๋’ค์—๋Š” `STEP_EXPIRED`๋กœ ๊ฑฐ์ ˆ๋œ๋‹ค. | `src/result-ownership.test.ts` |
17
+ | F2 ๊ณต๊ฐœ ๊ฒ€์ฆ | `c86d74b` | `compileFigureAsset`์ด ๊ด€์ ˆ ๋ชฉ๋ก, ๋ ˆ์ฝ”๋“œ schema, ๋ ˆ์ฝ”๋“œ์™€ ๋…ธ๋“œ ์ผ์น˜๋ฅผ ๊ฒ€์‚ฌํ•œ๋‹ค. serializeยทparse๋Š” ๊ฐ™์€ ๊ฒ€์‚ฌ๋ฅผ ๊ฑฐ์นœ๋‹ค. ์ €์ž‘ ๋ช…๋ น์€ ๊ด€์ ˆ ๋…ธ๋“œ๋ฅผ ๋ ˆ์ฝ”๋“œ์—์„œ ๋‹ค์‹œ ์“ฐ๋ฏ€๋กœ ์ž…๊ตฌ์™€ ๋ช…๋ น ์ค‘๊ฐ„์˜ ์ž์„ธ ์ฝ๊ธฐ์—๋Š” ๊ด€์ ˆ ๊ฒ€์‚ฌ ์—†๋Š” ๋‚ด๋ถ€ ์ปดํŒŒ์ผ(`compileFigureAssetUnjointed`, ํŒจํ‚ค์ง€ ๋ฐ–์œผ๋กœ ๋‚ด๋ณด๋‚ด์ง€ ์•Š์Œ)์„ ์“ฐ๊ณ , ๋ช…๋ น ๊ฒฐ๊ณผ๋Š” ๊ณต๊ฐœ compile๋กœ ๊ฒ€์‚ฌํ•œ๋‹ค. | `src/asset-entrances.test.ts` |
18
+ | F3 ๊นŠ์€ ๊ทธ๋ž˜ํ”„ | `4f32334` | ์ปดํŒŒ์ผ ์ˆœํšŒ๊ฐ€ ์ž์ฒด ์Šคํƒ์„ ์“ด๋‹ค. ์„ ์–ธ ์ˆœ์„œ ๊นŠ์ด ์šฐ์„ ์ด๋ผ๋Š” ์ˆœ์„œ, ํƒ€์ž…ยท๋‹จ์œ„ยท์ƒํƒœ ๊ฑฐ์ ˆ, ์ˆœํ™˜ ๊ฒฝ๋กœ ํ‘œ๊ธฐ(๋“ค์–ด์„  ๊ณณ๋ถ€ํ„ฐ)๊ฐ€ ์ด์ „๊ณผ ๊ฐ™๋‹ค. ๊ฐ™์€ ์žฌ๊ท€๊ฐ€ ์žˆ๋˜ gate์˜ design ์˜์กด์„ฑ ๊ณ„์‚ฐ๋„ ์ปดํŒŒ์ผ ์ˆœ์„œ ํ•œ ๋ฒˆ ํ›‘๊ธฐ๋กœ ๋ฐ”๊ฟจ๋‹ค. `compileFigureGraph`๋Š” ์ž์ฒด ํฌ๊ธฐ ํ•œ๋„๊ฐ€ ์—†๊ณ , byteยท๋…ธ๋“œ ํ•œ๋„๋Š” documentยทasset ์ž…๊ตฌ์˜ ๊ณ„์•ฝ์ด๋‹ค. | `src/graph-depth.test.ts` |
19
+ | F4 ๊ฒ€์‚ฌ ์˜ต์…˜ | `9a332e7` | ์„ค์ • ์˜ค๋ฅ˜๋Š” Figure๋ฅผ ์ปดํŒŒ์ผํ•˜๊ธฐ ์ „์— `INSPECT_OPTION`(๊ฒฝ๋กœ `options.<ํ‚ค>`)์œผ๋กœ ๊ฑฐ์ ˆํ•œ๋‹ค. `sweepSteps`๋Š” 2 ์ด์ƒ ์ •์ˆ˜, `maxCornerInputs`๋Š” 0~12 ์ •์ˆ˜๋‹ค. ์‹คํ–‰ํ•  ์ƒํƒœ ์ˆ˜๋ฅผ ์ฒซ ํ‰๊ฐ€ ์ „์— ์„ธ์–ด 8,192๋ฅผ ๋„˜์œผ๋ฉด `INSPECT_BUDGET`์œผ๋กœ ๊ฑฐ์ ˆํ•œ๋‹ค. ์ฝ”๋„ˆ ์—ด๊ฑฐ๋Š” 32๋น„ํŠธ ์‹œํ”„ํŠธ๋ฅผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค. ํ•œ๋„๋Š” `FIGURE_INSPECT_LIMITS`๋กœ ๋‚ด๋ณด๋‚ธ๋‹ค. | `src/inspect-options.test.ts` |
20
+
21
+ ๋น„์šฉ(Node, ํ˜ธ์ถœ๋‹น, ์ ๊ฒ€ HEAD ๋Œ€๋น„):
22
+
23
+ - F1: ๋ฌด๋ณ€๊ฒฝ ํ‰๊ฐ€, pose step, ์ „์ฒด ํ‰๊ฐ€๋Š” ๊ทธ๋Œ€๋กœ๋‹ค(๋กœ๋ด‡ 6์ถ• 0.55 / 9.7 / 61 ยตs). evaluate ๊ฒฝ๋กœ์—์„œ ๋ฐ”๋€ ๊ฐ’์˜
24
+ ์‚ฌ๋ณธ ๋น„์šฉ์ด ๋ถ™๋Š”๋‹ค. ์ปจ๋ฒ ์ด์–ด ์ƒํƒœ 1๊ฐœ 7.4โ†’13.7 ยตs, ๋กœ๋ด‡ ๊ด€์ ˆ 1๊ฐœ 4.8โ†’9.6 ยตs, ๊ด€์ ˆ 7๊ฐœ 12โ†’20 ยตs,
25
+ ์„ค๊ณ„๊ฐ’ 1๊ฐœ 30โ†’52 ยตs(๋กค๋Ÿฌ ์ปจ๋ฒ ์ด์–ด). fixture์˜ ์ƒํƒœ ์ž…๋ ฅ ๋Œ€๋ถ€๋ถ„์€ pose step์„ ํƒ€๋ฏ€๋กœ ํ”„๋ ˆ์ž„๋งˆ๋‹ค ๋„๋Š” ๊ฒฝ๋กœ๋Š”
26
+ ๋Š˜์ง€ ์•Š๋Š”๋‹ค. ์Šฌ๋กฏ์„ ์ œ์ž๋ฆฌ์—์„œ ๋™๊ฒฐํ•˜๋Š” ๋ฐฉ์‹๋„ ์Ÿ€์œผ๋‚˜ ์ˆซ์ž ๋ฐฐ์—ด์ด ๋ฐ•์‹ฑ๋˜์–ด pose step 9.8โ†’15 ยตs,
27
+ ๊ด€์ ˆ 7๊ฐœ evaluate 12โ†’35 ยตs๋กœ ๋” ๋А๋ ค ์ฑ„ํƒํ•˜์ง€ ์•Š์•˜๋‹ค.
28
+ - F2: ๊ด€์ ˆ์ด ์žˆ๋Š” ์ž์‚ฐ์˜ compile์ด parse์™€ ๊ฐ™์€ ๋น„์šฉ์ด ๋œ๋‹ค(hinged-door 2.3โ†’5.7 ms, parse 6.4 ms ๊ทธ๋Œ€๋กœ).
29
+ ์ €์ž‘ ๋ช…๋ น ํ•˜๋‚˜์— ์•ฝ 3 ms๊ฐ€ ๋ถ™๋Š”๋‹ค.
30
+
31
+ ์žฅ๋ฉด ํ”„๋ ˆ์ž„(things-scene `FigureRig.update`, Node CPU, ๋ Œ๋”๋Ÿฌ GPU ์ œ์™ธ, 600ํ”„๋ ˆ์ž„ ํ‰๊ท , ๋ฐœํ–‰ํŒ 0.3.2 โ†’ ์ˆ˜์ •๋ณธ):
32
+
33
+ | ์žฅ๋ฉด | 0.3.2 | ์ˆ˜์ •๋ณธ | ์ฆ๊ฐ€ |
34
+ | ----------------------------------------------------------- | ----------------- | -------------------------- | --------- |
35
+ | ์ปจ๋ฒ ์ด์–ด 60๋Œ€, clip ํšŒ์ „(pose step) | 0.34 ms | 0.37 ms | +5~10% |
36
+ | ๋กœ๋ด‡ 20๋Œ€, ๊ด€์ ˆ ์ „๋ถ€ ์›€์ง์ž„(pose step) | 0.29 ms | 0.31 ms | +5% |
37
+ | ์ง€๊ฒŒ์ฐจ 20๋Œ€, ์ƒํƒœ ์ „๋ถ€ ์›€์ง์ž„(pose step) | 0.38~0.43 ms | 0.39~0.42 ms | ์ฐจ์ด ์—†์Œ |
38
+ | ๋ฌธ+๋žจํ”„ 60๋Œ€, ๋žจํ”„ flag๋ฅผ ๋„˜๋‚˜๋“œ๋Š” ์ œ์–ด(๋งค ํ”„๋ ˆ์ž„ evaluate) | 0.22 ms | 0.34~0.37 ms | +55% |
39
+ | ์ปจ๋ฒ ์ด์–ด 60๋Œ€, ํฌ๊ธฐ ๋Œ๊ธฐ(๋งค ํ”„๋ ˆ์ž„ evaluateยทํ˜•์ƒ ๋ณ€๊ฒฝ) | 4.05 ms (p95 6.0) | 5.6~~6.0 ms (p95 7.8~~9.1) | +40~45% |
40
+ | ๋กœ๋ด‡ 20๋Œ€, ๊ด€์ ˆ ์ด๋™ + 10ํ”„๋ ˆ์ž„๋งˆ๋‹ค ํฌ๊ธฐ ๋ณ€๊ฒฝ | 0.46 ms (p95 1.7) | 0.53 ms (p95 2.2) | +15% |
41
+
42
+ evaluate ๊ฒฝ๋กœ์˜ ์ฆ๊ฐ€๋Š” ์‚ฌ๋ณธ ๋น„์šฉ์ด๋‹ค. ํฌ๊ธฐ ๋ณ€๊ฒฝ ํ•œ ๋ฒˆ์— ๋กค๋Ÿฌ ์ปจ๋ฒ ์ด์–ด๊ฐ€ ๋ณต์‚ฌํ•˜๋Š” ๊ฐ์ฒด๋Š” ์•ฝ 100๊ฐœ(์ž์„ธ 25, ํ–‰ ํ•ญ๋ชฉ 22,
43
+ ๊ฒฝ๋กœ ๋ฐฐ์—ด 22)์ด๊ณ  ๊ฐ์ฒด๋‹น ์•ฝ 100 ns๋‹ค. ํšŒ์ „ ๊ณต์œ , spread ๋ณต์‚ฌ, ์‹ฌ๋ณผ ์บ์‹œ๋ฅผ ์‹œํ—˜ํ–ˆ์œผ๋‚˜ ์ค„์ง€ ์•Š์•˜๊ณ , ์‚ฌ๋ณธ ์ค‘๋ณต ์ œ๊ฑฐ์šฉ
44
+ Map์€ ์—†์• ๋ฉด ์˜คํžˆ๋ ค ๋А๋ ค์กŒ๋‹ค(10.4โ†’15.9 ยตs). ๋” ์ค„์ด๋ ค๋ฉด bodyยทํ–‰ ํ•ญ๋ชฉ์„ ์ œ์ž๋ฆฌ์—์„œ ๋™๊ฒฐํ•˜๊ณ  ์ž์„ธ๋งŒ ๋ณต์‚ฌํ•˜๋Š” ์„ค๊ณ„
45
+ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•˜๋ฉฐ, ํ–‰์˜ pose step ๊ฒฝ๋กœ๊ฐ€ ๋™๊ฒฐ ์ž์„ธ๋ฅผ ์ฝ๊ฒŒ ๋˜๋Š”์ง€ ๋”ฐ๋กœ ๊ฒ€ํ† ํ•ด์•ผ ํ•œ๋‹ค. ๋ฐœํ–‰ ์ „ ํŒ๋‹จ ๋Œ€์ƒ์ด๋‹ค.
46
+
47
+ ์†Œ๋น„์ž ๊ฒ€์ฆ(things-scene 10.1.71 ์ž‘์—… ํŠธ๋ฆฌ, `test/tsconfig.figure-model-src.json`์œผ๋กœ ํ˜•์ œ ์†Œ์Šค๋ฅผ ์—ฐ๊ฒฐํ•ด ์‹คํ–‰.
48
+ ์—ฐ๊ฒฐ ์—ฌ๋ถ€๋Š” ์†Œ์Šค์—๋งŒ ์žˆ๋Š” `FIGURE_INSPECT_LIMITS`๋กœ ํ™•์ธ):
49
+
50
+ - ๋‹จ์œ„ยทfigure ์‹œํ—˜ ์ „์ฒด 2,713๊ฐœ: ๋ฐœํ–‰ํŒ๊ณผ ์ˆ˜์ •๋ณธ ๋ชจ๋‘ ํ†ต๊ณผ. figure ์‹œํ—˜ 107๊ฐœ ์•ˆ์— ๊ฒฐ๊ณผ ์กฐํšŒ(pose step๊ณผ evaluate
51
+ ํ˜ผํ•ฉ ์‹œ ๋ชจ๋“  mesh ์œ„์น˜), ๋ถ€์ฐฉ๋ฌผ(๊ด€์ ˆ์ด ์›€์ง์ด๋Š” ๋ถ€ํ’ˆ์˜ place, ๊ทธ๋ฆฌํผ ๋์˜ workpiece), ์„ ํƒ(๋ณ‘ํ•ฉยท๋ฌถ์Œ mesh์˜ pick์ด
52
+ ๋ถ€ํ’ˆยท์‚ฌ๋ณธ์œผ๋กœ ๋Œ์•„์˜ด), sizing(ํฌ๊ธฐ ๋ณ€๊ฒฝ ํ›„ ๋ณต๊ท€, ์„ ์–ธ ๋ฒ”์œ„ ๋ฐ– ํฌ๊ธฐ, ์œ„์—์„œ ๋ณธ ๊ทธ๋ฆผ)์ด ์žˆ๋‹ค.
53
+ - ํƒ€์ž…: ๋นŒ๋“œ๋œ `dist/*.d.ts`์— ๋Œ€ํ•ด things-scene์„ ๊ฒ€์‚ฌํ–ˆ๋‹ค. ์ธ์Šคํ„ด์Šค ๊ฒฐ๊ณผ๋ฅผ readonly๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ์ „์—๋Š” ์˜ค๋ฅ˜ 0๊ฐœ,
54
+ ํ‘œํ˜„ํ•œ ๋’ค์—๋Š” ์˜ค๋ฅ˜ 2๊ฐœ๋‹ค. ๋‘˜ ๋‹ค ์“ฐ๊ธฐ๊ฐ€ ์•„๋‹ˆ๋ผ ์„ ์–ธ ํƒ€์ž… ๋ฌธ์ œ๋‹ค. `figure-rig.ts`์˜ `movePoses` ์ธ์ž ํƒ€์ž…์ด
55
+ `places`์˜ ์ž์„ธ๋ฅผ ๊ฐ€๋ณ€ ๋ฐฐ์—ด๋กœ ์„ ์–ธํ–ˆ๊ณ , `dress`๊ฐ€ `result.bindings`๋ฅผ ๊ฐ€๋ณ€ `FigureAssetEvaluation`์œผ๋กœ ๋Œ๋ ค์ค€๋‹ค.
56
+ things-scene์ด ์ด ํŒ์œผ๋กœ ์˜ฌ๋ฆด ๋•Œ ๋‘ ์„ ์–ธ์— `readonly`๋ฅผ ๋ถ™์—ฌ์•ผ ํ•œ๋‹ค. ์ด๋ฒˆ ์ž‘์—…์—์„œ๋Š” ์†Œ๋น„์ž๋ฅผ ๊ณ ์น˜์ง€ ์•Š์•˜๋‹ค.
57
+ - things-factoryยทoperato-application ์†Œ์Šค์—๋Š” ์ธ์Šคํ„ด์Šค evaluator ์‚ฌ์šฉ์ฒ˜๊ฐ€ ์—†๋‹ค.
58
+
59
+ API ํ˜ธํ™˜์„ฑ ์˜ํ–ฅ:
60
+
61
+ - ์ธ์Šคํ„ด์Šค evaluator ๊ฒฐ๊ณผ์˜ ์ค‘์ฒฉ ๊ฐ์ฒด์— ์“ฐ๋˜ ํ˜ธ์ถœ์ž๋Š” TypeError๋ฅผ ๋ฐ›๋Š”๋‹ค. things-scene์˜ `FigureRig`๋Š” ๊ฒฐ๊ณผ๋ฅผ ์“ฐ์ง€
62
+ ์•Š๊ณ  pose step์˜ `read`ยท`changed`๋„ ๊ฐ™์€ ๋‹จ๊ณ„ ์•ˆ์—์„œ๋งŒ ๋ถ€๋ฅธ๋‹ค(capabilities ๋ž˜ํผ ํฌํ•จ).
63
+ - ๊ด€์ ˆ ๋ ˆ์ฝ”๋“œ์™€ ๋…ธ๋“œ๊ฐ€ ์–ด๊ธ‹๋‚œ ์ž์‚ฐ์€ ์ด์ œ compileยทserialize์—์„œ๋„ ๊ฑฐ์ ˆ๋œ๋‹ค. parse๊ฐ€ ์ด๋ฏธ ๊ฑฐ์ ˆํ•˜๋˜ ์ž์‚ฐ์ด๋‹ค.
64
+ render-batches ์‹œํ—˜ ํ•˜๋‚˜๊ฐ€ ๊ทธ๋Ÿฐ ์ž์‚ฐ์„ ์†์œผ๋กœ ๋งŒ๋“ค๊ณ  ์žˆ์–ด ๊ด€์ ˆ์ด ์ฝ์ง€ ์•Š๋Š” ์น˜์ˆ˜๋ฅผ ๋Š˜๋ฆฌ๋„๋ก ๊ณ ์ณค๋‹ค.
65
+ - ๊ฒ€์‚ฌ ์˜ต์…˜์˜ ์ž˜๋ชป๋œ ๊ฐ’์€ ์ด์ „์˜ ๊ณ„์‚ฐ ์˜ค๋ฅ˜๋‚˜ ๋นˆ sweep ๋Œ€์‹  `INSPECT_OPTION`์œผ๋กœ ๊ฑฐ์ ˆ๋œ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ ๊ฒฐ๊ณผ๋Š” ๊ฐ™๋‹ค.
66
+ - ์ถ”๊ฐ€๋œ ๊ณต๊ฐœ ์ด๋ฆ„: `FIGURE_INSPECT_LIMITS`, ์˜ค๋ฅ˜ ์ฝ”๋“œ `STEP_EXPIRED`ยท`INSPECT_OPTION`ยท`INSPECT_BUDGET`,
67
+ ํƒ€์ž… `FigureFrozen`ยท`FigureInstanceEvaluation`ยท`FigureCapabilityInstanceEvaluation`.
68
+ - ์ธ์Šคํ„ด์Šค evaluator์˜ `evaluate`์™€ evaluate๋กœ ๋๋‚œ `advance`์˜ ๊ฒฐ๊ณผ ํƒ€์ž…์ด ์œ„ instance ํƒ€์ž…์œผ๋กœ ๋ฐ”๋€๋‹ค(๋‚ด์šฉ์ด deep
69
+ readonly). ์ „์ฒด ํ‰๊ฐ€ ํƒ€์ž…์€ ๊ทธ๋Œ€๋กœ๋‹ค. ์†Œ์œ  ๊ณ„์•ฝ์€ README ใ€ŒEvaluation results: who owns whatใ€์— ์ ์—ˆ๋‹ค.
70
+
71
+ ๋‚จ์€ ์ œํ•œ:
72
+
73
+ - evaluate ๊ฒฝ๋กœ์˜ ์‚ฌ๋ณธ ๋น„์šฉ(์œ„ ์ˆ˜์น˜). ๊ฐ’ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ฝ์„ ๋•Œ๋งŒ ์‚ฌ๋ณธ์„ ๋งŒ๋“œ๋Š” ๋ฐฉ์‹์€ ๋ ˆ์ฝ”๋“œ ๋ณต์‚ฌยท์ง๋ ฌํ™” ์˜๋ฏธ๋ฅผ
74
+ ๋ฐ”๊พธ๋ฏ€๋กœ ๋ณด๋ฅ˜ํ–ˆ๋‹ค.
75
+ - `compileFigureGraph`๋ฅผ ์ง์ ‘ ๋ถ€๋ฅด๋Š” ํ˜ธ์ถœ์ž๋Š” ๊ทธ๋ž˜ํ”„ ํฌ๊ธฐ๋ฅผ ์Šค์Šค๋กœ ์ฑ…์ž„์ง„๋‹ค. ์ „์ฒด ํ‰๊ฐ€ ์˜ˆ์‚ฐ(geometry ํ•ฉ๊ณ„,
76
+ slot ์ˆ˜)์€ ์ •ํ•˜์ง€ ์•Š์•˜๋‹ค.
77
+ - ๊ฒ€์‚ฌ ์˜ˆ์‚ฐ 8,192 ์ƒํƒœ๋Š” ์ƒํƒœ ์ˆ˜ ํ•œ๋„์ด๊ณ  ์‹œ๊ฐ„ยท๋ฉ”๋ชจ๋ฆฌ ์ƒํ•œ์€ ์•„๋‹ˆ๋‹ค.
78
+ - ์•„๋ž˜ ใ€Œํ™•์žฅ์„ฑใ€, ใ€Œ๊ฒ€์‚ฌยท์„ฑ๋Šฅ ์ˆซ์ž์˜ ํ•ด์„ใ€ ํ•ญ๋ชฉ์€ ์ด๋ฒˆ ๋ฒ”์œ„๊ฐ€ ์•„๋‹ˆ๋‹ค.
79
+
80
+ ### ๋ฐœํ–‰ ํŒ์ • (2026-10-04)
81
+
82
+ - ์ •ํ™•์„ฑ ์ˆ˜์ •์€ ์œ ์ง€ํ•˜๊ณ , ์„ฑ๋Šฅ ๋น„์šฉ์„ ๋ฐํžŒ ์ฑ„ ๋ฐœํ–‰์„ ์ค€๋น„ํ•œ๋‹ค. ๋ฐœํ–‰ ์„ค๋ช…์€ ใ€Œ์ •ํ™•์„ฑยท๊ฒ€์ฆ ๊ฒฝ๊ณ„ ๊ฐœ์„ , ์ผ๋ฐ˜ ํ‰๊ฐ€
83
+ ๋น„์šฉ ์ฆ๊ฐ€ใ€๋‹ค. ์ž์„ธ ๊ฒฝ๋กœ ์„ฑ๋Šฅ ๊ฐœ์„ ์ด๋‚˜ ๋ Œ๋”๋ง ์„ฑ๋Šฅ ์œ ์ง€๋กœ ์„ค๋ช…ํ•˜์ง€ ์•Š๋Š”๋‹ค.
84
+ - ์„ฑ๋Šฅ ๊ฒ€์ฆ์€ CPU rig ์ธก์ •๊นŒ์ง€๋งŒ ํ–ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ € ์ „์ฒด ํ”„๋ ˆ์ž„ ๋ชฉํ‘œ๋ฅผ ์ถฉ์กฑํ•˜๋Š”์ง€๋Š” ํ™•์ธํ•˜์ง€ ์•Š์•˜๋‹ค.
85
+ - readonly ํƒ€์ž…์€ ์œ ์ง€ํ•œ๋‹ค. things-scene `4b21c72c`๊ฐ€ ๋‘ ์„ ์–ธ(`movePoses`ยท`dress`, ๊ทธ๋ฆฌ๊ณ  ์ž์„ธ๋ฅผ ํ–‰๋ ฌ๋กœ ์ฝ๋Š”
86
+ `pose`ยท`matrixOf`)์„ ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ๊ณ ์ณค๋‹ค. figure-model 0.3.2์™€ ์ƒˆ ์†Œ์Šค ๋ชจ๋‘์— ๋Œ€ํ•ด ํƒ€์ž… ๊ฒ€์‚ฌ ์˜ค๋ฅ˜๊ฐ€ 0๊ฐœ์ด๊ณ ,
87
+ ๋‹จ์œ„ยทfigure ์‹œํ—˜ 2,787๊ฐœ๊ฐ€ ๋‘˜ ๋‹ค์—์„œ ํ†ต๊ณผํ•œ๋‹ค. things-scene์˜ figure-model ๋ฒ”์œ„๋Š” ๋ฐœํ–‰ ๋’ค์— ์˜ฌ๋ฆฐ๋‹ค.
88
+ - ๋ณต์‚ฌ ๊ตฌ์กฐ ์žฌ์„ค๊ณ„(๋Œ€๊ทœ๋ชจ resize ์ตœ์ ํ™”)๋Š” ๋ณ„๋„ ๊ณผ์ œ๋‹ค. ๊ฒฐ๊ณผ ์†Œ์œ ๊ถŒ ๊ฒฐํ•จ์„ ๋‹ค์‹œ ์—ด์ง€ ์•Š๊ณ , ๋ธŒ๋ผ์šฐ์ € ์ „์ฒด ํ”„๋ ˆ์ž„์˜
89
+ ์ค‘์•™๊ฐ’ยทp95๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ง„ํ–‰ํ•œ๋‹ค.
90
+
91
+ ## ์ข…ํ•ฉ ํŒ๋‹จ
92
+
93
+ ์ด ํŒจํ‚ค์ง€๋Š” **์ด๋ฆ„ ์žˆ๋Š” ๋ถ€ํ’ˆ์˜ ์น˜์ˆ˜ยท์ž์„ธยท๋ฐ˜๋ณตยท์—ฐ๊ฒฐ์„ ์„ ์–ธํ•˜๊ณ , ๊ฐ™์€ ์ •์˜๋ฅผ ์ €์ž‘ยท๊ฒ€์‚ฌยท์”ฌ์—์„œ ์†Œ๋น„ํ•˜๋Š”
94
+ ์žฅ๋น„ ์กฐ๋ฆฝ์ฒด ์ปค๋„**๋กœ๋Š” ์ถฉ๋ถ„ํ•œ ๊ตฌ์กฐ๋ฅผ ๊ฐ–์ท„๋‹ค. ์ž„์˜ CAD, ๋ฌผ๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ, ๋ชจ๋“  JavaScript ํ˜•์ƒ์„ ๋Œ€์ฒดํ•˜๋Š”
95
+ ๋ฒ”์šฉ ๋ชจ๋ธ๋กœ ์™„๊ฒฐ๋๋‹ค๊ณ  ๋งํ•  ๊ทผ๊ฑฐ๋Š” ์—†๋‹ค. ํ˜„์žฌ ๊ธฐ๋Šฅ ๋ฒ”์œ„์™€ ๊ณต๊ฐœ API์˜ ๊ฒฝ๊ณ„ ์กฐ๊ฑด๋„ ๊ตฌ๋ถ„ํ•ด์•ผ ํ•œ๋‹ค.
96
+
97
+ | ์ฐจ์› | ํŒ๋‹จ | ๊ทผ๊ฑฐ์™€ ์ œํ•œ |
98
+ | --------------- | --------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
99
+ | ๊ณ„์‚ฐ ์˜๋ฏธ | ์–‘ํ˜ธ, ๊ฒฐ๊ณผ ์†Œ์œ ๊ถŒ ๋ณด์™„ ํ•„์š” | ๋‹จ์œ„ยท์ขŒํ‘œ๊ณ„ยท๋‹จ์ผ writerยท์ˆœํ™˜ ๊ฒ€์‚ฌ, ์ƒํƒœ ์ „์ด ์˜์กด์„ฑ, ์ˆœ์ˆ˜ ํ‰๊ฐ€. ์ค‘์ฒฉ ๊ฒฐ๊ณผ ์ˆ˜์ •์ด ๋‹ค์Œ ์ฆ๋ถ„ ํ‰๊ฐ€์— ์œ ์ž…๋จ |
100
+ | ์ €์ž‘๊ณผ ์ €์žฅ | ์–‘ํ˜ธ, ๊ฒ€์ฆ ์ž…๊ตฌ ํ†ตํ•ฉ ํ•„์š” | UI/AI ๋ช…๋ น ๊ณต์œ , revisionยท์›์ž ์ ์šฉยทundo. compile/serialize์™€ parse๊ฐ€ ๊ด€์ ˆ์„ ๋‹ค๋ฅด๊ฒŒ ๊ฒ€์ฆํ•จ |
101
+ | ๊ฒ€์‚ฌ ์™„๊ฒฐ์„ฑ | ๋ช…์‹œ์  ์ œํ•œ ์žˆ์Œ | proven/sampled/defaults ๊ตฌ๋ณ„์€ ์ข‹์Œ. ํ‘œ๋ณธ์€ ๋ฒ”์œ„ ๋ณด์žฅ์ด ์•„๋‹ˆ๋ฉฐ ๊ฒ€์‚ฌ ์˜ต์…˜ ๊ฒ€์ฆ์ด ๋ถ€์กฑํ•จ |
102
+ | ์ž์›ยท์•ˆ์ „ ๊ฒฝ๊ณ„ | ๋ถ€๋ถ„์  | JSON 1 MiB/๊นŠ์ด 64, document 8,192๋…ธ๋“œ, ๋ฐ˜๋ณต ์ „๊ฐœ ํ•œ๋„. ๊ธด ์˜์กด ์‚ฌ์Šฌ์—์„œ ์ผ๋ฐ˜ ์Šคํƒ ์˜ค๋ฅ˜ ๋ฐœ์ƒ |
103
+ | ์„ฑ๋Šฅ | ์ฆ๋ถ„ยท์ž์„ธ ์‹คํ–‰ ๊ตฌ์กฐ ์–‘ํ˜ธ | ์ธ์Šคํ„ด์Šค ์ƒํƒœ ๋ถ„๋ฆฌ, ์ž…๋ ฅ ์˜ํ–ฅ ๋ฒ”์œ„, ํ˜•์ƒ ๊ณต์œ  ์นœํ™”์  ๊ฒฐ๊ณผ. ํฐ ์ถœ๋ ฅ ๋Œ€๋น„ ์†Œ์ˆ˜ ๋ณ€๊ฒฝ์˜ ๋ฒ„ํผ ํ• ๋‹น์€ ๊ฐœ์„  ํ›„๋ณด |
104
+ | ํ™•์žฅ์„ฑยท์œ ์ง€๋ณด์ˆ˜ | ํ†ต์ œ๋œ ํ™•์žฅ์— ์ ํ•ฉ | ๋ฒ„์ „ ์—ฐ์‚ฐยทํ˜•์ƒ descriptionยท๊ณต์œ  ๋ช…๋ น. ์—ฐ์‚ฐ ์ถ”๊ฐ€ ์‹œ ์—ฌ๋Ÿฌ ์ •์ฑ…ํ‘œ๋ฅผ ํ•จ๊ป˜ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋ฉฐ ์ž๋™ ๊ธฐ๋ณธ๊ฐ’๊ณผ any๊ฐ€ ์‹ค์ˆ˜๋ฅผ ๊ฐ€๋ฆด ์ˆ˜ ์žˆ์Œ |
105
+
106
+ `npm test`: ํƒ€์ž… ๊ฒ€์‚ฌ์™€ **696๊ฐœ ์‹œํ—˜ ํ†ต๊ณผ**, ์‹คํŒจยทskipยทtodo ์—†์Œ(์•ฝ 23.8์ดˆ, ์ด๋ฒˆ ํ™˜๊ฒฝ).
107
+ ์‹œํ—˜ ํ†ต๊ณผ๋Š” ์•„๋ž˜ ๊ฒฝ๊ณ„ ์‚ฌ๋ก€๊นŒ์ง€ ๊ฒ€์ฆ๋๋‹ค๋Š” ๋œป์ด ์•„๋‹ˆ๋‹ค. ์ด๋ฒˆ์— ์ฝ”๋“œ ์ปค๋ฒ„๋ฆฌ์ง€ ์ˆ˜์น˜๋‚˜ ๋ธŒ๋ผ์šฐ์ € ์„ฑ๋Šฅ์„ ์ƒˆ๋กœ ์ธก์ •ํ•˜์ง€ ์•Š์•˜๋‹ค.
108
+
109
+ ## ์šฐ์„  ๊ณ ์น  ์‚ฌํ•ญ: ์žฌํ˜„๋œ ๋ฌธ์ œ
110
+
111
+ ### F1. ํ‰๊ฐ€ ๊ฒฐ๊ณผ์˜ ์ค‘์ฒฉ ๊ฐ์ฒด๊ฐ€ evaluator ๋‚ด๋ถ€์™€ ๊ณต์œ ๋จ โ€” ๋†’์€ ์šฐ์„ ์ˆœ์œ„
112
+
113
+ > ํ•ด๊ฒฐ๋จ(2026-10-04). ์œ„ ใ€Œํ•ด๊ฒฐ ํ˜„ํ™ฉใ€ ์ฐธ๊ณ . ์•„๋ž˜๋Š” ์ ๊ฒ€ ๋‹น์‹œ์˜ ๊ธฐ๋ก์ด๋‹ค.
114
+
115
+ ๊ทผ๊ฑฐ: `src/graph.ts`์˜ `hold`(1080ํ–‰), `step` ๋ฐ˜ํ™˜, `src/graph-types.ts`์˜ ๊ฐ€๋ณ€ ์ถœ๋ ฅ ํƒ€์ž….
116
+ `hold`๋Š” values record์™€ geometry ๋ฐฐ์—ด๋งŒ ๋ณต์‚ฌํ•œ๋‹ค. ๊ทธ ์•ˆ์˜ shapeยทposeยท๋ฐฐ์—ด์€ ๋‚ด๋ถ€ slot๊ณผ ๊ณต์œ ๋œ๋‹ค.
117
+ ์ฃผ์„์€ ํ˜ธ์ถœ์ž์˜ ์ˆ˜์ •์ด ๋‹ค์Œ ํ‰๊ฐ€์— ๋„๋‹ฌํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ์„ค๋ช…ํ•˜์ง€๋งŒ ์‹ค์ œ ๋ณด์žฅ์€ ์ตœ์ƒ์œ„ ์ปจํ…Œ์ด๋„ˆ๊นŒ์ง€๋‹ค.
118
+
119
+ ์žฌํ˜„: ํญ 5cm์˜ shape๋ฅผ ํ‰๊ฐ€ํ•˜๊ณ  ๋ฐ˜ํ™˜๋œ `shape.dimensions['size.x']`๋ฅผ 999๋กœ ์ˆ˜์ •ํ–ˆ๋‹ค.
120
+ ๊ฐ™์€ ์ž…๋ ฅ์˜ ๋‹ค์Œ ์ฆ๋ถ„ ํ‰๊ฐ€ ๊ฒฐ๊ณผ๋Š” 999, ์ƒˆ ์ „์ฒด ํ‰๊ฐ€ ๊ฒฐ๊ณผ๋Š” ์ •์ƒ๊ฐ’ 50์ด์—ˆ๋‹ค.
121
+ ๊ธฐ์กด `incremental.test.ts`๋Š” values์˜ ์ƒˆ ์†์„ฑ ์ถ”๊ฐ€์™€ geometry push๋ฅผ ๊ฒ€์‚ฌํ•˜๋ฉฐ ์ค‘์ฒฉ ์ˆ˜์ •์„ ๊ฒ€์‚ฌํ•˜์ง€ ์•Š๋Š”๋‹ค.
122
+
123
+ ๊ฐœ์„ : ๊ณต์œ ๋˜๋Š” ๊ฒฐ๊ณผ ๊ฐ์ฒด๋ฅผ ์‹ค์ œ ๋ถˆ๋ณ€์œผ๋กœ ๋งŒ๋“ค์–ด ๋™์ผ์„ฑยท์บ์‹œ ์ด์ ์„ ๋ณด์กดํ•˜๊ฑฐ๋‚˜, ๊ณต๊ฐœ ๊ฒฐ๊ณผ์™€ ๋‚ด๋ถ€ ๋ฒ„ํผ๋ฅผ
124
+ ๊นŠ๊ฒŒ ๋ถ„๋ฆฌํ•œ๋‹ค. ๋ฌธ์„œ๋งŒ readonly๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์€ JavaScript ํ˜ธ์ถœ์ž์˜ ๋ณ€๊ฒฝ์„ ๋ง‰์ง€ ์•Š๋Š”๋‹ค.
125
+ ๋ฌด์กฐ๊ฑด ๋งค ํ”„๋ ˆ์ž„ deep cloneํ•˜๊ธฐ ์ „์— ํ˜•์ƒยท์ž์„ธ์˜ ๊ณต์œ  ๋‹จ์œ„๋ฅผ ์ •ํ•˜๊ณ  ๋น„์šฉ์„ ์ธก์ •ํ•ด์•ผ ํ•œ๋‹ค.
126
+ ํšŒ๊ท€ ๊ฒ€์ฆ์€ shape, pose, collection/member ์ค‘์ฒฉ ์ˆ˜์ •๊ณผ ์ธ์Šคํ„ด์Šค ๊ฐ„ ๊ฒฉ๋ฆฌ๋ฅผ ํฌํ•จํ•œ๋‹ค.
127
+
128
+ ### F2. ๊ด€์ ˆ ๊ฒ€์ฆ์ด ๊ณต๊ฐœ ์ž…๊ตฌ๋งˆ๋‹ค ๋‹ค๋ฆ„ โ€” ๋†’์€ ์šฐ์„ ์ˆœ์œ„
129
+
130
+ > ํ•ด๊ฒฐ๋จ(2026-10-04). ์œ„ ใ€Œํ•ด๊ฒฐ ํ˜„ํ™ฉใ€ ์ฐธ๊ณ . ์•„๋ž˜๋Š” ์ ๊ฒ€ ๋‹น์‹œ์˜ ๊ธฐ๋ก์ด๋‹ค.
131
+
132
+ ๊ทผ๊ฑฐ: `src/asset.ts`์˜ `compileFigureAsset`, `serializeFigureAsset`(208ํ–‰), `parseFigureAsset`(212ํ–‰).
133
+ ๊ด€์ ˆ์˜ schemaยท์ •๋ณธ/๊ทธ๋ž˜ํ”„ ์ผ์น˜ ๊ฒ€์‚ฌ๋Š” parse์—์„œ๋งŒ `checkFigureJoints`๋กœ ์‹คํ–‰ํ•œ๋‹ค.
134
+
135
+ ์žฌํ˜„: hinged-door์˜ fixed joint์— ๊ธˆ์ง€๋œ `axis: 'Z'`๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค.
136
+ compile๊ณผ serialize๋Š” ์„ฑ๊ณตํ–ˆ์ง€๋งŒ, ์งํ›„ ๊ทธ JSON์„ parseํ•˜๋ฉด `JOINT_SCHEMA`๋กœ ์‹คํŒจํ–ˆ๋‹ค.
137
+ ๋”ฐ๋ผ์„œ ๊ณต๊ฐœ serializer๊ฐ€ ๊ณต๊ฐœ parser๋กœ ์ฝ์„ ์ˆ˜ ์—†๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค์–ด ๋‚ผ ์ˆ˜ ์žˆ๋‹ค.
138
+
139
+ ๊ฐœ์„ : ๊ณต๊ฐœ ์ €์žฅยท์ปดํŒŒ์ผ ์ž…๊ตฌ์—์„œ ๋™์ผํ•œ ์ž์‚ฐ ๊ฒ€์ฆ์„ ์‚ฌ์šฉํ•œ๋‹ค.
140
+ ๊ด€์ ˆ ์žฌ์ž‘์„ฑ ๊ณผ์ •์ด ๋ฏธ์™„์„ฑ ์ž์‚ฐ์„ ์ปดํŒŒ์ผํ•ด์•ผ ํ•œ๋‹ค๋ฉด, ๋‚ด๋ถ€ ์ „์šฉ ๊ฒฝ๋กœ์™€ ๊ณต๊ฐœ ๊ฒ€์ฆ์„ ๋ถ„๋ฆฌํ•ด ์žฌ๊ท€ ํ˜ธ์ถœ์„ ํ”ผํ•œ๋‹ค.
141
+ ํ•ฉ๊ฒฉ ๊ธฐ์ค€์€ ๊ณต๊ฐœ serializeโ†’parse์˜ ์ผ๊ด€์„ฑ๊ณผ ๊ด€์ ˆ ๋ ˆ์ฝ”๋“œ/๊ทธ๋ž˜ํ”„ drift์˜ ๋™์ผํ•œ ๊ฑฐ์ ˆ์ด๋‹ค.
142
+
143
+ ### F3. ํ—ˆ์šฉ ํฌ๊ธฐ ์•ˆ์˜ ๊นŠ์€ ๊ทธ๋ž˜ํ”„์—์„œ ์Šคํƒ ์ดˆ๊ณผ โ€” ๋†’์€ ์šฐ์„ ์ˆœ์œ„
144
+
145
+ > ํ•ด๊ฒฐ๋จ(2026-10-04). ์œ„ ใ€Œํ•ด๊ฒฐ ํ˜„ํ™ฉใ€ ์ฐธ๊ณ . ์•„๋ž˜๋Š” ์ ๊ฒ€ ๋‹น์‹œ์˜ ๊ธฐ๋ก์ด๋‹ค.
146
+
147
+ ๊ทผ๊ฑฐ: `src/graph.ts`์˜ ์žฌ๊ท€ `visit`(864ํ–‰), `src/document.ts`์˜ ๋…ธ๋“œ ํ•œ๋„,
148
+ `src/shape-ops.test.ts`์˜ ํฐ ๊ทธ๋ž˜ํ”„ ์‹œํ—˜.
149
+
150
+ ์žฌํ˜„: ์„ ์–ธ ์ˆœ์„œ๋ฅผ ์˜์กด ์ˆœ์„œ์™€ ๋ฐ˜๋Œ€๋กœ ๋†“์€ add ์‚ฌ์Šฌ์„ document๋กœ ์ปดํŒŒ์ผํ–ˆ๋‹ค.
151
+ 2,000ยท5,000ยท8,000๋…ธ๋“œ ๋ชจ๋‘ ์ด๋ฒˆ Node ํ™˜๊ฒฝ์—์„œ `RangeError: Maximum call stack size exceeded`๋กœ ์‹คํŒจํ–ˆ๋‹ค.
152
+ ๊ฐ JSON์€ ์•ฝ 151ยท382ยท613KB๋กœ 1 MiB๋ณด๋‹ค ์ž‘๊ณ  ๋…ธ๋“œ ์ˆ˜๋„ 8,192 ์ดํ•˜์ด๋‹ค.
153
+ ํ˜„์žฌ ํฐ ๊ทธ๋ž˜ํ”„ ์‹œํ—˜์€ ๋ชจ๋‘ ์ž…๋ ฅ `a`๋ฅผ ์ง์ ‘ ์ฝ๋Š” ๋„“์€ ๊ทธ๋ž˜ํ”„๋ผ ์ด ๊ฒฝ๊ณ„๋ฅผ ์žก์ง€ ๋ชปํ•œ๋‹ค.
154
+
155
+ ๊ฐœ์„ : ๋ฐ˜๋ณตํ˜• DFS ๋˜๋Š” Kahn ์œ„์ƒ ์ •๋ ฌ๋กœ ๋ฐ”๊พธ๊ณ  cycle ๊ฒฝ๋กœ ์ง„๋‹จ์„ ์œ ์ง€ํ•œ๋‹ค.
156
+ ์ง€์› ๊นŠ์ด์— ์ œํ•œ์„ ๋‘”๋‹ค๋ฉด ๋ช…์‹œ์  `FigureContractError`๋กœ ๊ฑฐ์ ˆํ•œ๋‹ค.
157
+ ๊ณต๊ฐœ `compileFigureGraph`๋Š” document์˜ byte/node ๊ฒฝ๊ณ„๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š์œผ๋ฏ€๋กœ, ์ €์ˆ˜์ค€ API์˜ ์‹ ๋ขฐยท์˜ˆ์‚ฐ ๊ณ„์•ฝ๋„ ๋ช…์‹œํ•œ๋‹ค.
158
+ ๋ฐ˜๋ณต๋งˆ๋‹ค 10,000๊ฐœ์˜ ์ „๊ฐœ ํ•œ๋„๊ฐ€ ์žˆ์–ด๋„ ์ „์ฒด geometry ํ•ฉ๊ณ„ยทslotยท๊ฒ€์‚ฌ ์‹คํ–‰ ์ˆ˜๊ฐ€ ์ž๋™์œผ๋กœ ์ œํ•œ๋˜์ง€๋Š” ์•Š๋Š”๋‹ค.
159
+ ์ „์ฒด ํ‰๊ฐ€ ์˜ˆ์‚ฐ์„ ์ถ”๊ฐ€ํ• ์ง€ ๋ณ„๋„ ๊ฒฐ์ •ํ•˜๊ณ , ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ ์ƒํ•œ์€ ์ธก์ •ํ•œ๋‹ค.
160
+
161
+ ### F4. ๊ฒ€์‚ฌ ์˜ต์…˜์„ ๊ฒ€์ฆํ•˜์ง€ ์•Š์•„ ์ž˜๋ชป๋œ ์ˆซ์ž๊ฐ€ ๊ณ„์‚ฐ ์˜ค๋ฅ˜๋กœ ๋‚˜ํƒ€๋‚จ โ€” ์ค‘๊ฐ„ ์šฐ์„ ์ˆœ์œ„
162
+
163
+ > ํ•ด๊ฒฐ๋จ(2026-10-04). ์œ„ ใ€Œํ•ด๊ฒฐ ํ˜„ํ™ฉใ€ ์ฐธ๊ณ . ์•„๋ž˜๋Š” ์ ๊ฒ€ ๋‹น์‹œ์˜ ๊ธฐ๋ก์ด๋‹ค.
164
+
165
+ ๊ทผ๊ฑฐ: `src/gate.ts`์˜ `inspectFigureAsset`, 544~580ํ–‰.
166
+ hinged-door์—์„œ `sweepSteps: 1`์€ 0/0 ๋•Œ๋ฌธ์— `NON_FINITE`, 2.5๋Š” ์ž…๋ ฅ ๋ฒ”์œ„๋ฅผ ๋„˜๋Š” ํ‘œ๋ณธ ๋•Œ๋ฌธ์—
167
+ `INPUT_RANGE`, 0์€ sweep ์—†์ด sampled ๊ฒฐ๊ณผ๋กœ ์„ฑ๊ณตํ–ˆ๋‹ค.
168
+ ์ด๋Š” Figure ์ž์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฒ€์‚ฌ ์„ค์ •์˜ ๋ฌธ์ œ์ธ๋ฐ ์ง„๋‹จ์—์„œ ๊ตฌ๋ณ„๋˜์ง€ ์•Š๋Š”๋‹ค.
169
+
170
+ ๊ฐœ์„ : sweepSteps๋ฅผ 2 ์ด์ƒ ์œ ํ•œ ์ •์ˆ˜๋กœ ๊ฒ€์ฆํ•˜๊ณ  ์ตœ๋Œ€ ํ‘œ๋ณธ ์ˆ˜๋ฅผ ์ œํ•œํ•œ๋‹ค.
171
+ maxCornerInputs๋„ ์œ ํ•œ ์ •์ˆ˜ยท์ง€์› ๋ฒ”์œ„๋กœ ๊ฒ€์ฆํ•œ๋‹ค.
172
+ `1 << inputs.length`๋Š” 32๋น„ํŠธ ์‹œํ”„ํŠธ์ด๋ฏ€๋กœ ์˜ต์…˜์œผ๋กœ 31๊ฐœ ์ด์ƒ ์ „์ˆ˜ ์ฝ”๋„ˆ๋ฅผ ํ—ˆ์šฉํ•˜๋ฉด ์‚ฐ์ˆ ๋„ ๋ถ€์ •ํ™•ํ•ด์ง„๋‹ค.
173
+ ์ „์ˆ˜ ํ‘œ๋ณธ ์ˆ˜๋ฅผ ์‚ฌ์ „์— ๊ณ„์‚ฐํ•ด ์˜ˆ์‚ฐ์„ ํ™•์ธํ•˜๋ฉฐ, sampled/defaults ์˜๋ฏธ๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณด์กดํ•œ๋‹ค.
174
+
175
+ ์žฌํ˜„ ๋ช…๋ น:
176
+
177
+ ```sh
178
+ node scripts/audit-completeness-2026-10-04.mjs
179
+ ```
180
+
181
+ ์ด ์Šคํฌ๋ฆฝํŠธ๋Š” ๊ด€์ฐฐ์„ ์ถœ๋ ฅํ•˜๋Š” ์ ๊ฒ€ ๋„๊ตฌ๋‹ค. ๊ฒฐํ•จ์ด ๋‚จ์•„ ์žˆ์–ด์•ผ ํ†ต๊ณผํ•˜๋Š” ํšŒ๊ท€ ์‹œํ—˜์ด ์•„๋‹ˆ๋‹ค.
182
+ ๊ณ„์•ฝ์„ ๊ฒ€์ฆํ•˜๋Š” ํšŒ๊ท€ ์‹œํ—˜์€ ใ€Œํ•ด๊ฒฐ ํ˜„ํ™ฉใ€ ํ‘œ์˜ ์‹œํ—˜ ํŒŒ์ผ์— ์žˆ๋‹ค.
183
+
184
+ ## ํ™•์žฅ์„ฑ: ์ข‹์€ ๊ธฐ๋ฐ˜๊ณผ ์ œ์•ฝ
185
+
186
+ ### ํ˜„์žฌ ์ž˜ ๊ฐ–์ถ˜ ๊ธฐ๋ฐ˜
187
+
188
+ - ๋‹จ์œ„์™€ frame์„ ํƒ€์ž…์œผ๋กœ ๊ฒ€์‚ฌํ•˜๊ณ  ์ƒํƒœ ์˜์กด์„ฑ์„ ์ „์ด์ ์œผ๋กœ ์ „ํŒŒํ•œ๋‹ค. ๊ด€์ ˆ ์ด๋ฆ„์„ ์ถ”์ธกํ•ด ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค.
189
+ - ๊ณต์œ  ์ปดํŒŒ์ผ ๊ฒฐ๊ณผ์™€ ์ธ์Šคํ„ด์Šค๋ณ„ evaluator ์ƒํƒœ๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๋‹ค. ์ฆ๋ถ„ยท์ž์„ธ ๊ฒฝ๋กœ๋Š” ๊ธฐ์กด ์—ฐ์‚ฐ์˜ ๊ณ„์‚ฐ์„ ์žฌ์‚ฌ์šฉํ•˜๊ณ  ๋ฏธ์ง€์› ๊ฒฝ๋กœ๋ฅผ ์ „์ฒด ํ‰๊ฐ€๋กœ ๋Œ๋ฆฐ๋‹ค.
190
+ - `shape-ops.ts`์˜ shape description์ด ์ธก์ •ยทํŽธ์ง‘ยทfeature๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค. ์ƒˆ ํ˜•์ƒ์„ ์ถ”๊ฐ€ํ•  ๋•Œ ์†Œ๋น„์ž๊ฐ€ ์ธ์ž ์œ„์น˜๋ฅผ ์ œ๊ฐ๊ฐ ํ•ด์„ํ•  ํ•„์š”๊ฐ€ ์ค„์—ˆ๋‹ค.
191
+ - proposal์˜ command union ์™„์ „์„ฑ ๊ฒ€์‚ฌ๊ฐ€ UI์™€ AI์˜ ์–ธ์–ด ์ฐจ์ด๋ฅผ ์ค„์ธ๋‹ค. recipe๋Š” ๋ฐ์ดํ„ฐ๋กœ ๋ช…๋ น์„ ์žฌ์‚ฌ์šฉํ•œ๋‹ค.
192
+ - renderer ์ž์ฒด๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๊ณ  render plan์„ ์ œ๊ณตํ•œ๋‹ค. ๋“ฑ๊ธ‰๊ณผ ๋ Œ๋” ๋ฌถ์Œ์˜ ๊ทœ์น™์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค.
193
+ - JSON duplicate keyยท๋น„์œ ํ•œ ๊ฐ’ยทgetterยทcycle ๋“ฑ ๊ฒฝ๊ณ„ ๋ฐฉ์–ด๊ฐ€ ์žˆ๊ณ , ๊ฒ€์‚ฌ coverage๊ฐ€ ํ‘œ๋ณธ๊ณผ ์ฆ๋ช…์„ ๊ตฌ๋ณ„ํ•œ๋‹ค.
194
+
195
+ ### ๊ธฐ๋Šฅ์ƒ์˜ ์˜๋„์  ์ œ์•ฝ
196
+
197
+ | ์˜์—ญ | ํ˜„์žฌ ๋ฒ”์œ„ยท์ œ์•ฝ | ํ™•์žฅํ•  ๋•Œ ํ•„์š”ํ•œ ๊ฒƒ |
198
+ | ----------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
199
+ | ํ˜•์ƒ | extrude/revolve/loft. loft๋Š” ๋‹จ๋ฉดโ†’์  ํ”ผ๋ผ๋ฏธ๋“œ์ด๋ฉฐ ์ž„์˜ ๋‹ค๋‹จ๋ฉด loft๊ฐ€ ์•„๋‹˜ | sweepยทmesh importยทCSG ๋“ฑ์ด ํ•„์š”ํ•˜๋ฉด ํ˜•์ƒยทbounds/supportยทfeatureยทํŽธ์ง‘ยท์‚ผ๊ฐํ˜• ๊ณ„์‚ฐยทrenderer ๊ณ„์•ฝ๊นŒ์ง€ ํ•จ๊ป˜ ์„ค๊ณ„ |
200
+ | ์—ฐ๊ฒฐ | ๊ฐ•์ฒด frame๊ณผ DAG/tree ๊ธฐ๋ฐ˜ ๊ด€์ ˆ | ํ์‡„ ๊ธฐ๊ตฌยท์—ฐ๋ฆฝ ์ œ์•ฝ์€ ๋ช…์‹œ ๊ด€๊ณ„ ๋ธ”๋ก๊ณผ ํ•ด ์„ ํƒยท๋ถˆ๋Šฅ ์ง„๋‹จ. ๋ถ€๋ชจ ๋‘˜๋กœ ์šฐํšŒํ•˜์ง€ ์•Š๊ธฐ |
201
+ | ๋กœ๋ด‡ | ์ •๋ฐฉํ–ฅ ์ž์„ธ, ๊ด€์ ˆ ๋ชฉ๋ก๊ณผ mimic | IKยท์ถฉ๋Œยท์†๋„/ํ† ํฌยท๋™์—ญํ•™์€ ํ˜„์žฌ ์ปค๋„ ๋ณด์žฅ์ด ์•„๋‹˜. ์™ธ๋ถ€ solver์™€ ์ž…๋ ฅ/์ถœ๋ ฅ ๊ณ„์•ฝ๋ถ€ํ„ฐ ์ •์˜ |
202
+ | mimic | ์—ฌ๋Ÿฌ leader์˜ ์„ ํ˜• ํ•ฉ์€ ์ง€์›. follower๋ฅผ ๋‹ค์‹œ leader๋กœ ์“ฐ๋Š” ์—ฐ๊ฒฐ์€ ์ €์ž‘ ๊ฒ€์ฆ์—์„œ ๊ฑฐ์ ˆ | ๋‹ค๋‹จ mimic์ด ํ•„์š”ํ•˜๋ฉด ๋‹จ์œ„ยท์ˆœํ™˜ยท๋ฒ”์œ„ยท๊ด€์ ˆ ๋ชฉ๋ก ํŒŒ์ƒ ๊ทœ์น™๊นŒ์ง€ ๊ฒ€ํ†  |
203
+ | ๋ฐ˜๋ณต | design์— ์˜ํ•œ ์œ ํ•œ topology, state์— ์˜ํ•œ ๋‚ด๋ถ€ ์šด๋™ | state์— ๋”ฐ๋ฅธ ์ƒ์„ฑ/์‚ญ์ œ๋Š” ํ˜„์žฌ count ์ •์ฑ… ๋ฐ–. ordinal key๊ฐ€ ๋ฌผ๋ฆฌ์  ๊ฐ์ฒด ์ •์ฒด์„ฑ์„ ๋ณด์žฅํ•˜๋Š”์ง€๋„ ๋ณ„๋„ ๊ฒฐ์ • |
204
+ | ์ €์ž‘ | ๋งŒ๋“ค์–ด์ง„ recipe๋Š” ๋ณดํ†ต ๋ถ€ํ’ˆ์œผ๋กœ ์‚ฝ์ž…๋˜๊ณ  recipe์™€์˜ ์—ฐ๊ฒฐ์€ ์‚ฌ๋ผ์ง | ์žฌ์‚ฌ์šฉ ํ•˜์œ„ ์กฐ๋ฆฝ์ฒด์˜ ์›๋ณธ ์ˆ˜์ • ์ „ํŒŒ๊ฐ€ ํ•„์š”ํ•˜๋ฉด template/instance/override ๋ฒ„์ „ ๊ณ„์•ฝ ํ•„์š” |
205
+ | capability | Capacity/Holdable/Transferable/FlowNode์˜ ๋‹ซํžŒ ๋ชฉ๋ก | ์ƒˆ ํ–‰๋™์€ ์ปค๋„ ์„ ์–ธ๊ณผ scene ๊ตฌํ˜„์„ ํ•จ๊ป˜ ์ถ”๊ฐ€. ์ด๋ฆ„๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด ๊ธฐ๋Šฅ ์ง€์›์ด ์•„๋‹˜ |
206
+ | ๋ฐฐ์น˜ ์ตœ์ ํ™” | ๋ฐ˜๋ณตยท์ •์ ยท๋™์ผ carrier ๋ฌถ์Œ, ์žฌ์งˆ/ํˆฌ๋ช…์„ฑ/visibility ๋“ฑ ์กฐ๊ฑด | ์žฅ๋ฉด ๊ฐ„ ๋ฐฐ์นญยทLODยทGPU ํ‘œํ˜„์€ ๋ณ„๋„ ์†Œ๋น„์ž ์„ค๊ณ„์™€ ์‹ค์ธก ํ•„์š” |
207
+
208
+ ์ด ์ œ์•ฝ๋“ค์ด ๊ณง ๊ฒฐํ•จ์€ ์•„๋‹ˆ๋‹ค. ๋Œ€ํ‘œ ์žฅ๋น„์—๋Š” ๋‹จ์ˆœ์„ฑ๊ณผ ๊ฒฐ์ •์„ฑ์ด ์žฅ์ ์ด๋‹ค.
209
+ ๋‹ค๋งŒ README์˜ โ€œ์ฝ”๋“œ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ํ˜•์ƒ์„ ๋ฐ์ดํ„ฐ๋กœ ๋งŒ๋“ค๊ธฐโ€๋Š” ๋ชฉํ‘œ์ด๋ฉฐ ํ˜„์žฌ์˜ ๋ฌด์ œํ•œ ํ‘œํ˜„๋ ฅ ๋ณด์žฅ์ด ์•„๋‹ˆ๋‹ค.
210
+
211
+ ### ์—ฐ์‚ฐ ํ™•์žฅ ์‹œ ๊ฐœ์„ ํ•  ๊ตฌ์กฐ
212
+
213
+ `src/graph.ts` 675~707ํ–‰์€ ์ƒˆ ์—ฐ์‚ฐ์— state=`follows`, pure=true๋ฅผ ์ž๋™์œผ๋กœ ์ค€๋‹ค.
214
+ ์ฃผ์„์˜ โ€œ์ •์ฑ… ์—†๋Š” ์—ฐ์‚ฐ์€ ๊ฑฐ์ ˆโ€๊ณผ ๋‹ฌ๋ฆฌ catalog์— ๋„ฃ๊ธฐ๋งŒ ํ•˜๋ฉด ๊ธฐ๋ณธ ์ •์ฑ…์ด ์ƒ๊ธด๋‹ค.
215
+ ์˜ค๋Š˜์˜ ์ˆœ์ˆ˜ ์—ฐ์‚ฐ๋“ค์— ๋Œ€ํ•œ ์˜ค๋‹ต์€ ํ™•์ธํ•˜์ง€ ์•Š์•˜์ง€๋งŒ, ํ–ฅํ›„ ์‹œ๊ฐ„ยท์™ธ๋ถ€ ์ƒํƒœยทtopology ์—ฐ์‚ฐ์„ ์ถ”๊ฐ€ํ•  ๋•Œ
216
+ ๋ˆ„๋ฝ๋œ ์ •์ฑ…์ด ์•ˆ์ „ํ•˜๊ฒŒ ๊ฑฐ์ ˆ๋˜์ง€ ์•Š๋Š” ๊ตฌ์กฐ๋‹ค.
217
+
218
+ ๊ฐœ์„  ๋ฐฉํ–ฅ์€ ์—ฐ์‚ฐ ์ •์˜์— unit/frame signature, state policy, purity, pose form, extrema basis๋ฅผ ๋ช…์‹œํ•˜๊ณ ,
219
+ ๋ถˆ๋ช…ํ™•ํ•œ ํ•ญ๋ชฉ์€ ์ปดํŒŒ์ผ ๊ฑฐ์ ˆ ๋˜๋Š” ๊ฒ€์‚ฌ sampled๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
220
+ ์ „์ฒด ๋ชฉ๋ก์„ ๊ณ ์ •ํ•˜๋Š” ์‹œํ—˜์€ ์œ ์ง€ํ•˜๋˜ ์ •์ฑ… ์ž์ฒด์˜ ์˜๋ฏธ ๊ฒ€์ฆ์„ ๋Œ€์‹ ํ•˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.
221
+ `Dynamic = any`๋Š” ํ˜„์žฌ 13๊ฐœ ํŒŒ์ผ์— ์žˆ๋‹ค. ๋จผ์ € ์—ฐ์‚ฐ dispatch์™€ shape์˜ discriminated union๋ถ€ํ„ฐ ๊ฐ•ํ™”ํ•œ๋‹ค.
222
+ ํ•œ ๋ฒˆ์— ๋ชจ๋“ˆ์„ ๋ชจ๋‘ ๋‚˜๋ˆ„๊ธฐ๋ณด๋‹ค graph ๊ฒ€์ฆยท์‹คํ–‰ยทpose ๋ถ„์„ยท์—ฐ์‚ฐ catalog์˜ ์ฑ…์ž„ ๊ฒฝ๊ณ„๋ฅผ ์ ์ง„์ ์œผ๋กœ ๋ถ„๋ฆฌํ•œ๋‹ค.
223
+
224
+ ## ๊ฒ€์‚ฌยท์„ฑ๋Šฅ ์ˆซ์ž์˜ ํ•ด์„์—์„œ ๋ณด์™„ํ•  ๊ฒƒ
225
+
226
+ 1. `linear.scalable`์€ ๋ชจ๋“  ์ž…๋ ฅ์—์„œ์˜ ์ˆ˜ํ•™์  ์ฆ๋ช…์ด ์•„๋‹ˆ๋‹ค. ํ˜„์žฌ `release-metrics.ts`๋Š” authored size์™€
227
+ ์ผ๊ณฑ resize ํ‘œ๋ณธ์˜ AABB ์ค‘์‹ฌยทextent ๋ฐ ์‚ผ๊ฐํ˜• ์ˆ˜๋ฅผ ๋น„๊ตํ•œ๋‹ค. bounds๊ฐ€ ๊ฐ™์•„๋„ ์ •์ ยทfeature๊ฐ€ ๊ฐ™๋‹ค๋Š”
228
+ ๊ฒฐ๋ก ์€ ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค. `probe`๊ฐ€ ๊ธฐ๋ก๋˜๋Š” ๊ฒƒ์€ ์ข‹๋‹ค. ๋ฒ”์œ„ยท์ƒํƒœยท๊ฒ€์ฆ ๋ฐฉ๋ฒ•์„ ๋” ๋ช…ํ™•ํžˆ ํ•˜๊ณ , ์‹ค์ œ
229
+ ๋ฐฐ์นญ์˜ ํ—ˆ์šฉ ๊ทผ๊ฑฐ๋กœ ์‚ฌ์šฉํ•  ๋•Œ์—๋Š” ๋ณ„๋„์˜ ๊ตฌ์กฐ์  ์ฆ๋ช…์ด๋‚˜ ์ •ํ™•ํ•œ geometry ๋™๋“ฑ์„ฑ ์กฐ๊ฑด์„ ์š”๊ตฌํ•œ๋‹ค.
230
+ 2. `atLargest`๋Š” size ์ถ•์˜ max ์กฐํ•ฉ์—์„œ ์žฐ ๋น„์šฉ์ด์ง€, ๋ชจ๋“  design/state ์กฐํ•ฉ์˜ ์ตœ๋Œ€ ๋น„์šฉ ์ฆ๋ช…์ด ์•„๋‹ˆ๋‹ค.
231
+ ๊ณต๊ฐœ pitch์™€ visibilityยทstate-dependent geometry๊ฐ€ ๋น„์šฉ์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค. ์ธก์ •์ ๊ณผ worst-case coverage๋ฅผ
232
+ ๊ตฌ๋ถ„ํ•˜๊ณ  ๋‹จ์กฐ์„ฑ ์ฆ๋ช… ๋˜๋Š” ๋ณด์ˆ˜์  ์˜ˆ์‚ฐ ๊ณ„์‚ฐ์„ ์ถ”๊ฐ€ํ•œ๋‹ค. ํ˜„์žฌ ๋“ฑ๊ธ‰๋„ ๊ธฐ๋ณธ ์ž…๋ ฅ์˜ ๋“ฑ๊ธ‰์ด๋‹ค.
233
+ 3. `words.ts` ์˜ˆ์‚ฐ์€ ํŠน์ • ์žฅ์น˜์—์„œ ์žฐ draw/motion ๊ฐ’๊ณผ ๋ฏธ์ธก์ • triangle ๋ชฉํ‘œ๊ฐ€ ์„ž์ธ๋‹ค.
234
+ ๋“ฑ๊ธ‰์„ ์ผ๋ฐ˜ ์žฅ์น˜์˜ fps ๋ณด์žฅ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ๋ง๊ณ , ์žฅ์น˜ยทrendererยทkernelยท์ธก์ • ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๊ฐ€์ง„ ๋น„์šฉ profile๋กœ
235
+ ๋ฒ„์ „ํ™”ํ•˜๋Š” ๋ฐฉํ–ฅ์ด ์ข‹๋‹ค. ์ตœ๊ทผ ์ปค๋„/rig ๊ฐœ์„  ๋’ค์—๋„ ๊ธฐ์กด ๋Œ€๋‹น ๊ณ„์ˆ˜๊ฐ€ ์œ ํšจํ•œ์ง€๋Š” ์žฌ์ธก์ • ๋Œ€์ƒ์ด๋‹ค.
236
+ 4. poseStep์€ ๋ณ€๊ฒฝ์ด ์—†์–ด๋„ ์ „์ฒด bodyCount ํฌ๊ธฐ์˜ Int32/Float64 ๋ฒ„ํผ๋ฅผ ํ• ๋‹นํ•œ ๋’ค sliceํ•œ๋‹ค.
237
+ ์†Œ์ˆ˜ ๋ณ€๊ฒฝ์—์„œ๋„ ์“ฐ๋Š” ์–‘๋ณด๋‹ค ํ• ๋‹น๋Ÿ‰์ด ์ปค์งˆ ์ˆ˜ ์žˆ๋‹ค. ๋ณ€๊ฒฝ ์—†์Œ์˜ ๋นˆ ๊ฒฐ๊ณผ, ์ถœ๋ ฅ ํฌ๊ธฐ ์ถ”์ •, ๋ช…์‹œ ์ˆ˜๋ช…์˜
238
+ ๋‚ด๋ถ€ ๋ฒ„ํผ๋ฅผ ๊ฒ€ํ† ํ•˜๋˜ ์ด์ „ ๊ฒฐ๊ณผ ๋ณด์กด์„ ๋จผ์ € ์ •ํ•˜๊ณ  ํ• ๋‹นยทGCยท์ „์ฒด ํ”„๋ ˆ์ž„ ๊ฐœ์„ ์„ ์ธก์ •ํ•œ๋‹ค.
239
+ 5. pose ๊ฒฐ๊ณผ์˜ `read`/`changed`๋Š” ๋‚ด๋ถ€ fast ์Šฌ๋กฏยทmark๋ฅผ ์กฐํšŒํ•˜๋Š” closure๋‹ค.
240
+ ์ด์ „ step์„ ๋ณด๊ด€ํ•œ ๋’ค ๋‹ค์Œ advance ํ›„ ์กฐํšŒํ•  ๋•Œ์˜ ์ˆ˜๋ช… ๊ณ„์•ฝ์„ ๋ฌธ์„œํ™”ํ•ด์•ผ ํ•œ๋‹ค.
241
+ ์ผ๋ฐ˜ snapshot๊ณผ frame ๋ฒ”์œ„ ์กฐํšŒ API๋ฅผ ํ˜ผ๋™ํ•˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.
242
+
243
+ ์œ„ ํ•ญ๋ชฉ์€ ์žฌํ˜„๋œ F1~F4์™€ ๊ตฌ๋ถ„ํ•œ ์„ค๊ณ„ยท์ธก์ • ๊ฐœ์„  ํ›„๋ณด์ด๋‹ค. ์ƒˆ ์„ฑ๋Šฅ ์ˆ˜์น˜๋‚˜ ์‹ค์ œ ์žฅ๋ฉด ๊ฒฐํ•จ์œผ๋กœ ์ฃผ์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค.
244
+
245
+ ## ๊ถŒ์žฅ ์ˆœ์„œ์™€ ์™„๋ฃŒ ์กฐ๊ฑด
246
+
247
+ 1. F1 ๊ฒฐ๊ณผ ์†Œ์œ ๊ถŒ๊ณผ F2 ๊ณต๊ฐœ ๊ฒ€์ฆ ์ผ๊ด€์„ฑ์„ ๊ฒฐ์ •ยท์ˆ˜์ •ํ•˜๊ณ  ์ค‘์ฒฉ mutation ๋ฐ serialize/parse ํšŒ๊ท€ ์‹œํ—˜์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
248
+ 2. F3 ๋ฐ˜๋ณตํ˜• ๊ทธ๋ž˜ํ”„ ์ปดํŒŒ์ผ๊ณผ F4 ๊ฒ€์‚ฌ ์˜ต์…˜/์‹คํ–‰ ์˜ˆ์‚ฐ์„ ๋ณด์™„ํ•œ๋‹ค. ๊นŠ์€ยท๋„“์€ยท์ˆœํ™˜ ๊ทธ๋ž˜ํ”„์™€ ์„ค์ • ๊ฒฝ๊ณ„๋ฅผ ํ™•์ธํ•œ๋‹ค.
249
+ 3. ์ง€์› ๊ธฐ๋Šฅยท์˜๋„์  ์ œํ•œยท์ฆ๋ช…/ํ‘œ๋ณธ์˜ ๊ตฌ๋ณ„์„ ์ •๋ณธ ๋ฌธ์„œ์— ๋ชจ์œผ๊ณ , ์žฌํ˜„ script์™€ ํ˜„ํ–‰ ์ƒํƒœ ๋งํฌ๋ฅผ ์œ ์ง€ํ•œ๋‹ค.
250
+ 4. ์ƒˆ ์—ฐ์‚ฐ์˜ ์ •์ฑ…์„ ํ•„์ˆ˜ํ™”ํ•˜๊ณ  catalog/type๋ฅผ ๋‹จ๊ณ„์ ์œผ๋กœ ์ •๋ฆฌํ•œ๋‹ค. ๊ธฐ์กด ์ž์‚ฐ์˜ ์˜๋ฏธ์™€ fallback์„ ๋ณด์กดํ•œ๋‹ค.
251
+ 5. ๋น„์šฉ profile๊ณผ pose ํ• ๋‹น์„ ์‹ค์ œ ์žฅ๋ฉด์—์„œ ๊ฒ€ํ† ํ•œ๋‹ค. ์ •ํ™•์„ฑ์ด ์œ ์ง€๋˜๊ณ  ์ „์ฒด ํ”„๋ ˆ์ž„์ด ๊ฐœ์„ ๋  ๋•Œ ์ฑ„ํƒํ•œ๋‹ค.
252
+ 6. IKยทํ์‡„ ๊ธฐ๊ตฌยท์ƒˆ ํ˜•์ƒยทํ•˜์œ„ template ๋“ฑ์€ ์‹ค์ œ ์š”๊ตฌ ์‚ฌ๋ก€ ์ˆœ์„œ๋กœ ๋ณ„๋„ ์„ค๊ณ„ํ•œ๋‹ค. ๊ธฐ๋Šฅ ์ˆ˜๋ฅผ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ ์ž์ฒด๋ฅผ
253
+ ์™„๊ฒฐ์„ฑ ์ง€ํ‘œ๋กœ ์‚ผ์ง€ ์•Š๋Š”๋‹ค.
254
+
255
+ ์ด๋ฒˆ ์™„๋ฃŒ ๋ฒ”์œ„๋Š” ์ €์žฅ์†Œ ์ ๊ฒ€ยท๋ฌธ์„œํ™”ยท์žฌํ˜„ ๊ทผ๊ฑฐ ๋งˆ๋ จ์ด๋‹ค. ๋Ÿฐํƒ€์ž„ ๊ฒฐํ•จ ์ˆ˜์ •, ์†Œ๋น„์ž ์ „์ฒด ๊ฒ€์ฆ,
256
+ ๋ฐฐํฌยท๋ฐœํ–‰์€ ํ›„์† ์ž‘์—…์ด๋ฉฐ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์•˜๋‹ค.
package/docs/status.md CHANGED
@@ -3,7 +3,18 @@
3
3
  > ์ด ํŒŒ์ผ์€ ์งง์€ ์•ˆ๋‚ด๋‹ค. ๊ฒฐ์ •์€ `operato-application/adr/`(ADR-0087 ยท ADR-0093 ยท ADR-0096), ํ˜„์žฌ ์ƒํƒœ๋Š”
4
4
  > `operato-application/packages/operato-figure/docs/CURRENT_STATUS.md` ๊ฐ€ ์ •๋ณธ์ด๋‹ค.
5
5
 
6
- ๊ธฐ์ค€์ผ: 2026-09-27.
6
+ ์ตœ๊ทผ ์ €์žฅ์†Œ ์ ๊ฒ€: 2026-10-04, figure-model 0.3.2 (`4610edc`).
7
+
8
+ - ์™„๊ฒฐ์„ฑยทํ™•์žฅ์„ฑ ๋ฐ ๊ณต๊ฐœ ๊ฒฝ๊ณ„ ๊ฒ€ํ† : [์ ๊ฒ€ ๊ฒฐ๊ณผ](completeness-review-2026-10-04.md).
9
+ - ์ ๊ฒ€ ๋•Œ `npm test`: ํƒ€์ž… ๊ฒ€์‚ฌ์™€ 696๊ฐœ ์‹œํ—˜ ํ†ต๊ณผ.
10
+ - ์žฌํ˜„๋œ F1~F4๋Š” ๊ฐ™์€ ๋‚  ๊ณ ์ณค๋‹ค(`122b3c0` ยท `c86d74b` ยท `4f32334` ยท `9a332e7`, ๋ฏธ๋ฐœํ–‰). ๊ณ ์นœ ๋’ค `npm test`๋Š”
11
+ ํƒ€์ž… ๊ฒ€์‚ฌ์™€ 725๊ฐœ ์‹œํ—˜ ํ†ต๊ณผ, build ์„ฑ๊ณต. ์„ ํƒํ•œ ๊ณ„์•ฝ๊ณผ ๋‚จ์€ ์ œํ•œ์€ ์ ๊ฒ€ ๊ฒฐ๊ณผ ๋ฌธ์„œ์˜ ใ€Œํ•ด๊ฒฐ ํ˜„ํ™ฉใ€์— ์žˆ๋‹ค.
12
+ - ๋ฐœํ–‰ ํŒ์ •: ใ€Œ์ •ํ™•์„ฑยท๊ฒ€์ฆ ๊ฒฝ๊ณ„ ๊ฐœ์„ , ์ผ๋ฐ˜ ํ‰๊ฐ€ ๋น„์šฉ ์ฆ๊ฐ€ใ€. ์„ฑ๋Šฅ์€ CPU rig๊นŒ์ง€๋งŒ ์Ÿ€๋‹ค(๋งค ํ”„๋ ˆ์ž„ evaluate
13
+ +40~55%). ๋Œ€๊ทœ๋ชจ resize ์ตœ์ ํ™”๋Š” ๋ณ„๋„ ๊ณผ์ œ๋‹ค.
14
+ - ๋‚จ์€ ๊ฐœ์„  ํ›„๋ณด(์—ฐ์‚ฐ ์ •์ฑ… ํ•„์ˆ˜ํ™”, ๋น„์šฉ profile, pose ๋ฒ„ํผ ํ• ๋‹น, IKยท์ƒˆ ํ˜•์ƒยทํ•˜์œ„ template)๋Š” ๋ณ„๋„ ๊ณผ์ œ๋‹ค.
15
+ - ์•„๋ž˜ ์ œํ’ˆ ์„ค์น˜ ์ •๋ณด๋Š” **2026-09-27 ๋‹น์‹œ ๊ธฐ๋ก**์ด๋‹ค. ํ˜„์žฌ ์„ค์น˜ ๋ฒ„์ „ ํ™•์ธ ๊ฒฐ๊ณผ๋กœ ์ฝ์ง€ ์•Š๋Š”๋‹ค.
16
+
17
+ ์ œํ’ˆ ์—ฐ๊ฒฐ ๊ธฐ๋ก ๊ธฐ์ค€์ผ: 2026-09-27.
7
18
 
8
19
  - ๋ชจ๋ธ๋ŸฌยทAIยท์ €์žฅยท๋ Œ๋”๋Ÿฌ๋Š” ํ•œ ํ˜•์‹(`figure-asset-1`)์„ ์“ด๋‹ค. ์˜› ํ˜•์‹์€ 2026-09-26 ์ฝ”๋“œ์™€ ๋ช…์„ธ์—์„œ ์—†์•ด๋‹ค.
9
20
  - ์ œํ’ˆ ์„œ๋ฒ„ localhost:3300 ์€ ์ด ํ˜•์‹์œผ๋กœ ๋ˆ๋‹ค(figure-model 0.1.92 ยท things-scene 10.1.60 ยท tf 10.1.75).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hatiolab/figure-model",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "The figure format (figure-asset-1): a kernel that evaluates a figure from its declared relations, the authoring commands a modeller and an AI share, the release gate and the score.",
5
5
  "keywords": [
6
6
  "figure",