@hatiolab/figure-model 0.1.95 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/asset.d.ts.map +1 -1
  3. package/dist/asset.js +3 -1
  4. package/dist/asset.js.map +1 -1
  5. package/dist/authoring-actions.d.ts +19 -0
  6. package/dist/authoring-actions.d.ts.map +1 -1
  7. package/dist/authoring-actions.js +106 -63
  8. package/dist/authoring-actions.js.map +1 -1
  9. package/dist/command-preview.d.ts +3 -1
  10. package/dist/command-preview.d.ts.map +1 -1
  11. package/dist/command-preview.js +52 -27
  12. package/dist/command-preview.js.map +1 -1
  13. package/dist/cost.d.ts +1 -1
  14. package/dist/cost.d.ts.map +1 -1
  15. package/dist/cost.js +30 -25
  16. package/dist/cost.js.map +1 -1
  17. package/dist/create.d.ts.map +1 -1
  18. package/dist/create.js +112 -31
  19. package/dist/create.js.map +1 -1
  20. package/dist/document.d.ts.map +1 -1
  21. package/dist/document.js +3 -2
  22. package/dist/document.js.map +1 -1
  23. package/dist/fixtures/shape-nodes.d.ts +12 -0
  24. package/dist/fixtures/shape-nodes.d.ts.map +1 -0
  25. package/dist/fixtures/shape-nodes.js +20 -0
  26. package/dist/fixtures/shape-nodes.js.map +1 -0
  27. package/dist/follow.d.ts.map +1 -1
  28. package/dist/follow.js +5 -2
  29. package/dist/follow.js.map +1 -1
  30. package/dist/gate.d.ts.map +1 -1
  31. package/dist/gate.js +31 -59
  32. package/dist/gate.js.map +1 -1
  33. package/dist/graph-types.d.ts +7 -6
  34. package/dist/graph-types.d.ts.map +1 -1
  35. package/dist/graph.d.ts +17 -12
  36. package/dist/graph.d.ts.map +1 -1
  37. package/dist/graph.js +24 -292
  38. package/dist/graph.js.map +1 -1
  39. package/dist/index.d.ts +4 -0
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +5 -0
  42. package/dist/index.js.map +1 -1
  43. package/dist/kernel-version.d.ts +1 -1
  44. package/dist/kernel-version.d.ts.map +1 -1
  45. package/dist/kernel-version.js +1 -1
  46. package/dist/kernel-version.js.map +1 -1
  47. package/dist/part-edit.d.ts.map +1 -1
  48. package/dist/part-edit.js +8 -6
  49. package/dist/part-edit.js.map +1 -1
  50. package/dist/proposal.d.ts +1 -1
  51. package/dist/proposal.d.ts.map +1 -1
  52. package/dist/proposal.js +14 -2
  53. package/dist/proposal.js.map +1 -1
  54. package/dist/recipe-from-parts.d.ts.map +1 -1
  55. package/dist/recipe-from-parts.js +107 -24
  56. package/dist/recipe-from-parts.js.map +1 -1
  57. package/dist/render-batches.d.ts.map +1 -1
  58. package/dist/render-batches.js +11 -2
  59. package/dist/render-batches.js.map +1 -1
  60. package/dist/resize-plan.d.ts.map +1 -1
  61. package/dist/resize-plan.js +22 -8
  62. package/dist/resize-plan.js.map +1 -1
  63. package/dist/section.d.ts +164 -0
  64. package/dist/section.d.ts.map +1 -0
  65. package/dist/section.js +277 -0
  66. package/dist/section.js.map +1 -0
  67. package/dist/shape-edit.d.ts +22 -0
  68. package/dist/shape-edit.d.ts.map +1 -0
  69. package/dist/shape-edit.js +225 -0
  70. package/dist/shape-edit.js.map +1 -0
  71. package/dist/shape-features.d.ts +83 -0
  72. package/dist/shape-features.d.ts.map +1 -0
  73. package/dist/shape-features.js +102 -0
  74. package/dist/shape-features.js.map +1 -0
  75. package/dist/shape-ops.d.ts +154 -0
  76. package/dist/shape-ops.d.ts.map +1 -0
  77. package/dist/shape-ops.js +571 -0
  78. package/dist/shape-ops.js.map +1 -0
  79. package/dist/shape-provider.d.ts +16 -23
  80. package/dist/shape-provider.d.ts.map +1 -1
  81. package/dist/shape-provider.js +18 -56
  82. package/dist/shape-provider.js.map +1 -1
  83. package/dist/shape-sampling.d.ts +0 -8
  84. package/dist/shape-sampling.d.ts.map +1 -1
  85. package/dist/shape-sampling.js +67 -101
  86. package/dist/shape-sampling.js.map +1 -1
  87. package/dist/size-edit.js +2 -2
  88. package/dist/size-edit.js.map +1 -1
  89. package/dist/surface.d.ts.map +1 -1
  90. package/dist/surface.js +10 -17
  91. package/dist/surface.js.map +1 -1
  92. package/dist/words.d.ts +7 -0
  93. package/dist/words.d.ts.map +1 -1
  94. package/dist/words.js +7 -0
  95. package/dist/words.js.map +1 -1
  96. package/docs/document-contract.md +1 -1
  97. package/docs/shape-contract.md +439 -0
  98. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -6,6 +6,20 @@
