@appinternalleads/ui 0.4.1 → 0.4.2
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/README.md +92 -0
- package/dist/cjs/motion/typesurface/TypeSurfaceCanvas.js +25 -2
- package/dist/cjs/motion/typesurface/TypeSurfaceCanvas.js.map +1 -1
- package/dist/cjs/motion/typesurface/config.js +21 -1
- package/dist/cjs/motion/typesurface/config.js.map +1 -1
- package/dist/cjs/motion/typesurface/construct.js +875 -0
- package/dist/cjs/motion/typesurface/construct.js.map +1 -0
- package/dist/cjs/motion/typesurface/engine.js +28 -4
- package/dist/cjs/motion/typesurface/engine.js.map +1 -1
- package/dist/cjs/motion/typesurface/index.js +9 -1
- package/dist/cjs/motion/typesurface/index.js.map +1 -1
- package/dist/cjs/motion/typesurface/presets.js +69 -2
- package/dist/cjs/motion/typesurface/presets.js.map +1 -1
- package/dist/cjs/motion/typesurface/renderer.js +81 -15
- package/dist/cjs/motion/typesurface/renderer.js.map +1 -1
- package/dist/cjs/motion/typesurface/shaders.js +23 -1
- package/dist/cjs/motion/typesurface/shaders.js.map +1 -1
- package/dist/cjs/motion/typesurface/surfaces.js +69 -0
- package/dist/cjs/motion/typesurface/surfaces.js.map +1 -1
- package/dist/esm/motion/typesurface/TypeSurfaceCanvas.d.ts +11 -1
- package/dist/esm/motion/typesurface/TypeSurfaceCanvas.d.ts.map +1 -1
- package/dist/esm/motion/typesurface/TypeSurfaceCanvas.js +25 -2
- package/dist/esm/motion/typesurface/TypeSurfaceCanvas.js.map +1 -1
- package/dist/esm/motion/typesurface/config.d.ts +13 -2
- package/dist/esm/motion/typesurface/config.d.ts.map +1 -1
- package/dist/esm/motion/typesurface/config.js +21 -1
- package/dist/esm/motion/typesurface/config.js.map +1 -1
- package/dist/esm/motion/typesurface/construct.d.ts +284 -0
- package/dist/esm/motion/typesurface/construct.d.ts.map +1 -0
- package/dist/esm/motion/typesurface/construct.js +866 -0
- package/dist/esm/motion/typesurface/construct.js.map +1 -0
- package/dist/esm/motion/typesurface/engine.d.ts +8 -0
- package/dist/esm/motion/typesurface/engine.d.ts.map +1 -1
- package/dist/esm/motion/typesurface/engine.js +28 -4
- package/dist/esm/motion/typesurface/engine.js.map +1 -1
- package/dist/esm/motion/typesurface/index.d.ts +7 -3
- package/dist/esm/motion/typesurface/index.d.ts.map +1 -1
- package/dist/esm/motion/typesurface/index.js +6 -2
- package/dist/esm/motion/typesurface/index.js.map +1 -1
- package/dist/esm/motion/typesurface/presets.d.ts +18 -0
- package/dist/esm/motion/typesurface/presets.d.ts.map +1 -1
- package/dist/esm/motion/typesurface/presets.js +68 -3
- package/dist/esm/motion/typesurface/presets.js.map +1 -1
- package/dist/esm/motion/typesurface/renderer.d.ts +10 -0
- package/dist/esm/motion/typesurface/renderer.d.ts.map +1 -1
- package/dist/esm/motion/typesurface/renderer.js +82 -16
- package/dist/esm/motion/typesurface/renderer.js.map +1 -1
- package/dist/esm/motion/typesurface/shaders.d.ts +1 -1
- package/dist/esm/motion/typesurface/shaders.d.ts.map +1 -1
- package/dist/esm/motion/typesurface/shaders.js +23 -1
- package/dist/esm/motion/typesurface/shaders.js.map +1 -1
- package/dist/esm/motion/typesurface/surfaces.d.ts +28 -1
- package/dist/esm/motion/typesurface/surfaces.d.ts.map +1 -1
- package/dist/esm/motion/typesurface/surfaces.js +67 -0
- package/dist/esm/motion/typesurface/surfaces.js.map +1 -1
- package/docs/TYPE-SURFACE.md +183 -0
- package/package.json +4 -2
- package/src/motion/typesurface/TypeSurfaceCanvas.tsx +30 -2
- package/src/motion/typesurface/config.ts +29 -3
- package/src/motion/typesurface/construct.ts +828 -0
- package/src/motion/typesurface/engine.ts +31 -5
- package/src/motion/typesurface/index.ts +7 -3
- package/src/motion/typesurface/presets.ts +75 -3
- package/src/motion/typesurface/renderer.ts +77 -17
- package/src/motion/typesurface/shaders.ts +23 -1
- package/src/motion/typesurface/surfaces.ts +78 -1
- package/tools/ask/dist/components.mjs +1138 -57
- package/tools/ask/dist/neon.js +69 -0
- package/tools/ask/mcp.mjs +90 -5
- package/tools/ask/neon-render.mjs +143 -0
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* **The construction layer** — objects built from parts, not a catalogue of finished objects.
|
|
3
|
+
*
|
|
4
|
+
* primitives cylinder, sphere, ring, revolve (any profile), tube (along a path), box
|
|
5
|
+
* manipulators taper, flare, bulge, twist, bend, scale: applied to a part, in order
|
|
6
|
+
* materials plastic, matte, ceramic, glass, metal, chrome, in any colour
|
|
7
|
+
* text wraps one round part: printed straight onto it, or on a paper label
|
|
8
|
+
* recipes tumbler, mug, can, bottle: compositions of the above, nothing they alone can do
|
|
9
|
+
*
|
|
10
|
+
* An object is JSON (`TSObjectSpec`) and lives in the config as `object`, so what an agent builds
|
|
11
|
+
* is a preset it can save and edit later. `describeConstruction()` is the machine-readable
|
|
12
|
+
* manifest: every primitive, what can be done to it, and every parameter with its range, so an
|
|
13
|
+
* agent composes a tumbler (cylinder + taper + ring) without one having been written for it.
|
|
14
|
+
* `sanitizeObject` reads the same manifest: it never throws and always returns something drawable.
|
|
15
|
+
*
|
|
16
|
+
* Frame: y is up and is the object's axis; x is to the right of the camera, z toward it. Units are
|
|
17
|
+
* the lab's world units (the wine bottle's body is 0.36 in radius); the camera frames whatever is
|
|
18
|
+
* built. Pure; no DOM, no React.
|
|
19
|
+
*/
|
|
20
|
+
import { type Vec3 } from './ops';
|
|
21
|
+
export type TSParam = {
|
|
22
|
+
type: 'number';
|
|
23
|
+
min: number;
|
|
24
|
+
max: number;
|
|
25
|
+
default: number;
|
|
26
|
+
unit?: string;
|
|
27
|
+
hint: string;
|
|
28
|
+
} | {
|
|
29
|
+
type: 'boolean';
|
|
30
|
+
default: boolean;
|
|
31
|
+
hint: string;
|
|
32
|
+
} | {
|
|
33
|
+
type: 'enum';
|
|
34
|
+
options: readonly string[];
|
|
35
|
+
default: string;
|
|
36
|
+
hint: string;
|
|
37
|
+
}
|
|
38
|
+
/** A list of points: `dims` numbers each, at least `min` of them. */
|
|
39
|
+
| {
|
|
40
|
+
type: 'points';
|
|
41
|
+
dims: 2 | 3;
|
|
42
|
+
min: number;
|
|
43
|
+
max: number;
|
|
44
|
+
hint: string;
|
|
45
|
+
};
|
|
46
|
+
export declare const TS_MANIPULATOR_IDS: readonly ["taper", "flare", "bulge", "twist", "bend", "scale"];
|
|
47
|
+
export type TSManipulatorId = (typeof TS_MANIPULATOR_IDS)[number];
|
|
48
|
+
/** What can be done to a part. Each acts in the part's own frame, before it is turned and placed. */
|
|
49
|
+
export declare const TS_MANIPULATORS: Record<TSManipulatorId, {
|
|
50
|
+
summary: string;
|
|
51
|
+
keepsRound: boolean;
|
|
52
|
+
params: Record<string, TSParam>;
|
|
53
|
+
}>;
|
|
54
|
+
export declare const TS_PRIMITIVE_IDS: readonly ["cylinder", "sphere", "ring", "revolve", "tube", "box"];
|
|
55
|
+
export type TSPrimitiveId = (typeof TS_PRIMITIVE_IDS)[number];
|
|
56
|
+
/** A manipulator a primitive accepts, plus `material` (every part) and `text-wrap` (it can carry the text). */
|
|
57
|
+
export type TSCapability = TSManipulatorId | 'material' | 'text-wrap';
|
|
58
|
+
/** What an object is built from. `origin` says where `at` puts the part. */
|
|
59
|
+
export declare const TS_PRIMITIVES: Record<TSPrimitiveId, {
|
|
60
|
+
summary: string;
|
|
61
|
+
origin: 'base' | 'centre' | 'path';
|
|
62
|
+
capabilities: readonly TSCapability[];
|
|
63
|
+
params: Record<string, TSParam>;
|
|
64
|
+
}>;
|
|
65
|
+
export declare const TS_OBJECT_MATERIAL_IDS: readonly ["plastic", "matte", "ceramic", "glass", "metal", "chrome"];
|
|
66
|
+
export type TSObjectMaterialId = (typeof TS_OBJECT_MATERIAL_IDS)[number];
|
|
67
|
+
/** How a part shades. `metalness` tints the reflection with the colour; `reflection` is how much of the studio it shows. */
|
|
68
|
+
export declare const TS_OBJECT_MATERIALS: Record<TSObjectMaterialId, {
|
|
69
|
+
summary: string;
|
|
70
|
+
metalness: number;
|
|
71
|
+
roughness: number;
|
|
72
|
+
reflection: number;
|
|
73
|
+
gain: number;
|
|
74
|
+
}>;
|
|
75
|
+
export declare const TS_OBJECT_TABLES: readonly ["studio", "desk", "wood"];
|
|
76
|
+
export type TSOp = {
|
|
77
|
+
op: TSManipulatorId;
|
|
78
|
+
} & Record<string, number | string>;
|
|
79
|
+
export type TSPartMaterial = {
|
|
80
|
+
type: TSObjectMaterialId;
|
|
81
|
+
color: string;
|
|
82
|
+
/** Override the material's own roughness / metalness, 0–1. */
|
|
83
|
+
roughness?: number;
|
|
84
|
+
metalness?: number;
|
|
85
|
+
};
|
|
86
|
+
export type TSPart = {
|
|
87
|
+
/** Unique within the object; `text.on` names one. */
|
|
88
|
+
id: string;
|
|
89
|
+
shape: TSPrimitiveId;
|
|
90
|
+
/** The primitive's parameters (`TS_PRIMITIVES[shape].params`); anything omitted takes its default. */
|
|
91
|
+
params: Record<string, unknown>;
|
|
92
|
+
/** Manipulators, applied in order. */
|
|
93
|
+
ops: TSOp[];
|
|
94
|
+
material: TSPartMaterial;
|
|
95
|
+
/** Where the part goes, in the object's frame. */
|
|
96
|
+
at: [number, number, number];
|
|
97
|
+
/** Degrees about x, then y, then z. */
|
|
98
|
+
rotate: [number, number, number];
|
|
99
|
+
};
|
|
100
|
+
export type TSObjectText = {
|
|
101
|
+
/** The part the text wraps. It must be round, on the axis and unturned. */
|
|
102
|
+
on: string;
|
|
103
|
+
/** Centre of the text area along the part's height, 0 bottom – 1 top. */
|
|
104
|
+
y: number;
|
|
105
|
+
/** Height of the text area, as a share of the part's height. */
|
|
106
|
+
height: number;
|
|
107
|
+
/** How far round the part the text area reaches, degrees (360 goes all the way). */
|
|
108
|
+
arc: number;
|
|
109
|
+
/** A paper label in this colour; null prints straight onto the part. */
|
|
110
|
+
label: string | null;
|
|
111
|
+
};
|
|
112
|
+
export type TSObjectSpec = {
|
|
113
|
+
name: string;
|
|
114
|
+
parts: TSPart[];
|
|
115
|
+
text: TSObjectText;
|
|
116
|
+
scene: {
|
|
117
|
+
table: (typeof TS_OBJECT_TABLES)[number];
|
|
118
|
+
backdrop: [string, string];
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
export declare const TS_OBJECT_TEXT_PARAMS: Record<'y' | 'height' | 'arc', TSParam>;
|
|
122
|
+
export declare const MAX_OBJECT_PARTS = 24;
|
|
123
|
+
/** How much of a round part's circumference reads from the front, degrees: text wider than this runs out of sight. */
|
|
124
|
+
export declare const OBJECT_FRONT_ARC = 110;
|
|
125
|
+
export type TSObjectError = {
|
|
126
|
+
path: string;
|
|
127
|
+
message: string;
|
|
128
|
+
};
|
|
129
|
+
/**
|
|
130
|
+
* A spec that always builds: every bad field is replaced (numbers are clamped, the rest take their
|
|
131
|
+
* default, parts and manipulators that make no sense are dropped) and named in `errors`. Returns
|
|
132
|
+
* `object: null` only when nothing in it can be drawn.
|
|
133
|
+
*/
|
|
134
|
+
export declare function sanitizeObject(input: unknown, base?: string): {
|
|
135
|
+
object: TSObjectSpec | null;
|
|
136
|
+
errors: TSObjectError[];
|
|
137
|
+
};
|
|
138
|
+
/** `[]` when the spec is drawable as written; otherwise every problem as `{ path, message }`. Never throws. */
|
|
139
|
+
export declare function validateObject(spec: unknown, base?: string): TSObjectError[];
|
|
140
|
+
export type ResolvedMaterial = {
|
|
141
|
+
color: string;
|
|
142
|
+
metalness: number;
|
|
143
|
+
roughness: number;
|
|
144
|
+
reflection: number;
|
|
145
|
+
gain: number;
|
|
146
|
+
};
|
|
147
|
+
/** One part's triangles in the object's index buffer, and how they shade. */
|
|
148
|
+
export type PartRange = {
|
|
149
|
+
id: string;
|
|
150
|
+
start: number;
|
|
151
|
+
count: number;
|
|
152
|
+
material: ResolvedMaterial;
|
|
153
|
+
};
|
|
154
|
+
export type BuiltObject = {
|
|
155
|
+
positions: Float32Array;
|
|
156
|
+
normals: Float32Array;
|
|
157
|
+
indices: Uint32Array;
|
|
158
|
+
count: number;
|
|
159
|
+
ranges: PartRange[];
|
|
160
|
+
bounds: {
|
|
161
|
+
min: Vec3;
|
|
162
|
+
max: Vec3;
|
|
163
|
+
};
|
|
164
|
+
/** The part that carries the text: its extent along y and its outer radius at any height. */
|
|
165
|
+
host: {
|
|
166
|
+
id: string;
|
|
167
|
+
y0: number;
|
|
168
|
+
y1: number;
|
|
169
|
+
radiusAt: (y: number) => number;
|
|
170
|
+
color: string;
|
|
171
|
+
};
|
|
172
|
+
};
|
|
173
|
+
export declare function resolveMaterial(m: TSPartMaterial): ResolvedMaterial;
|
|
174
|
+
/**
|
|
175
|
+
* Build a spec into one mesh in the object's frame: every part through its manipulators, turned and
|
|
176
|
+
* placed, with smooth normals and a triangle range per part. The spec is repaired first (omitted
|
|
177
|
+
* parameters take their defaults); it throws only when nothing in it can be drawn.
|
|
178
|
+
*/
|
|
179
|
+
export declare function buildObject(input: TSObjectSpec): BuiltObject;
|
|
180
|
+
export type TSRecipeOptions = {
|
|
181
|
+
color?: string;
|
|
182
|
+
material?: TSObjectMaterialId;
|
|
183
|
+
accent?: string;
|
|
184
|
+
label?: string | null;
|
|
185
|
+
};
|
|
186
|
+
/**
|
|
187
|
+
* Semantic starting points. A recipe is only a composition of the primitives and manipulators above,
|
|
188
|
+
* returned as a plain spec to edit: nothing here is special-cased anywhere else, so an object with
|
|
189
|
+
* no recipe is built the same way, part by part.
|
|
190
|
+
*/
|
|
191
|
+
export declare const TS_RECIPES: Record<string, {
|
|
192
|
+
summary: string;
|
|
193
|
+
composition: string;
|
|
194
|
+
build: (o?: TSRecipeOptions) => TSObjectSpec;
|
|
195
|
+
}>;
|
|
196
|
+
/** A recipe's spec, ready to edit; unknown names fall back to a plain cylinder so something always draws. */
|
|
197
|
+
export declare function createObject(recipe: string, options?: TSRecipeOptions): TSObjectSpec;
|
|
198
|
+
/**
|
|
199
|
+
* Everything an agent needs to compose an object, as JSON: the primitives and what each can take,
|
|
200
|
+
* the manipulators, the materials, how text attaches, the recipes and what cannot be done.
|
|
201
|
+
*/
|
|
202
|
+
export declare function describeConstruction(): {
|
|
203
|
+
frame: string;
|
|
204
|
+
part: {
|
|
205
|
+
shape: string;
|
|
206
|
+
origin: {
|
|
207
|
+
base: string;
|
|
208
|
+
centre: string;
|
|
209
|
+
path: string;
|
|
210
|
+
};
|
|
211
|
+
};
|
|
212
|
+
primitives: Record<"box" | "ring" | "tube" | "cylinder" | "sphere" | "revolve", {
|
|
213
|
+
summary: string;
|
|
214
|
+
origin: "base" | "centre" | "path";
|
|
215
|
+
capabilities: readonly TSCapability[];
|
|
216
|
+
params: Record<string, TSParam>;
|
|
217
|
+
}>;
|
|
218
|
+
manipulators: Record<"scale" | "taper" | "flare" | "bulge" | "twist" | "bend", {
|
|
219
|
+
summary: string;
|
|
220
|
+
keepsRound: boolean;
|
|
221
|
+
params: Record<string, TSParam>;
|
|
222
|
+
}>;
|
|
223
|
+
materials: Record<"glass" | "plastic" | "matte" | "ceramic" | "metal" | "chrome", {
|
|
224
|
+
summary: string;
|
|
225
|
+
metalness: number;
|
|
226
|
+
roughness: number;
|
|
227
|
+
reflection: number;
|
|
228
|
+
gain: number;
|
|
229
|
+
}>;
|
|
230
|
+
text: {
|
|
231
|
+
summary: string;
|
|
232
|
+
params: Record<"y" | "height" | "arc", TSParam>;
|
|
233
|
+
label: string;
|
|
234
|
+
carriers: ("box" | "ring" | "tube" | "cylinder" | "sphere" | "revolve")[];
|
|
235
|
+
sizing: {
|
|
236
|
+
unit: string;
|
|
237
|
+
frontArc: number;
|
|
238
|
+
rule: string;
|
|
239
|
+
helper: string;
|
|
240
|
+
};
|
|
241
|
+
rules: string[];
|
|
242
|
+
};
|
|
243
|
+
scene: {
|
|
244
|
+
table: readonly ["studio", "desk", "wood"];
|
|
245
|
+
backdrop: string;
|
|
246
|
+
};
|
|
247
|
+
view: {
|
|
248
|
+
summary: string;
|
|
249
|
+
states: {
|
|
250
|
+
wrapped: string;
|
|
251
|
+
lying: string;
|
|
252
|
+
turned: string;
|
|
253
|
+
tipped: string;
|
|
254
|
+
};
|
|
255
|
+
apply: string;
|
|
256
|
+
controls: {
|
|
257
|
+
'deformation.tiltX': string;
|
|
258
|
+
'deformation.tiltY': string;
|
|
259
|
+
'view.roll': string;
|
|
260
|
+
'view.zoom': string;
|
|
261
|
+
};
|
|
262
|
+
avoid: string;
|
|
263
|
+
};
|
|
264
|
+
recipes: {
|
|
265
|
+
[k: string]: {
|
|
266
|
+
summary: string;
|
|
267
|
+
composition: string;
|
|
268
|
+
defaults: {
|
|
269
|
+
color: string;
|
|
270
|
+
material: "glass" | "plastic" | "matte" | "ceramic" | "metal" | "chrome";
|
|
271
|
+
label: null;
|
|
272
|
+
};
|
|
273
|
+
options: {
|
|
274
|
+
color: string;
|
|
275
|
+
material: string;
|
|
276
|
+
accent: string;
|
|
277
|
+
label: string;
|
|
278
|
+
};
|
|
279
|
+
use: string;
|
|
280
|
+
};
|
|
281
|
+
};
|
|
282
|
+
limits: string[];
|
|
283
|
+
};
|
|
284
|
+
//# sourceMappingURL=construct.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"construct.d.ts","sourceRoot":"","sources":["../../../../src/motion/typesurface/construct.ts"],"names":[],"mappings":"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"}
|