@hatiolab/figure-model 0.2.14 → 0.3.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.
- package/dist/authoring-actions.d.ts +68 -25
- package/dist/authoring-actions.d.ts.map +1 -1
- package/dist/authoring-actions.js +331 -71
- package/dist/authoring-actions.js.map +1 -1
- package/dist/cost.d.ts.map +1 -1
- package/dist/cost.js +3 -4
- package/dist/cost.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/joint-list.d.ts +76 -0
- package/dist/joint-list.d.ts.map +1 -0
- package/dist/joint-list.js +259 -0
- package/dist/joint-list.js.map +1 -0
- package/dist/kernel-version.d.ts +1 -1
- package/dist/kernel-version.d.ts.map +1 -1
- package/dist/kernel-version.js +1 -1
- package/dist/kernel-version.js.map +1 -1
- package/dist/proposal.d.ts.map +1 -1
- package/dist/proposal.js +5 -4
- package/dist/proposal.js.map +1 -1
- package/dist/recipe.d.ts +11 -2
- package/dist/recipe.d.ts.map +1 -1
- package/dist/recipe.js +3 -1
- package/dist/recipe.js.map +1 -1
- package/dist/release-contract.d.ts +1 -1
- package/dist/release-contract.d.ts.map +1 -1
- package/dist/release-contract.js +83 -0
- package/dist/release-contract.js.map +1 -1
- package/dist/release-metrics.d.ts +3 -0
- package/dist/release-metrics.d.ts.map +1 -1
- package/dist/release-metrics.js +13 -2
- package/dist/release-metrics.js.map +1 -1
- package/dist/render-batches.d.ts +44 -2
- package/dist/render-batches.d.ts.map +1 -1
- package/dist/render-batches.js +168 -3
- package/dist/render-batches.js.map +1 -1
- package/dist/robots.d.ts +23 -26
- package/dist/robots.d.ts.map +1 -1
- package/dist/robots.js +52 -20
- package/dist/robots.js.map +1 -1
- package/dist/score.d.ts.map +1 -1
- package/dist/score.js +11 -20
- package/dist/score.js.map +1 -1
- package/package.json +2 -1
package/dist/render-batches.js
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
* Copyright © HatioLab Inc. All rights reserved.
|
|
3
3
|
*/
|
|
4
4
|
import { figureMaterialKeyOf } from "./score.js";
|
|
5
|
+
import { compileFigureDocument } from "./document.js";
|
|
6
|
+
import { figureWritersOf } from "./gate.js";
|
|
5
7
|
const signatureOf = (body) => JSON.stringify([body.shape.provider, body.shape.dimensions,
|
|
6
8
|
/* A shape operation's axis, kind and open ends are not in its numbers: two pushes of the same numbers along X and Y differ. */
|
|
7
9
|
body.shape.extrusion
|
|
@@ -15,7 +17,110 @@ const signatureOf = (body) => JSON.stringify([body.shape.provider, body.shape.di
|
|
|
15
17
|
: body.shape.loft
|
|
16
18
|
? [body.shape.loft.axis, 'loft']
|
|
17
19
|
: null, body.segments ?? null, figureMaterialKeyOf(body), body.visible !== false]);
|
|
18
|
-
|
|
20
|
+
/*
|
|
21
|
+
The bodies that stand still: the node that draws a body -- its place, or the row whose copy it is -- puts out nothing
|
|
22
|
+
that depends on a state input (\`dependence\`), and no visibility flag shows or hides it. Decided by the kernel's
|
|
23
|
+
dependence, never by a part's name or a joint record (merging still parts, design 2026-10-03, principle 2).
|
|
24
|
+
*/
|
|
25
|
+
export function figureStillBodiesOf(asset, geometry, dependence) {
|
|
26
|
+
return figureStillJudgeOf(asset, dependence)(geometry);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The same judgement made once for an asset and asked of many evaluations: what reads the asset (its nodes, writers and
|
|
30
|
+
* flags) is read here, once, so a renderer that asks again whenever its bodies change pays only for the bodies.
|
|
31
|
+
*/
|
|
32
|
+
export function figureStillJudgeOf(asset, dependence) {
|
|
33
|
+
const moves = figureBodyMovesOf(asset, dependence);
|
|
34
|
+
const writers = figureWritersOf(asset);
|
|
35
|
+
const flagged = new Set(asset.appearance.filter(look => look.visibility !== undefined).map(look => look.target));
|
|
36
|
+
return geometry => {
|
|
37
|
+
const still = new Set();
|
|
38
|
+
for (const body of geometry) {
|
|
39
|
+
if (!('pose' in body) || moves(body))
|
|
40
|
+
continue;
|
|
41
|
+
const target = body.key ? writers.get(body.key) : body.id;
|
|
42
|
+
if (target !== undefined && flagged.has(target))
|
|
43
|
+
continue;
|
|
44
|
+
still.add(body.id);
|
|
45
|
+
}
|
|
46
|
+
return still;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/*
|
|
50
|
+
Whether a drawn body moves with a state input -- the one judgement the still parts and the grade's moving parts are
|
|
51
|
+
both made by (ADR-0109). Every node that places the body is asked: the node that draws it (its place, or the row whose
|
|
52
|
+
copy it is) and, for a copy, the member it copies. A copy moves when its row is carried by a joint, and also when the
|
|
53
|
+
member moves inside a row that stands. A body whose node is not found is said to move: an unknown is never merged.
|
|
54
|
+
*/
|
|
55
|
+
export function figureBodyMovesOf(asset, dependence) {
|
|
56
|
+
const depends = dependence ?? compileFigureDocument(asset.document).dependence;
|
|
57
|
+
const nodes = new Map(asset.document.model.nodes.map(node => [node.id, node]));
|
|
58
|
+
const writers = figureWritersOf(asset);
|
|
59
|
+
const nodeMoves = (id) => {
|
|
60
|
+
const node = id === undefined ? undefined : nodes.get(id);
|
|
61
|
+
return !node || Object.values(node.outputs).some(ref => (depends[ref]?.length ?? 0) > 0);
|
|
62
|
+
};
|
|
63
|
+
return body => {
|
|
64
|
+
const { key, path } = body;
|
|
65
|
+
if (nodeMoves(typeof path?.[0] === 'string' ? path[0] : body.id))
|
|
66
|
+
return true;
|
|
67
|
+
return key ? nodeMoves(writers.get(key)) : false;
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/*
|
|
71
|
+
What carries a moving body (ADR-0111). A body drawn alone is placed by \`place@1(shape, pose)\`; its pose is a chain of
|
|
72
|
+
\`compose@1(a, b)\`. While \`b\` depends on no state input -- transitively, by the compiled \`dependence\`, so a joint that
|
|
73
|
+
follows another by mimic stops the walk -- the body keeps its pose relative to \`a\`, and the walk goes up to \`a\`. Where
|
|
74
|
+
it stops is the carrier: bodies with one carrier move as one. Proven from the graph, never sampled.
|
|
75
|
+
*/
|
|
76
|
+
export function figureCarrierJudgeOf(asset, dependence) {
|
|
77
|
+
const depends = dependence ?? compileFigureDocument(asset.document).dependence;
|
|
78
|
+
const nodes = new Map(asset.document.model.nodes.map(node => [node.id, node]));
|
|
79
|
+
const writers = new Map();
|
|
80
|
+
for (const node of asset.document.model.nodes)
|
|
81
|
+
for (const ref of Object.values(node.outputs))
|
|
82
|
+
writers.set(ref, node);
|
|
83
|
+
const flagged = new Set(asset.appearance.filter(look => look.visibility !== undefined).map(look => look.target));
|
|
84
|
+
const moving = (ref) => typeof ref === 'string' && (depends[ref]?.length ?? 0) > 0;
|
|
85
|
+
const carriers = new Map();
|
|
86
|
+
const carrierOf = (ref) => {
|
|
87
|
+
const known = carriers.get(ref);
|
|
88
|
+
if (known !== undefined)
|
|
89
|
+
return known;
|
|
90
|
+
const node = writers.get(ref);
|
|
91
|
+
const found = node?.op === 'compose@1' && typeof node.args[0] === 'string' && !moving(node.args[1]) ? carrierOf(node.args[0]) : ref;
|
|
92
|
+
carriers.set(ref, found);
|
|
93
|
+
return found;
|
|
94
|
+
};
|
|
95
|
+
return geometry => {
|
|
96
|
+
const carried = new Map();
|
|
97
|
+
for (const body of geometry) {
|
|
98
|
+
if (!('pose' in body) || body.key || flagged.has(body.id))
|
|
99
|
+
continue;
|
|
100
|
+
const place = nodes.get(body.id);
|
|
101
|
+
const pose = place?.op === 'place@1' ? place.args[1] : undefined;
|
|
102
|
+
/* A shape a state input reaches is not baked: it would be drawn as it was when the mesh was made. */
|
|
103
|
+
if (typeof pose !== 'string' || !moving(pose) || moving(place.args[0]))
|
|
104
|
+
continue;
|
|
105
|
+
carried.set(body.id, carrierOf(pose));
|
|
106
|
+
}
|
|
107
|
+
return carried;
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* How the renderer draws these bodies of this asset: row copies batched, still parts merged by look (ADR-0109), moving
|
|
112
|
+
* parts carried by one pose merged by look (ADR-0111). The one plan the grade, the cost and the release metrics count
|
|
113
|
+
* draws by.
|
|
114
|
+
*/
|
|
115
|
+
export function figureDrawPlanOf(asset, drawn) {
|
|
116
|
+
const dependence = compileFigureDocument(asset.document).dependence;
|
|
117
|
+
return figureRenderBatchesOf(drawn, { still: figureStillBodiesOf(asset, drawn, dependence), carried: figureCarrierJudgeOf(asset, dependence)(drawn) });
|
|
118
|
+
}
|
|
119
|
+
/** The draws a plan makes: a batch, a merged group, a carried group and a body drawn alone are one each. */
|
|
120
|
+
export const figureDrawsOf = (plan) => plan.batches.length + plan.merged.length + plan.carried.length + plan.alone.length;
|
|
121
|
+
/** What must be equal for still bodies to be one mesh: the look as drawn, and whether it is shown. */
|
|
122
|
+
const mergeKeyOf = (body) => `${figureMaterialKeyOf(body)}|${body.visible !== false ? 'shown' : 'hidden'}`;
|
|
123
|
+
export function figureRenderBatchesOf(geometry, options = {}) {
|
|
19
124
|
const alone = [];
|
|
20
125
|
const members = new Map();
|
|
21
126
|
for (const body of geometry) {
|
|
@@ -36,7 +141,11 @@ export function figureRenderBatchesOf(geometry) {
|
|
|
36
141
|
const bySignature = new Map();
|
|
37
142
|
for (const body of bodies) {
|
|
38
143
|
const signature = signatureOf(body);
|
|
39
|
-
|
|
144
|
+
const same = bySignature.get(signature);
|
|
145
|
+
if (same)
|
|
146
|
+
same.push(body.id);
|
|
147
|
+
else
|
|
148
|
+
bySignature.set(signature, [body.id]);
|
|
40
149
|
}
|
|
41
150
|
for (const [signature, ids] of bySignature) {
|
|
42
151
|
if (ids.length > 1) {
|
|
@@ -47,6 +156,62 @@ export function figureRenderBatchesOf(geometry) {
|
|
|
47
156
|
unbatched.push({ member, ids, reason: bodies.length === 1 ? 'one-copy' : 'copies-differ' });
|
|
48
157
|
}
|
|
49
158
|
}
|
|
50
|
-
|
|
159
|
+
/*
|
|
160
|
+
Still bodies drawn alone, of one render state, merge -- two or more; a lone one stays alone. A transparent body never
|
|
161
|
+
merges: its sorting is per part, and a merged lump would sort as one.
|
|
162
|
+
*/
|
|
163
|
+
const merged = [];
|
|
164
|
+
if (options.still?.size) {
|
|
165
|
+
const byId = new Map(geometry.map(body => [body.id, body]));
|
|
166
|
+
const groups = new Map();
|
|
167
|
+
for (const id of alone) {
|
|
168
|
+
const body = byId.get(id);
|
|
169
|
+
if (!body || !options.still.has(id) || body.material.transparent)
|
|
170
|
+
continue;
|
|
171
|
+
const key = mergeKeyOf(body);
|
|
172
|
+
const same = groups.get(key);
|
|
173
|
+
if (same)
|
|
174
|
+
same.push(id);
|
|
175
|
+
else
|
|
176
|
+
groups.set(key, [id]);
|
|
177
|
+
}
|
|
178
|
+
const taken = new Set();
|
|
179
|
+
for (const [key, ids] of groups) {
|
|
180
|
+
if (ids.length < 2)
|
|
181
|
+
continue;
|
|
182
|
+
merged.push({ key, ids });
|
|
183
|
+
ids.forEach(id => taken.add(id));
|
|
184
|
+
}
|
|
185
|
+
if (taken.size)
|
|
186
|
+
alone.splice(0, alone.length, ...alone.filter(id => !taken.has(id)));
|
|
187
|
+
}
|
|
188
|
+
/* Moving bodies drawn alone, of one carrier and one render state, merge the same way: two or more, never transparent. */
|
|
189
|
+
const carried = [];
|
|
190
|
+
if (options.carried?.size) {
|
|
191
|
+
const byId = new Map(geometry.map(body => [body.id, body]));
|
|
192
|
+
const groups = new Map();
|
|
193
|
+
for (const id of alone) {
|
|
194
|
+
const body = byId.get(id);
|
|
195
|
+
const carrier = options.carried.get(id);
|
|
196
|
+
if (!body || carrier === undefined || options.still?.has(id) || body.material.transparent)
|
|
197
|
+
continue;
|
|
198
|
+
const key = `${carrier}|${mergeKeyOf(body)}`;
|
|
199
|
+
const same = groups.get(key);
|
|
200
|
+
if (same)
|
|
201
|
+
same.ids.push(id);
|
|
202
|
+
else
|
|
203
|
+
groups.set(key, { carrier, ids: [id] });
|
|
204
|
+
}
|
|
205
|
+
const taken = new Set();
|
|
206
|
+
for (const [key, { carrier, ids }] of groups) {
|
|
207
|
+
if (ids.length < 2)
|
|
208
|
+
continue;
|
|
209
|
+
carried.push({ key, carrier, ids });
|
|
210
|
+
ids.forEach(id => taken.add(id));
|
|
211
|
+
}
|
|
212
|
+
if (taken.size)
|
|
213
|
+
alone.splice(0, alone.length, ...alone.filter(id => !taken.has(id)));
|
|
214
|
+
}
|
|
215
|
+
return { batches, merged, carried, alone, unbatched };
|
|
51
216
|
}
|
|
52
217
|
//# sourceMappingURL=render-batches.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-batches.js","sourceRoot":"","sources":["../src/render-batches.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"render-batches.js","sourceRoot":"","sources":["../src/render-batches.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAiD3C,MAAM,WAAW,GAAG,CAAC,IAA+F,EAAU,EAAE,CAC9H,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;IACxD,+HAA+H;IAE7H,IAAI,CAAC,KAKN,CAAC,SAAS;QACT,CAAC,CAAC;YACG,IAAI,CAAC,KAAiB,CAAC,SAAS,CAAC,IAAI;YACrC,IAAI,CAAC,KAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI;YAC7C,IAAI,CAAC,KAAiB,CAAC,MAAM,IAAI,IAAI;SACvC;QACH,CAAC,CAAE,IAAI,CAAC,KAAiB,CAAC,UAAU;YAClC,CAAC,CAAC,CAAE,IAAI,CAAC,KAAiB,CAAC,UAAU,CAAC,IAAI,EAAG,IAAI,CAAC,KAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;YAC5F,CAAC,CAAE,IAAI,CAAC,KAAiB,CAAC,IAAI;gBAC5B,CAAC,CAAC,CAAE,IAAI,CAAC,KAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;gBAC7C,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAA;AAE5F;;;;EAIE;AACF,MAAM,UAAU,mBAAmB,CAAC,KAAkB,EAAE,QAAwC,EAAE,UAAqC;IACrI,OAAO,kBAAkB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAA;AACxD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAkB,EAAE,UAAqC;IAC1F,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;IAClD,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;IACtC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IAChH,OAAO,QAAQ,CAAC,EAAE;QAChB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;QAC/B,KAAK,MAAM,IAAI,IAAI,QAAiE,EAAE,CAAC;YACrF,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;gBAAE,SAAQ;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAA;YACzD,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,SAAQ;YACzD,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACpB,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;AACH,CAAC;AAED;;;;;EAKE;AACF,MAAM,UAAU,iBAAiB,CAAC,KAAkB,EAAE,UAAqC;IACzF,MAAM,OAAO,GAAG,UAAU,IAAI,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAA;IAC9E,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAC9E,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAA;IACtC,MAAM,SAAS,GAAG,CAAC,EAAsB,EAAE,EAAE;QAC3C,MAAM,IAAI,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACzD,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;IAC1F,CAAC,CAAA;IACD,OAAO,IAAI,CAAC,EAAE;QACZ,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAgE,CAAA;QACtF,IAAI,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,IAAI,CAAC,CAAC,CAAY,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,OAAO,IAAI,CAAA;QACzF,OAAO,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IAClD,CAAC,CAAA;AACH,CAAC;AAED;;;;;EAKE;AACF,MAAM,UAAU,oBAAoB,CAAC,KAAkB,EAAE,UAAqC;IAC5F,MAAM,OAAO,GAAG,UAAU,IAAI,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAA;IAC9E,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAC9E,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuD,CAAA;IAC9E,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK;QAAE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACpH,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IAChH,MAAM,MAAM,GAAG,CAAC,GAAY,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;IAC3F,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC1C,MAAM,SAAS,GAAG,CAAC,GAAW,EAAU,EAAE;QACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAA;QACrC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC7B,MAAM,KAAK,GAAG,IAAI,EAAE,EAAE,KAAK,WAAW,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;QACnI,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACxB,OAAO,KAAK,CAAA;IACd,CAAC,CAAA;IACD,OAAO,QAAQ,CAAC,EAAE;QAChB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAA;QACzC,KAAK,MAAM,IAAI,IAAI,QAAiE,EAAE,CAAC;YACrF,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAAE,SAAQ;YACnE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAChC,MAAM,IAAI,GAAG,KAAK,EAAE,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAChE,qGAAqG;YACrG,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,KAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAE,SAAQ;YACjF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;QACvC,CAAC;QACD,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAkB,EAAE,KAAqC;IACxF,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAA;IACnE,OAAO,qBAAqB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;AACxJ,CAAC;AAED,4GAA4G;AAC5G,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAsB,EAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;AAEnJ,sGAAsG;AACtG,MAAM,UAAU,GAAG,CAAC,IAAyB,EAAU,EAAE,CAAC,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAA;AAEvI,MAAM,UAAU,qBAAqB,CACnC,QAAwC,EACxC,UAAkF,EAAE;IAEpF,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAA;IAC3C,KAAK,MAAM,IAAI,IAAI,QAA6B,EAAE,CAAC;QACjD,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC;YAAE,SAAQ;QAC/B,MAAM,GAAG,GAAG,KAAK,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAA;QAChF,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACnB,SAAQ;QACV,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QACnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACf,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACxB,CAAC;IACD,MAAM,OAAO,GAAwB,EAAE,CAAA;IACvC,MAAM,SAAS,GAAkC,EAAE,CAAA;IACnD,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAoB,CAAA;QAC/C,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;YACnC,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YACvC,IAAI,IAAI;gBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;;gBACvB,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;QAC5C,CAAC;QACD,KAAK,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC;YAC3C,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;gBAC5D,SAAQ;YACV,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAA;YAClB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAA;QAC7F,CAAC;IACH,CAAC;IACD;;;MAGE;IACF,MAAM,MAAM,GAAwB,EAAE,CAAA;IACtC,IAAI,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;QAC3D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAA;QAC1C,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACzB,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW;gBAAE,SAAQ;YAC1E,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAA;YAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAC5B,IAAI,IAAI;gBAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;;gBAClB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC5B,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;QAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;YAChC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAQ;YAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;YACzB,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QAClC,CAAC;QACD,IAAI,KAAK,CAAC,IAAI;YAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACtF,CAAC;IACD,yHAAyH;IACzH,MAAM,OAAO,GAAyB,EAAE,CAAA;IACxC,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;QAC3D,MAAM,MAAM,GAAG,IAAI,GAAG,EAA8C,CAAA;QACpE,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACzB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACvC,IAAI,CAAC,IAAI,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW;gBAAE,SAAQ;YACnG,MAAM,GAAG,GAAG,GAAG,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAA;YAC5C,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAC5B,IAAI,IAAI;gBAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;;gBACtB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QAC9C,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;QAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;YAC7C,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAQ;YAC5B,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;YACnC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QAClC,CAAC;QACD,IAAI,KAAK,CAAC,IAAI;YAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACtF,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAA;AACvD,CAAC"}
|
package/dist/robots.d.ts
CHANGED
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { type FigurePrimitiveCreation } from './create.ts';
|
|
2
2
|
import type { FigureAsset } from './asset-types.ts';
|
|
3
|
+
import { type FigureListedJoint } from './joint-list.ts';
|
|
3
4
|
type Part = FigurePrimitiveCreation;
|
|
4
|
-
/** A
|
|
5
|
-
export interface
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
axis: 'X' | 'Y' | 'Z';
|
|
9
|
-
/** Degrees or millimetres; absent on a revolute joint that turns without end (a wheel). */
|
|
10
|
-
min?: number;
|
|
11
|
-
max?: number;
|
|
5
|
+
/** A built robot and its joint list, as a controller reads it from a release. */
|
|
6
|
+
export interface RobotFigure {
|
|
7
|
+
asset: FigureAsset;
|
|
8
|
+
joints: FigureListedJoint[];
|
|
12
9
|
}
|
|
13
10
|
/** Front left, front right, hind left, hind right: which end of the body (X) and which side (Z) each leg hangs at. */
|
|
14
11
|
export declare const QUADRUPED_LEGS: readonly [{
|
|
@@ -31,17 +28,19 @@ export declare const QUADRUPED_LEGS: readonly [{
|
|
|
31
28
|
/**
|
|
32
29
|
* A four-legged walking robot: a body standing on four legs, each leg three joints -- the hip swinging the leg out
|
|
33
30
|
* (about the body's length), the thigh swinging it fore and aft, the knee bending the shin. A sensor head on the front.
|
|
34
|
-
* The body stands as high as a straight leg is long
|
|
31
|
+
* The body stands as high as a straight leg is long -- the sum of the front left leg's hip, thigh, shin and foot, so it
|
|
32
|
+
* keeps standing on the floor when a leg's parts are made longer (ADR-0107 decision 2); the legs hang straight at rest.
|
|
33
|
+
* Every knee bends the same way.
|
|
35
34
|
*/
|
|
36
|
-
export declare function quadrupedRobotFigure():
|
|
37
|
-
asset: FigureAsset;
|
|
38
|
-
joints: RobotJoint[];
|
|
39
|
-
};
|
|
35
|
+
export declare function quadrupedRobotFigure(): RobotFigure;
|
|
40
36
|
/** A collaborative arm's links from its base up; a joint joins each moving link to the one below. */
|
|
41
37
|
export declare const COBOT_CHAIN: {
|
|
42
38
|
part: Part;
|
|
43
|
-
joint?:
|
|
39
|
+
joint?: {
|
|
44
40
|
id: string;
|
|
41
|
+
axis: 'X' | 'Y' | 'Z';
|
|
42
|
+
min: number;
|
|
43
|
+
max: number;
|
|
45
44
|
};
|
|
46
45
|
}[];
|
|
47
46
|
/**
|
|
@@ -49,27 +48,25 @@ export declare const COBOT_CHAIN: {
|
|
|
49
48
|
* its front, the arm's base on its top at the rear. Each drive wheel turns without end on its own value; the arm is
|
|
50
49
|
* the collaborative arm chain with a two-finger gripper.
|
|
51
50
|
*/
|
|
52
|
-
export declare function mobileManipulatorFigure():
|
|
53
|
-
asset: FigureAsset;
|
|
54
|
-
joints: RobotJoint[];
|
|
55
|
-
};
|
|
51
|
+
export declare function mobileManipulatorFigure(): RobotFigure;
|
|
56
52
|
/**
|
|
57
53
|
* A SCARA: a column on the floor; the first arm turning about the column (J1), the second turning at the first arm's
|
|
58
54
|
* end (J2), both in the horizontal plane; at the second arm's end a quill sliding down (J3) and its tool turning (J4).
|
|
59
55
|
* Each arm turns on a hub at its pivot, so the arm reaches out from the axis it turns about.
|
|
60
56
|
*/
|
|
61
|
-
export declare function scaraRobotFigure():
|
|
62
|
-
asset: FigureAsset;
|
|
63
|
-
joints: RobotJoint[];
|
|
64
|
-
};
|
|
57
|
+
export declare function scaraRobotFigure(): RobotFigure;
|
|
65
58
|
/**
|
|
66
59
|
* A humanoid: a pelvis standing on two legs (hip roll, hip pitch, knee, ankle), a torso turning on it at the waist, a
|
|
67
60
|
* head on a neck, and two arms (shoulder pitch at the torso's side, shoulder roll, elbow) with a hand each. It faces +X;
|
|
68
61
|
* its left is -Z. The pelvis stands as high as a straight leg is long.
|
|
69
62
|
*/
|
|
70
|
-
export declare function humanoidRobotFigure():
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
63
|
+
export declare function humanoidRobotFigure(): RobotFigure;
|
|
64
|
+
/**
|
|
65
|
+
* A palletizer: a base on the floor, a turret turning on it (J1), an upper arm swinging on the turret (J2), and at its
|
|
66
|
+
* top an elbow (J3) carrying the forearm out level. Under the forearm's far end the wrist turns by -(J2 + J3) -- a sum
|
|
67
|
+
* mimic, with no control of its own (ADR-0107 decision 2) -- so the tool flange under it stays level in every pose, as
|
|
68
|
+
* a palletizer's parallel link keeps it; the flange turns the tool about the vertical (J4).
|
|
69
|
+
*/
|
|
70
|
+
export declare function palletizerRobotFigure(): RobotFigure;
|
|
74
71
|
export {};
|
|
75
72
|
//# sourceMappingURL=robots.d.ts.map
|
package/dist/robots.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"robots.d.ts","sourceRoot":"","sources":["../src/robots.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"robots.d.ts","sourceRoot":"","sources":["../src/robots.ts"],"names":[],"mappings":"AAQA,OAAO,EAAyC,KAAK,uBAAuB,EAAE,MAAM,aAAa,CAAA;AACjG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAExE,KAAK,IAAI,GAAG,uBAAuB,CAAA;AAUnC,iFAAiF;AACjF,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,WAAW,CAAA;IAClB,MAAM,EAAE,iBAAiB,EAAE,CAAA;CAC5B;AAgCD,sHAAsH;AACtH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;EAKjB,CAAA;AAMV;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,WAAW,CA6BlD;AAID,qGAAqG;AACrG,eAAO,MAAM,WAAW,EAAE;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EAWhH,CAAA;AAmBD;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,WAAW,CAiCrD;AAMD;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,WAAW,CAoB9C;AAMD;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,WAAW,CA6BjD;AAMD;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,WAAW,CA0BnD"}
|
package/dist/robots.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* Industrial robots authored with the commands the modeller and the AI share: a four-legged walking robot, a mobile
|
|
3
|
-
* manipulator (an autonomous mobile robot carrying a six-axis arm) and a
|
|
3
|
+
* manipulator (an autonomous mobile robot carrying a six-axis arm), a SCARA, a humanoid and a palletizer. Each is its links joined at joints --
|
|
4
4
|
* the one relation a robot needs -- and every size is the part's own number. A joint's state input is what a robot
|
|
5
|
-
* controller drives: one value per joint, in degrees or millimetres, named after the joint.
|
|
5
|
+
* controller drives: one value per joint, in degrees or millimetres, named after the joint. What a controller reads
|
|
6
|
+
* about the joints is the figure's joint list (`figureJointsOf`), measured from the built figure.
|
|
6
7
|
*/
|
|
7
8
|
import { applyFigureAuthoring, proposeFigureOccupancy } from "./authoring-actions.js";
|
|
8
9
|
import { addFigurePrimitive, createFigureAsset } from "./create.js";
|
|
10
|
+
import { figureJointsOf } from "./joint-list.js";
|
|
9
11
|
const at = { x: 0, y: 0, z: 0 };
|
|
10
12
|
const metal = (token) => ({ token, preset: 'metal' });
|
|
11
13
|
const box = (id, width, height, depth, token) => ({ id, kind: 'box', dimensions: { width, height, depth }, position: at, material: metal(token) });
|
|
@@ -14,7 +16,6 @@ const cylinder = (id, radius, length, token) => ({ id, kind: 'cylinder', dimensi
|
|
|
14
16
|
/** A small builder over the shared commands: each call is one command, as a person's step would be. */
|
|
15
17
|
class Robot {
|
|
16
18
|
asset;
|
|
17
|
-
joints = [];
|
|
18
19
|
constructor(name, palette) {
|
|
19
20
|
this.asset = createFigureAsset(name);
|
|
20
21
|
this.asset.palette = palette;
|
|
@@ -29,20 +30,12 @@ class Robot {
|
|
|
29
30
|
return this;
|
|
30
31
|
}
|
|
31
32
|
joint(joint) {
|
|
32
|
-
this.do({ kind: 'set-joint', joint });
|
|
33
|
-
if (joint.type !== 'fixed' && !joint.mimic)
|
|
34
|
-
this.joints.push({
|
|
35
|
-
id: joint.id,
|
|
36
|
-
type: joint.type,
|
|
37
|
-
axis: joint.axis,
|
|
38
|
-
...(joint.lowerLimit !== undefined ? { min: joint.lowerLimit, max: joint.upperLimit } : {})
|
|
39
|
-
});
|
|
40
|
-
return this;
|
|
33
|
+
return this.do({ kind: 'set-joint', joint });
|
|
41
34
|
}
|
|
42
35
|
finish(level) {
|
|
43
36
|
this.do({ kind: 'set-detail-level', level });
|
|
44
37
|
this.do({ kind: 'declare-occupancy', proposal: proposeFigureOccupancy(this.asset, { over: 'range' }), placement: 'floor' });
|
|
45
|
-
return this.asset;
|
|
38
|
+
return { asset: this.asset, joints: figureJointsOf(this.asset).joints };
|
|
46
39
|
}
|
|
47
40
|
}
|
|
48
41
|
const hang = (parent, child, parentFace = 'top') => ({ body0: { part: parent, face: parentFace }, body1: { part: child, face: parentFace === 'top' ? 'bottom' : 'top' } });
|
|
@@ -60,7 +53,9 @@ const QUADRUPED_LEG = { hip: 80, hipRadius: 55, thigh: 340, shin: 340, foot: 40
|
|
|
60
53
|
/**
|
|
61
54
|
* A four-legged walking robot: a body standing on four legs, each leg three joints -- the hip swinging the leg out
|
|
62
55
|
* (about the body's length), the thigh swinging it fore and aft, the knee bending the shin. A sensor head on the front.
|
|
63
|
-
* The body stands as high as a straight leg is long
|
|
56
|
+
* The body stands as high as a straight leg is long -- the sum of the front left leg's hip, thigh, shin and foot, so it
|
|
57
|
+
* keeps standing on the floor when a leg's parts are made longer (ADR-0107 decision 2); the legs hang straight at rest.
|
|
58
|
+
* Every knee bends the same way.
|
|
64
59
|
*/
|
|
65
60
|
export function quadrupedRobotFigure() {
|
|
66
61
|
const r = new Robot('4족 보행 로봇', {
|
|
@@ -72,10 +67,12 @@ export function quadrupedRobotFigure() {
|
|
|
72
67
|
const { hip, hipRadius, thigh, shin, foot } = QUADRUPED_LEG;
|
|
73
68
|
const body = QUADRUPED_BODY;
|
|
74
69
|
r.add(rounded('body', body.length, body.height, body.width, 40, 'palette.body'), box('head', 120, 140, 260, 'palette.sensor'));
|
|
75
|
-
|
|
70
|
+
for (const { leg } of QUADRUPED_LEGS)
|
|
71
|
+
r.add(cylinder(`${leg}-hip`, hipRadius, hip, 'palette.joint'), box(`${leg}-thigh`, 80, thigh, 70, 'palette.dark'), box(`${leg}-shin`, 50, shin, 50, 'palette.dark'), cylinder(`${leg}-foot`, 38, foot, 'palette.sensor'));
|
|
72
|
+
const standing = ['hip', 'thigh', 'shin', 'foot'].map(p => ({ from: { of: 'part', part: `fl-${p}`, axis: 'y' } }));
|
|
73
|
+
r.joint({ id: 'body', type: 'fixed', body0: { plane: 'mounting-plane' }, body1: { part: 'body', face: 'bottom' }, origin: { gap: { sum: standing } } });
|
|
76
74
|
r.joint({ id: 'head', type: 'fixed', body0: { part: 'body', face: 'right' }, body1: { part: 'head', face: 'left' } });
|
|
77
75
|
for (const { leg, x, z } of QUADRUPED_LEGS) {
|
|
78
|
-
r.add(cylinder(`${leg}-hip`, hipRadius, hip, 'palette.joint'), box(`${leg}-thigh`, 80, thigh, 70, 'palette.dark'), box(`${leg}-shin`, 50, shin, 50, 'palette.dark'), cylinder(`${leg}-foot`, 38, foot, 'palette.sensor'));
|
|
79
76
|
/* At the body's corner, measured from its middle: a joint placed by an edge would turn about that edge (a hinge). */
|
|
80
77
|
const corner = { x: { mm: x * (body.length / 2 - hipRadius) }, z: { mm: z * (body.width / 2 - hipRadius) } };
|
|
81
78
|
r.joint({ id: `${leg}-hip`, type: 'revolute', ...hang('body', `${leg}-hip`, 'bottom'), origin: { align: corner }, axis: 'X', lowerLimit: -30, upperLimit: 30 });
|
|
@@ -83,7 +80,7 @@ export function quadrupedRobotFigure() {
|
|
|
83
80
|
r.joint({ id: `${leg}-knee`, type: 'revolute', ...hang(`${leg}-thigh`, `${leg}-shin`, 'bottom'), axis: 'Z', lowerLimit: 0, upperLimit: 150 });
|
|
84
81
|
r.joint({ id: `${leg}-foot`, type: 'fixed', ...hang(`${leg}-shin`, `${leg}-foot`, 'bottom') });
|
|
85
82
|
}
|
|
86
|
-
return
|
|
83
|
+
return r.finish('XL');
|
|
87
84
|
}
|
|
88
85
|
/* ---------------------------------------------------------------- six-axis arm, as a chain on any face */
|
|
89
86
|
/** A collaborative arm's links from its base up; a joint joins each moving link to the one below. */
|
|
@@ -152,7 +149,7 @@ export function mobileManipulatorFigure() {
|
|
|
152
149
|
r.add(cylinder('scanner', 50, 70, 'palette.sensor'));
|
|
153
150
|
r.joint({ id: 'scanner', type: 'fixed', ...hang('chassis', 'scanner'), origin: { align: { x: 'max' } } });
|
|
154
151
|
addArm(r, { part: 'chassis', align: { x: { mm: -length / 4 } } });
|
|
155
|
-
return
|
|
152
|
+
return r.finish('XL');
|
|
156
153
|
}
|
|
157
154
|
/* ---------------------------------------------------------------- SCARA */
|
|
158
155
|
const SCARA = { column: 420, reach1: 400, reach2: 350, quill: 380, stroke: 200 };
|
|
@@ -180,7 +177,7 @@ export function scaraRobotFigure() {
|
|
|
180
177
|
r.add(cylinder('quill', 25, quill, 'palette.dark'), cylinder('tool-flange', 45, 30, 'palette.joint'));
|
|
181
178
|
r.joint({ id: 'j3', type: 'prismatic', ...hang('arm-2', 'quill', 'bottom'), origin: { align: { x: { mm: reach2 / 2 } }, gap: -quill / 2 }, axis: 'Y', lowerLimit: -stroke, upperLimit: 0 });
|
|
182
179
|
r.joint({ id: 'j4', type: 'revolute', ...hang('quill', 'tool-flange', 'bottom'), axis: 'Y', lowerLimit: -360, upperLimit: 360 });
|
|
183
|
-
return
|
|
180
|
+
return r.finish('M');
|
|
184
181
|
}
|
|
185
182
|
/* ---------------------------------------------------------------- humanoid */
|
|
186
183
|
const HUMANOID = { pelvis: 340, torso: 480, hip: 60, hipWidth: 110, thigh: 420, shin: 400, foot: 60, shoulder: 120 };
|
|
@@ -217,6 +214,41 @@ export function humanoidRobotFigure() {
|
|
|
217
214
|
r.joint({ id: `${side}-elbow`, type: 'revolute', ...hang(`${side}-upper-arm`, `${side}-forearm`, 'bottom'), axis: 'Z', lowerLimit: 0, upperLimit: 140 });
|
|
218
215
|
r.joint({ id: `${side}-hand`, type: 'fixed', ...hang(`${side}-forearm`, `${side}-hand`, 'bottom') });
|
|
219
216
|
}
|
|
220
|
-
return
|
|
217
|
+
return r.finish('XL');
|
|
218
|
+
}
|
|
219
|
+
/* ---------------------------------------------------------------- palletizer */
|
|
220
|
+
const PALLETIZER = { base: 180, turret: 220, upper: 1000, elbow: 180, reach: 1100, wrist: 160, flange: 40 };
|
|
221
|
+
/**
|
|
222
|
+
* A palletizer: a base on the floor, a turret turning on it (J1), an upper arm swinging on the turret (J2), and at its
|
|
223
|
+
* top an elbow (J3) carrying the forearm out level. Under the forearm's far end the wrist turns by -(J2 + J3) -- a sum
|
|
224
|
+
* mimic, with no control of its own (ADR-0107 decision 2) -- so the tool flange under it stays level in every pose, as
|
|
225
|
+
* a palletizer's parallel link keeps it; the flange turns the tool about the vertical (J4).
|
|
226
|
+
*/
|
|
227
|
+
export function palletizerRobotFigure() {
|
|
228
|
+
const r = new Robot('팔레타이징 로봇', {
|
|
229
|
+
'palette.body': '#e8b100',
|
|
230
|
+
'palette.joint': '#2b2f33',
|
|
231
|
+
'palette.tool': '#5b636b'
|
|
232
|
+
});
|
|
233
|
+
const { base, turret, upper, elbow, reach, wrist, flange } = PALLETIZER;
|
|
234
|
+
r.add(cylinder('base', 220, base, 'palette.joint'), cylinder('turret', 180, turret, 'palette.body'), box('upper-arm', 170, upper, 170, 'palette.body'), box('elbow', elbow, elbow, elbow, 'palette.joint'), box('forearm', reach, 150, 150, 'palette.body'));
|
|
235
|
+
r.joint({ id: 'base', type: 'fixed', body0: { plane: 'mounting-plane' }, body1: { part: 'base', face: 'bottom' } });
|
|
236
|
+
r.joint({ id: 'j1', type: 'revolute', ...hang('base', 'turret'), axis: 'Y', lowerLimit: -180, upperLimit: 180 });
|
|
237
|
+
r.joint({ id: 'j2', type: 'revolute', ...hang('turret', 'upper-arm'), axis: 'Z', lowerLimit: -45, upperLimit: 60 });
|
|
238
|
+
r.joint({ id: 'j3', type: 'revolute', ...hang('upper-arm', 'elbow'), axis: 'Z', lowerLimit: -60, upperLimit: 30 });
|
|
239
|
+
/* The forearm reaches out level from the elbow's side. */
|
|
240
|
+
r.joint({ id: 'forearm', type: 'fixed', body0: { part: 'elbow', face: 'right' }, body1: { part: 'forearm', face: 'left' } });
|
|
241
|
+
r.add(box('wrist', wrist, wrist, wrist, 'palette.joint'), cylinder('flange', 80, flange, 'palette.joint'), box('tool', 600, 60, 400, 'palette.tool'));
|
|
242
|
+
r.joint({
|
|
243
|
+
id: 'wrist',
|
|
244
|
+
type: 'revolute',
|
|
245
|
+
...hang('forearm', 'wrist', 'bottom'),
|
|
246
|
+
origin: { align: { x: { mm: reach / 2 - wrist / 2 } } },
|
|
247
|
+
axis: 'Z',
|
|
248
|
+
mimic: { sum: [{ joint: 'j2', multiplier: -1 }, { joint: 'j3', multiplier: -1 }] }
|
|
249
|
+
});
|
|
250
|
+
r.joint({ id: 'j4', type: 'revolute', ...hang('wrist', 'flange', 'bottom'), axis: 'Y', lowerLimit: -360, upperLimit: 360 });
|
|
251
|
+
r.joint({ id: 'tool', type: 'fixed', ...hang('flange', 'tool', 'bottom') });
|
|
252
|
+
return r.finish('M');
|
|
221
253
|
}
|
|
222
254
|
//# sourceMappingURL=robots.js.map
|
package/dist/robots.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"robots.js","sourceRoot":"","sources":["../src/robots.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"robots.js","sourceRoot":"","sources":["../src/robots.ts"],"names":[],"mappings":"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"}
|
package/dist/score.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/score.js
CHANGED
|
@@ -20,10 +20,8 @@
|
|
|
20
20
|
*/
|
|
21
21
|
import { LIMITS, PART_LIMIT } from "./words.js";
|
|
22
22
|
import { compileFigureAsset } from "./asset.js";
|
|
23
|
-
import { compileFigureDocument } from "./document.js";
|
|
24
|
-
import { figureWritersOf } from "./gate.js";
|
|
25
23
|
import { figureTrianglesOf } from "./cost.js";
|
|
26
|
-
import {
|
|
24
|
+
import { figureBodyMovesOf, figureDrawPlanOf, figureDrawsOf } from "./render-batches.js";
|
|
27
25
|
/** Every budget, in the order a screen draws them. */
|
|
28
26
|
export const FIGURE_BUDGET_KEYS = ['groups', 'triangles', 'independent', 'moving', 'transparent', 'parts'];
|
|
29
27
|
/**
|
|
@@ -68,19 +66,9 @@ export function figureMaterialKeyOf(body) {
|
|
|
68
66
|
* A visibility flag is not a placement, so a lamp that only switches on does not count.
|
|
69
67
|
*/
|
|
70
68
|
export function figureIndependentBodiesOf(asset, drawn) {
|
|
71
|
-
const moves =
|
|
69
|
+
const moves = figureBodyMovesOf(asset);
|
|
72
70
|
return drawn.filter(moves).length;
|
|
73
71
|
}
|
|
74
|
-
/** Whether a drawn body moves with a state input: the value that places it depends on one. */
|
|
75
|
-
function movingOf(asset) {
|
|
76
|
-
const plan = compileFigureDocument(asset.document);
|
|
77
|
-
const writers = figureWritersOf(asset);
|
|
78
|
-
const nodes = new Map(asset.document.model.nodes.map(node => [node.id, node]));
|
|
79
|
-
return body => {
|
|
80
|
-
const node = nodes.get(('key' in body && body.key ? writers.get(body.key) : body.id) ?? '');
|
|
81
|
-
return !!node && Object.values(node.outputs).some(ref => (plan.dependence[ref]?.length ?? 0) > 0);
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
72
|
/**
|
|
85
73
|
* The grade of one asset, evaluated at its own design and state defaults as `figureCostOf` is. Nothing when no body is
|
|
86
74
|
* drawn: there is nothing to grade, and a grade of A would say otherwise.
|
|
@@ -94,15 +82,18 @@ export function figureScoreOf(asset) {
|
|
|
94
82
|
const triangles = drawn.reduce((sum, body) => sum + figureTrianglesOf(body), 0);
|
|
95
83
|
const transparent = new Set(drawn.filter(body => body.material.transparent).map(figureMaterialKeyOf)).size;
|
|
96
84
|
/*
|
|
97
|
-
As the renderer draws them (
|
|
98
|
-
batch of a row's copies and per body drawn alone; what moves on its own counted once a batch; and every body that
|
|
85
|
+
As the renderer draws them (figureDrawPlanOf, the rule it draws by -- ADR-0087 amended 2026-09-26, ADR-0109): a draw group per
|
|
86
|
+
batch of a row's copies, per still group merged by look and per body drawn alone; a merged group never moves; what moves on its own counted once a batch; and every body that
|
|
99
87
|
moves re-evaluated and moved each frame.
|
|
100
88
|
*/
|
|
101
|
-
const moves =
|
|
102
|
-
const plan =
|
|
89
|
+
const moves = figureBodyMovesOf(asset);
|
|
90
|
+
const plan = figureDrawPlanOf(asset, drawn);
|
|
103
91
|
const byId = new Map(drawn.map(body => [body.id, body]));
|
|
104
|
-
const groups = plan
|
|
105
|
-
|
|
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). */
|
|
94
|
+
const independent = plan.batches.filter(b => b.ids.some(id => moves(byId.get(id)))).length +
|
|
95
|
+
plan.alone.filter(id => moves(byId.get(id))).length +
|
|
96
|
+
plan.carried.reduce((sum, group) => sum + group.ids.length, 0);
|
|
106
97
|
const moving = drawn.filter(moves).length;
|
|
107
98
|
const budget = (key, used, limit) => ({ key, used, limit, ratio: used / limit });
|
|
108
99
|
const budgets = [
|