6
6
 
7
7
  ## 아직 버전을 붙이지 않음
8
8
 
9
+ ### 형상은 단면을 미는 것 — `extrude@1` · `revolve@1` (2026-09-29, ADR-0100 1단계, 0.2.0)
10
+
11
+ 옛 형상 op 여덟 가지(`box-shape` · `cylinder-shape` · `rounded-box` · `hollow-box` · `portal-profile` · `polygon-shape` ·
12
+ `frustum-shape` · `sphere-shape`)를 없앴다. 부품의 형상은 단면(사각 · 타원 · 다각형 · 문틀)을 한 축으로 민 것(`extrude@1`)이거나 반단면을
13
+ 돌린 것(`revolve@1`)이다. 형상 노드가 곧 기록이다. 호환 층은 없다 — 저장된 자산은 `scripts/rewrite-shapes.ts` 로 한 번 다시 쓴다
14
+ (0.1.95 로 평가한 세계 상자 · 자세와 맞춰 본다).
15
+
16
+ - 둥근 모서리는 타원 사분원이다. `set-section-corner` 가 사각 단면의 모서리를 둥글게 하거나 되돌린다.
17
+ - 속 공간은 부품마다 하나다. `set-cavity` 가 사각 · 타원 단면에 벽 두께와 양 끝(열림 · 막힘)을 준다. 붙은 것이 기대는 면을 없애는
18
+ 편집은 `FEATURE_MAPPING_REQUIRED`, 다른 값을 따르는 치수를 바꾸려 하면 `DIMENSION_LINKED` 로 거절한다.
19
+ - 곡면 옆면은 접평면을 내고(`contact: 'line'`), 붙일 수는 있지만 바인딩 면은 아니다.
20
+ - 문서 노드 한도를 512 에서 1024 로 올렸다(임시, Q10).
21
+ - `^0.1.x` 범위가 이 판을 집지 않도록 부 판을 올렸다.
22
+
9
23
  ### 속 빈 상자를 부품으로 (2026-09-26, G4)
10
24
 
11
25
  `addFigurePrimitive` · `add-part` 가 `hollow-box`(윗면이 열린 통: 폭 · 높이 · 깊이 · 모서리 · 벽 두께 · 바닥 두께, `hollow-box@2`)를 만든다.
@@ -1 +1 @@
1
- {"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../src/asset.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAyB,MAAM,kBAAkB,CAAA;AAC/F,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAc1E,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,mBAAmB,CAEvE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAQtD;AAED,2FAA2F;AAC3F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IAAE,SAAS,CAAC,EAAE,eAAe,CAAA;CAAE,GAAG,eAAe,CAEzF;AA4JD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,UAGlD;AACD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAO1D;AACD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,OAAO,GAAE;IAAE,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/C,WAAW,CAeb"}
1
+ {"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../src/asset.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAyB,MAAM,kBAAkB,CAAA;AAC/F,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAc1E,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,mBAAmB,CAEvE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,CAQtD;AAED,2FAA2F;AAC3F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE;IAAE,SAAS,CAAC,EAAE,eAAe,CAAA;CAAE,GAAG,eAAe,CAEzF;AA8JD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,UAGlD;AACD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAO1D;AACD,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,OAAO,GAAE;IAAE,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/C,WAAW,CAeb"}
package/dist/asset.js CHANGED
@@ -126,7 +126,9 @@ function compileAsset(given) {
126
126
  fail('MATERIAL', 'emissive', 'invalid intensity or switch');
127
127
  }
128
128
  const shape = writers.get(placements.get(look.target).args[0]);
129
- if (['cylinder-shape@1', 'cylinder-shape@2', 'sphere-shape@1', 'frustum-shape@1'].includes(shape?.op)) {
129
+ /* Round bodies take a segment count: a circle or an ellipse pushed, anything turned. */
130
+ const round = shape?.op === 'revolve@1' || (shape?.op === 'extrude@1' && shape.params?.section === 'ellipse');
131
+ if (round) {
130
132
  if (![8, 12, 16, 24, 32, 48].includes(look.segments))
131
133
  fail('QUALITY', 'segments', 'explicit supported cylinder segment count required');
132
134
  }
package/dist/asset.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"asset.js","sourceRoot":"","sources":["../src/asset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"asset.js","sourceRoot":"","sources":["../src/asset.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type FigureClipConsent } from './clip-keeping.ts';
2
+ import { type FigureCavityRequest } from './shape-edit.ts';
2
3
  import type { Axis } from './words.ts';
3
4
  import type { FigureAsset, FigurePlacement } from './asset-types.ts';
4
5
  /** The six faces of a box-shaped part, and the axis each one faces along. */
@@ -452,6 +453,24 @@ export type FigureAuthoringAction =
452
453
  | {
453
454
  kind: 'rename';
454
455
  name: string;
456
+ }
457
+ /**
458
+ * Round a pushed rectangle's corners (ADR-0100 A2): one radius for all four, or a reach per plane axis; 0 is a sharp
459
+ * corner again, `null` takes the rounding away. The part keeps its id, its outer size and its faces.
460
+ */
461
+ | {
462
+ kind: 'set-section-corner';
463
+ part: string;
464
+ corner: number | Partial<Record<Axis, number>> | null;
465
+ }
466
+ /**
467
+ * Give a pushed rectangle or ellipse an inside, change it, or take it away (ADR-0100 A3, A4): walls, and each end open
468
+ * or closed by a thickness. Refused when it takes away a face something is fastened to.
469
+ */
470
+ | {
471
+ kind: 'set-cavity';
472
+ part: string;
473
+ cavity: FigureCavityRequest | null;
455
474
  };
456
475
  /** Apply one authoring command. Throws on any refusal, leaving the asset it was given untouched. */
457
476
  export declare function applyFigureAuthoring(source: FigureAsset, action: FigureAuthoringAction, consent?: FigureClipConsent): FigureAsset;
@@ -1 +1 @@
1
- {"version":3,"file":"authoring-actions.d.ts","sourceRoot":"","sources":["../src/authoring-actions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authoring-actions.d.ts","sourceRoot":"","sources":["../src/authoring-actions.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,9 @@ import { compileFigureAsset, figurePlacementOf, upgradeFigurePlacement } from ".
26
26
  import { checkPublicInput, keepPublicInputs } from "./public-inputs.js";
27
27
  import { figurePartsExtentOf } from "./gate.js";
28
28
  import { compileFigureGraph, figureShapeFaces } from "./graph.js";
29
- import { figureFollowableAxesOf } from "./shape-provider.js";
29
+ import { figureFollowableAxesOf, figureShapeProviderOf } from "./shape-provider.js";
30
+ import { figureShapeDescriptionOf } from "./shape-ops.js";
31
+ import { setFigureCavity, setFigureSectionCorner } from "./shape-edit.js";
30
32
  import { FigureContractError } from "./contract.js";
31
33
  import { AXES, REPEAT_LIMIT } from "./words.js";
32
34
  import { defaultInstanceSizeRange, foldInstanceSizeRange, figureInstanceSizeLimitsOf, FIGURE_INSTANCE_SIZE_DEFAULT, FIGURE_INSTANCE_SIZE_INPUTS } from "./instance-size.js";
@@ -72,32 +74,38 @@ function partOf(m, id, path) {
72
74
  }
73
75
  function sizeRefsOf(m, id, path) {
74
76
  const { shape } = partOf(m, id, path);
75
- /*
76
- A cylinder stands along its local Y: its top and bottom are planes, and its sides touch the planes one diameter
77
- apart. Fastening it by those faces is as well defined as a box's — DRY_ROOM's lamps are cylinders set into their
78
- portals, and the gate's advice to fasten them could not be followed while this refused them (2026-09-24).
79
- */
80
- if (shape.op === 'cylinder-shape@1') {
81
- /* Measured without writing anything: a proposal reads this and must leave the figure as it found it. */
82
- return { x: { ref: shape.args[0], k: 2 }, y: { ref: shape.args[1], k: 1 }, z: { ref: shape.args[0], k: 2 } };
77
+ /* A shape operation says itself which argument is each axis's measure (ADR-0100). */
78
+ const described = figureShapeDescriptionOf(shape);
79
+ if (described) {
80
+ const out = {};
81
+ for (const axis of AXES) {
82
+ const e = described.edit[axis];
83
+ if ('refused' in e)
84
+ return fail('EDIT_TARGET', path, `${id} is a drawn section; its reach across is its points, not a measure this command can read`);
85
+ out[axis] = { ref: shape.args[e.arg], k: e.k };
86
+ }
87
+ return out;
83
88
  }
84
- /* A hollow box's first three are its outside, as a box's: what it takes up is its outside (G4). */
85
- if (shape.op !== 'box-shape@1' && shape.op !== 'rounded-box@1' && shape.op !== 'rounded-box@2' && shape.op !== 'hollow-box@2')
86
- fail('EDIT_TARGET', path, `${id} is a ${shape.op}; a face of it is not an axis-aligned plane this command can measure`);
87
- return { x: { ref: shape.args[0], k: 1 }, y: { ref: shape.args[1], k: 1 }, z: { ref: shape.args[2], k: 1 } };
89
+ return fail('EDIT_TARGET', path, `${id} is a ${shape.op}; it is not a shape this command can measure`);
88
90
  }
89
91
  /**
90
- * What a part takes up along each of its own axes, as candidates whose largest is the answer. A frustum is as wide as
92
+ * What a part takes up along each of its own axes, as candidates whose largest is the answer. A taper is as wide as
91
93
  * the larger of its two ends, and which end that is changes when a radius follows a size -- so both are candidates, and
92
94
  * the room's bounds take the larger when the graph is evaluated (G5, chief architect 2026-09-26). Every other part
93
95
  * has one candidate: its size.
94
96
  */
95
97
  function occupiedExtentsOf(m, id, path, single = false) {
96
98
  const { shape } = partOf(m, id, path);
97
- if (shape.op === 'frustum-shape@1' && !single) {
98
- const [top, bottom, height] = shape.args;
99
- const across = [{ ref: top, k: 2 }, { ref: bottom, k: 2 }];
100
- return { x: across, y: [{ ref: height, k: 1 }], z: across };
99
+ const described = figureShapeDescriptionOf(shape);
100
+ if (described && !single) {
101
+ const out = {};
102
+ for (const axis of AXES) {
103
+ const terms = described.measure[axis];
104
+ if (terms === 'profile')
105
+ fail('EDIT_TARGET', path, `${id} is a drawn section; its reach across is its points, not a measure this command can read`);
106
+ out[axis] = terms.map(t => ({ ref: shape.args[t.arg], k: t.k }));
107
+ }
108
+ return out;
101
109
  }
102
110
  const own = sizeRefsOf(m, id, path);
103
111
  return { x: [own.x], y: [own.y], z: [own.z] };
@@ -174,7 +182,8 @@ const OUTER = { x: ['left', 'right'], y: ['bottom', 'top'], z: ['back', 'front']
174
182
  /** A part's declared faces, from its shape's own definition, or a refusal saying the shape has none. */
175
183
  function facesOfPart(m, id, path) {
176
184
  const { shape } = partOf(m, id, path);
177
- const faces = figureShapeFaces(shape.op);
185
+ /* With the graph: a centred push's ends are ±half its length, the planes fastenings have always been made from. */
186
+ const faces = figureShapeFaces(shape, m);
178
187
  if (!faces)
179
188
  fail('EDIT_TARGET', path, `${id} is a ${shape.op}; it has no flat face to fasten by`);
180
189
  return { shape, faces: faces };
@@ -337,22 +346,29 @@ function sourceRef(m, asset, source, path) {
337
346
  */
338
347
  function stableDimension(m, part, axis, path) {
339
348
  const shape = partOf(m, part, path).shape;
340
- /*
341
- A section's arguments are its thickness and its corners, not three lengths: taking its first three as X, Y and Z
342
- changed the thickness when X was asked, and one corner when Y was (DRY_ROOM's door frame, 2026-09-26). Refused.
343
- A door frame's first three are its width, height and depth (portal-profile@2), and follow as a box's do.
344
- */
345
- if (shape.op === 'polygon-shape@1')
346
- fail('EDIT_TARGET', path, `${part} is a section (${shape.op}); its measures are its corners, which no measure can follow -- make it of boxes to have it follow`);
347
- const i = AXES.indexOf(axis);
348
- const id = `${part}.dimension.${axis}`;
349
- const ref = `${id}.value`;
350
- if (nodeById(m, id))
349
+ const described = figureShapeDescriptionOf(shape);
350
+ if (described) {
351
+ const e = described.edit[axis];
352
+ if ('refused' in e)
353
+ return fail('EDIT_TARGET', path, `${part} is a drawn section; its measures are its points, which no measure can follow`);
354
+ /* An axis whose argument is another axis's value (a circle's two radii) is that axis's dimension. */
355
+ if (e.sameAs)
356
+ return stableDimension(m, part, e.sameAs, path);
357
+ const id = `${part}.dimension.${axis}`;
358
+ const ref = `${id}.value`;
359
+ if (nodeById(m, id))
360
+ return ref;
361
+ const was = shape.args[e.arg];
362
+ const one = constantOf(m, 'ratio', 1, 'k');
363
+ m.nodes.push({ id, op: 'mul@1', args: [was, one], outputs: { value: ref } });
364
+ /* Every argument that is this value goes with it, and so does a start written from this length (a centred push). */
365
+ shape.args = shape.args.map((r) => (r === was ? ref : r));
366
+ const start = nodeById(m, `${part}.start`);
367
+ if (start)
368
+ start.args = start.args.map((r) => (r === was ? ref : r));
351
369
  return ref;
352
- const one = constantOf(m, 'ratio', 1, 'k');
353
- m.nodes.push({ id, op: 'mul@1', args: [shape.args[i], one], outputs: { value: ref } });
354
- shape.args = shape.args.map((r, k) => (k === i ? ref : r));
355
- return ref;
370
+ }
371
+ return fail('EDIT_TARGET', path, `${part} is a ${shape.op}; it is not a shape with measures`);
356
372
  }
357
373
  /** What a part's dimension is worked out from right now: the first argument of its own dimension node. */
358
374
  const dimensionSource = (m, part, axis) => nodeById(m, `${part}.dimension.${axis}`)?.args?.[0];
@@ -544,8 +560,8 @@ function attach(asset, a, twist) {
544
560
  const offset = { x: zero, y: zero, z: zero };
545
561
  /* By its centre, the gap goes into the seat: the point fastened at -- and turned about -- is the part's middle. */
546
562
  translation[axis] = sumOf(m, name, [...planeOf(target.shape, theirFace), ...(byCentre ? [{ ref: gap, k: outward }] : [])], `seat.${axis}`);
547
- const ownFace = byCentre ? (mineAlong && !mineAlong.centred ? [...half(mineAlong.lo), ...half(mineAlong.hi)] : []) : SIGN[a.face] > 0 ? mineAlong.hi : mineAlong.lo;
548
- offset[axis] = byCentre ? (ownFace.length ? sumOf(m, name, neg(ownFace), `along.${axis}`) : zero) : sumOf(m, name, [...neg(ownFace), { ref: gap, k: outward }], `along.${axis}`);
563
+ const ownFace = byCentre ? mineAlong && !mineAlong.centred ? [...half(mineAlong.lo), ...half(mineAlong.hi)] : [] : SIGN[a.face] > 0 ? mineAlong.hi : mineAlong.lo;
564
+ offset[axis] = byCentre ? ownFace.length ? sumOf(m, name, neg(ownFace), `along.${axis}`) : zero : sumOf(m, name, [...neg(ownFace), { ref: gap, k: outward }], `along.${axis}`);
549
565
  /*
550
566
  Across the face. Centred by default; min and max keep the two parts' edges level as either is resized -- and the
551
567
  point fastened at is where those edges meet: the seat on the target's edge, the part's own edge on it. A door
@@ -557,7 +573,7 @@ function attach(asset, a, twist) {
557
573
  const how = a.align?.[other] ?? 'centre';
558
574
  const t = theirs[other], o = mine[other];
559
575
  const middle = (span) => (span && !span.centred ? [...half(span.lo), ...half(span.hi)] : []);
560
- const centreOf = (span, hint) => (middle(span).length ? sumOf(m, name, middle(span), hint) : constantOf(m, 'mm', 0, 'd'));
576
+ const centreOf = (span, hint) => middle(span).length ? sumOf(m, name, middle(span), hint) : constantOf(m, 'mm', 0, 'd');
561
577
  const ownCentre = () => (middle(o).length ? sumOf(m, name, neg(middle(o)), `own-centre.${other}`) : zero);
562
578
  if (how === 'centre') {
563
579
  translation[other] = centreOf(t, `centre.${other}`);
@@ -972,7 +988,7 @@ function authoring(source, action) {
972
988
  if (!input)
973
989
  fail('TARGET_ABSENT', path, `${String(action.input)} is not an input of the figure`);
974
990
  if (input.role === 'state' || /^(sizing\.)?size\.[xyz]$/.test(action.input))
975
- fail('EDIT_TARGET', path, `${action.input} is ${input.role === 'state' ? 'a state input; its range is its joint\'s' : 'the figure\'s size; declare-instance-size sets its range'}`);
991
+ fail('EDIT_TARGET', path, `${action.input} is ${input.role === 'state' ? "a state input; its range is its joint's" : "the figure's size; declare-instance-size sets its range"}`);
976
992
  if (![action.min, action.max].every(Number.isFinite) || !(action.min < action.max))
977
993
  fail('INPUT_RANGE', path, 'a finite range, its least below its most');
978
994
  const value = asset.designInputs[action.input];
@@ -998,6 +1014,12 @@ function authoring(source, action) {
998
1014
  delete asset.publicInputs;
999
1015
  break;
1000
1016
  }
1017
+ case 'set-section-corner':
1018
+ setFigureSectionCorner(asset, action.part, action.corner, (ref, owned) => dropIfUnused(asset, ref, owned));
1019
+ break;
1020
+ case 'set-cavity':
1021
+ setFigureCavity(asset, action.part, action.cavity, (ref, owned) => dropIfUnused(asset, ref, owned));
1022
+ break;
1001
1023
  case 'rename': {
1002
1024
  const name = typeof action.name === 'string' ? action.name.trim() : '';
1003
1025
  if (!name)
@@ -1025,7 +1047,7 @@ function followSize(source, a) {
1025
1047
  const shape = source.document.model.nodes.find((n) => n.id === `${a.part}.shape`);
1026
1048
  if (!shape)
1027
1049
  fail('TARGET_ABSENT', path, `${a.part} is not a part`);
1028
- const along = figureFollowableAxesOf(shape.op);
1050
+ const along = figureFollowableAxesOf(shape);
1029
1051
  if (!along.length)
1030
1052
  fail('EDIT_TARGET', path, `${a.part} is a ${shape.op}; its measures do not lie along X, Y and Z`);
1031
1053
  const axes = a.axes ?? along;
@@ -1041,9 +1063,12 @@ function followSize(source, a) {
1041
1063
  asset = applyFigureAuthoring(asset, { kind: 'declare-instance-size', range, at, replace: AXES.some(axis => sizeInputOf(m, axis)) });
1042
1064
  }
1043
1065
  const values = compileFigureGraph(asset.document.model).evaluate({ ...asset.designInputs, ...asset.stateDefaults }).values;
1044
- const argsNow = (asset.document.model.nodes.find((n) => n.id === `${a.part}.shape`)).args;
1066
+ const shapeNow = asset.document.model.nodes.find((n) => n.id === `${a.part}.shape`);
1067
+ const argsNow = shapeNow.args;
1068
+ const editNow = figureShapeProviderOf(shapeNow)?.edit;
1045
1069
  for (const axis of axes) {
1046
- const measure = values[argsNow[AXES.indexOf(axis)]];
1070
+ const e = editNow?.[axis];
1071
+ const measure = values[argsNow[e && !('refused' in e) ? e.arg : AXES.indexOf(axis)]];
1047
1072
  const size = asset.designInputs[FIGURE_INSTANCE_SIZE_INPUTS[axis]];
1048
1073
  if (!(typeof measure === 'number' && measure > 0 && typeof size === 'number' && size > 0))
1049
1074
  fail('EDIT_TARGET', `${path}.${axis}`, `${a.part}'s ${axis} or the figure's size is not a length to follow`);
@@ -1232,7 +1257,7 @@ function checkJoint(asset, j) {
1232
1257
  if (j.origin?.twist !== undefined && !Number.isFinite(j.origin.twist))
1233
1258
  fail('JOINT_SCHEMA', `${path}.origin.twist`, 'a twist is a number of degrees');
1234
1259
  if (j.origin?.turn && Object.values(j.origin.turn).some(t => !Number.isFinite(t) || Math.abs(t / 90 - Math.round(t / 90)) > 1e-9))
1235
- fail('JOINT_SCHEMA', `${path}.origin.turn`, 'a turn is in quarter turns; an angle about the face\'s normal is its twist');
1260
+ fail('JOINT_SCHEMA', `${path}.origin.turn`, "a turn is in quarter turns; an angle about the face's normal is its twist");
1236
1261
  /*
1237
1262
  A row repeats its part and everything fastened to it (ADR-0093, 2026-09-26): a part fastened to a part in a row is
1238
1263
  on every copy. A row inside a row is a grid; it runs along another axis than the rows around it.
@@ -1248,7 +1273,7 @@ function checkJoint(asset, j) {
1248
1273
  if (j.repeat) {
1249
1274
  const below = (part) => all.filter(o => 'part' in o.body0 && o.body0.part === part).flatMap(o => [o.body1.part, ...below(o.body1.part)]);
1250
1275
  const around = [];
1251
- for (let up = ('part' in j.body0 ? rowAbove(j.body0.part) : undefined); up; up = ('part' in up.body0 ? rowAbove(up.body0.part) : undefined))
1276
+ for (let up = ('part' in j.body0) ? rowAbove(j.body0.part) : undefined; up; up = 'part' in up.body0 ? rowAbove(up.body0.part) : undefined)
1252
1277
  around.push(up);
1253
1278
  const inside = below(j.body1.part).map(p => all.find(o => o.body1.part === p)).filter(o => o.repeat);
1254
1279
  const same = [...around, ...inside].find(o => o.repeat.axis === j.repeat.axis);
@@ -1444,7 +1469,7 @@ function splitTwist(r, axis, asked, path) {
1444
1469
  if (Math.abs(t[k][k] - 1) > 1e-9)
1445
1470
  continue;
1446
1471
  const d = (Math.atan2(t[q][p], t[p][p]) * 180) / Math.PI;
1447
- const off = Math.abs((((d - asked) % 360) + 540) % 360 - 180);
1472
+ const off = Math.abs(((((d - asked) % 360) + 540) % 360) - 180);
1448
1473
  if (!best || off < best.off - 1e-9)
1449
1474
  best = { quarter, deg: Math.abs(d) < 1e-9 ? 0 : d, off };
1450
1475
  }
@@ -1593,17 +1618,19 @@ function gatherRows(asset, joints) {
1593
1618
  */
1594
1619
  function frustumWidthAlong(m, asset, part, axis, path) {
1595
1620
  const { shape } = partOf(m, part, path);
1596
- if (shape.op !== 'frustum-shape@1')
1621
+ /* A taper's two radii, end then start -- read from the node, not assumed. */
1622
+ const taper = shape.op === 'revolve@1' && shape.params?.profile === 'taper' ? { along: shape.params.axis, radii: [shape.args[3], shape.args[2]] } : undefined;
1623
+ if (!taper)
1597
1624
  return undefined;
1598
1625
  const r = quarterTurnOf(m, asset, part, path, true);
1599
1626
  const own = AXES[r[AXES.indexOf(axis)].findIndex(v => v !== 0)];
1600
- if (own === 'y')
1627
+ if (own === taper.along)
1601
1628
  return undefined;
1602
1629
  const id = `${part}.width.${own}`;
1603
1630
  if (!nodeById(m, id)) {
1604
1631
  const zero = constantOf(m, 'mm', 0, 'd');
1605
1632
  const two = constantOf(m, 'ratio', 2, 'k');
1606
- const [top, bottom] = shape.args;
1633
+ const [top, bottom] = taper.radii;
1607
1634
  /* xmin, xmax, ymin, ymax, zmin, zmax: only the one maximum is read; the others hold a zero each. */
1608
1635
  m.nodes.push({
1609
1636
  id,
@@ -1854,7 +1881,7 @@ export function releaseFigurePartJoints(asset, part, options = {}) {
1854
1881
  taken.add(id);
1855
1882
  const start = Math.min(hi, Math.max(lo, follow(Number(now[quantity]))));
1856
1883
  const { mimic: _led, travel: _share, ...alone } = f;
1857
- joints = joints.map(o => (o.id === f.id ? { ...alone, lowerLimit: lo, upperLimit: hi, state: { ...(f.state ?? {}), id, start } } : o));
1884
+ joints = joints.map(o => o.id === f.id ? { ...alone, lowerLimit: lo, upperLimit: hi, state: { ...(f.state ?? {}), id, start } } : o);
1858
1885
  notice.controls.push({ part: f.body1.part, control: id, min: lo, max: hi });
1859
1886
  }
1860
1887
  /* A value in a record that followed the part: the number it is now. */
@@ -2151,7 +2178,7 @@ function fastenAsJoint(asset, a) {
2151
2178
  body1: { part: a.part, face: a.face },
2152
2179
  origin: {
2153
2180
  ...(was?.origin?.turn ? { turn: was.origin.turn } : {}),
2154
- ...(a.twist !== undefined ? (a.twist ? { twist: a.twist } : {}) : was?.origin?.twist ? { twist: was.origin.twist } : {}),
2181
+ ...(a.twist !== undefined ? a.twist ? { twist: a.twist } : {} : was?.origin?.twist ? { twist: was.origin.twist } : {}),
2155
2182
  ...(a.facing ? { facing: a.facing } : {}),
2156
2183
  ...(a.gap !== undefined ? { gap: a.gap } : {}),
2157
2184
  ...(a.align ? { align: a.align } : {})
@@ -2175,7 +2202,7 @@ export function checkFigureJoints(asset) {
2175
2202
  inputs: [...model.inputs].sort((a, b) => (a.id < b.id ? -1 : a.id > b.id ? 1 : 0))
2176
2203
  });
2177
2204
  if (canon(again.document.model) !== canon(asset.document.model))
2178
- fail('JOINT_DRIFT', 'joints', 'the joints\' nodes are not what their records make; the asset was edited apart from its joints');
2205
+ fail('JOINT_DRIFT', 'joints', "the joints' nodes are not what their records make; the asset was edited apart from its joints");
2179
2206
  }
2180
2207
  /** The frame a part is fastened into: its parent's, or the asset's. */
2181
2208
  const attachmentFrameOf = (asset, id) => {
@@ -2385,7 +2412,7 @@ function linThroughSums(m, lin) {
2385
2412
  * left out of its declared room, 2600 and 5200 mm past it (2026-09-25).
2386
2413
  */
2387
2414
  function travelAt(m, asset, motion, bound) {
2388
- const pick = (i) => (bound === 'start' ? (asset.stateDefaults[i.id] ?? i.min) : bound === 'min' ? i.min : i.max);
2415
+ const pick = (i) => bound === 'start' ? (asset.stateDefaults[i.id] ?? i.min) : bound === 'min' ? i.min : i.max;
2389
2416
  const constant = (r) => m.constants.find((c) => c.id === r)?.value;
2390
2417
  const stateOf = (r) => m.inputs.find((i) => i.id === r && i.role === 'state');
2391
2418
  /* A value no control reaches: it is the same at either end, so it stays a term of the sum. */
@@ -2575,7 +2602,7 @@ function sizeValue(m, ref, seen = 0) {
2575
2602
  if (w?.op === 'div@1')
2576
2603
  return sizeValue(m, w.args[0], seen + 1) && positive(w.args[1]);
2577
2604
  if (w?.op === 'mul@1')
2578
- return w.args.length === 2 && ((sizeValue(m, w.args[0], seen + 1) && positive(w.args[1])) || (positive(w.args[0]) && sizeValue(m, w.args[1], seen + 1)));
2605
+ return (w.args.length === 2 && ((sizeValue(m, w.args[0], seen + 1) && positive(w.args[1])) || (positive(w.args[0]) && sizeValue(m, w.args[1], seen + 1))));
2579
2606
  return false;
2580
2607
  }
2581
2608
  /**
@@ -2610,7 +2637,7 @@ function reachOf(m, asset, id, ends, freezeless = true) {
2610
2637
  for (let part = id; part; part = parentOf(m, part))
2611
2638
  chain.push(part);
2612
2639
  /* The topmost part that turns on a joint, or stands turned by an angle a box cannot follow (a fan's blade at 120°). */
2613
- const top = chain.reduce((found, part, i) => (nodeById(m, `${part}.motion`)?.op === 'axis-turn@1' || poseTurnOf(m, asset, part) === 'other' ? i : found), -1);
2640
+ const top = chain.reduce((found, part, i) => nodeById(m, `${part}.motion`)?.op === 'axis-turn@1' || poseTurnOf(m, asset, part) === 'other' ? i : found, -1);
2614
2641
  if (top < 0)
2615
2642
  return `${id} is carried by no turn`;
2616
2643
  let radius = { terms: [], c: 0 };
@@ -3184,10 +3211,15 @@ function nudgePart(asset, a) {
3184
3211
  AXES.forEach((axis, i) => shift(3 + i, a.turn?.[axis] ?? 0, 'deg', 'rotation', axis));
3185
3212
  /* Sizes: the measure's own node carries a factor beside its rule (`stableDimension` routes every measure through one). */
3186
3213
  const shape = partOf(m, a.part, path).shape;
3187
- const measures = shape.op === 'cylinder-shape@1' ? ['x', 'y'] : AXES.filter((_, i) => shape.args[i] !== undefined);
3214
+ const described = figureShapeDescriptionOf(shape);
3215
+ const edits = described?.edit;
3216
+ if (!edits)
3217
+ fail('EDIT_TARGET', path, `${a.part} is a ${shape.op}; it is not a shape with measures`);
3218
+ const measures = AXES.filter(axis => !('refused' in edits[axis]) && !edits[axis].sameAs);
3188
3219
  for (const axis of measures) {
3189
- /* A cylinder's radius answers to the cross axis the drag moved more. */
3190
- const factor = shape.op === 'cylinder-shape@1' && axis === 'x' ? mostChanged(a.grow?.x, a.grow?.z) : a.grow?.[axis];
3220
+ /* A round section's one value answers to the cross axis the drag moved more. */
3221
+ const partner = AXES.find(b => edits[b].sameAs === axis);
3222
+ const factor = partner ? mostChanged(a.grow?.[axis], a.grow?.[partner]) : a.grow?.[axis];
3191
3223
  if (factor === undefined || factor === 1)
3192
3224
  continue;
3193
3225
  if (!(Number.isFinite(factor) && factor > 0))
@@ -3205,6 +3237,16 @@ function nudgePart(asset, a) {
3205
3237
  asset.designInputs[id] = round6(was * factor);
3206
3238
  node.args = [node.args[0], id];
3207
3239
  }
3240
+ /* A taper's other end keeps its proportion: it is scaled by the same factor, through the same input. */
3241
+ const e = edits?.[axis];
3242
+ for (const i of e?.with ?? []) {
3243
+ const own = `${a.part}.dimension.${axis}.with.${i}`;
3244
+ if (!nodeById(m, own)) {
3245
+ const ref = `${own}.value`;
3246
+ m.nodes.push({ id: own, op: 'mul@1', args: [shape.args[i], id], outputs: { value: ref } });
3247
+ shape.args = shape.args.map((r, k) => (k === i ? ref : r));
3248
+ }
3249
+ }
3208
3250
  }
3209
3251
  return asset;
3210
3252
  }
@@ -3341,14 +3383,15 @@ function proportionPlan(asset) {
3341
3383
  const parts = m.nodes.filter((n) => n.op === 'place@1' || (n.op === 'member@1' && nodeById(m, `${n.id}.repeat`))).map((n) => n.id);
3342
3384
  for (const part of parts) {
3343
3385
  const shape = writerOf(m, nodeById(m, part).args[0]);
3344
- const measures = shape?.op === 'box-shape@1' || shape?.op === 'rounded-box@1' ? 3 : shape?.op === 'cylinder-shape@1' ? 2 : 0;
3345
- if (!measures) {
3346
- plan.skipped.push({ what: part, reason: `a ${String(shape?.op ?? 'shape').replace(/-shape@1$|@1$/, '')}'s measures are not linked by this command` });
3386
+ const described = shape && figureShapeDescriptionOf(shape);
3387
+ const along = figureFollowableAxesOf(shape);
3388
+ if (!described || !along.length) {
3389
+ plan.skipped.push({ what: part, reason: `a ${described?.kind ?? String(shape?.op ?? 'shape')}'s measures are not linked by this command` });
3347
3390
  continue;
3348
3391
  }
3349
- for (let i = 0; i < measures; i++) {
3350
- const axis = AXES[i];
3351
- const from = dimensionSource(m, part, axis) ?? shape.args[i];
3392
+ for (const axis of along) {
3393
+ const e = described.edit[axis];
3394
+ const from = dimensionSource(m, part, axis) ?? shape.args[e.arg];
3352
3395
  if (!ownInput(m, part, from)) {
3353
3396
  plan.skipped.push({ what: `${part}.${axis}`, reason: `follows ${describe(from)}`, follows: true });
3354
3397
  continue;
@@ -3392,7 +3435,7 @@ function proportionPlan(asset) {
3392
3435
  if (j.type === 'prismatic' && !j.travel && !j.mimic)
3393
3436
  plan.skipped.push({ what: `${j.id}.motion`, reason: 'a slide in millimetres; make its travel follow the size where the motion is changed' });
3394
3437
  if (j.type === 'prismatic' && j.mimic?.offset)
3395
- plan.skipped.push({ what: `${j.id}.offset`, reason: 'a follower\'s offset in millimetres' });
3438
+ plan.skipped.push({ what: `${j.id}.offset`, reason: "a follower's offset in millimetres" });
3396
3439
  }
3397
3440
  return plan;
3398
3441
  }