@aura3d/workflows 1.0.6

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 (101) hide show
  1. package/dist/AnimationLabWorkflow.d.ts +3 -0
  2. package/dist/AnimationLabWorkflow.d.ts.map +1 -0
  3. package/dist/AnimationLabWorkflow.js +156 -0
  4. package/dist/AnimationLabWorkflow.js.map +1 -0
  5. package/dist/AssetViewerWorkflow.d.ts +3 -0
  6. package/dist/AssetViewerWorkflow.d.ts.map +1 -0
  7. package/dist/AssetViewerWorkflow.js +35 -0
  8. package/dist/AssetViewerWorkflow.js.map +1 -0
  9. package/dist/ComparisonWorkflow.d.ts +3 -0
  10. package/dist/ComparisonWorkflow.d.ts.map +1 -0
  11. package/dist/ComparisonWorkflow.js +67 -0
  12. package/dist/ComparisonWorkflow.js.map +1 -0
  13. package/dist/InteractiveSceneWorkflow.d.ts +3 -0
  14. package/dist/InteractiveSceneWorkflow.d.ts.map +1 -0
  15. package/dist/InteractiveSceneWorkflow.js +43 -0
  16. package/dist/InteractiveSceneWorkflow.js.map +1 -0
  17. package/dist/MaterialStudioWorkflow.d.ts +3 -0
  18. package/dist/MaterialStudioWorkflow.d.ts.map +1 -0
  19. package/dist/MaterialStudioWorkflow.js +47 -0
  20. package/dist/MaterialStudioWorkflow.js.map +1 -0
  21. package/dist/ProductConfiguratorWorkflow.d.ts +3 -0
  22. package/dist/ProductConfiguratorWorkflow.d.ts.map +1 -0
  23. package/dist/ProductConfiguratorWorkflow.js +25 -0
  24. package/dist/ProductConfiguratorWorkflow.js.map +1 -0
  25. package/dist/SceneShowcaseWorkflow.d.ts +3 -0
  26. package/dist/SceneShowcaseWorkflow.d.ts.map +1 -0
  27. package/dist/SceneShowcaseWorkflow.js +44 -0
  28. package/dist/SceneShowcaseWorkflow.js.map +1 -0
  29. package/dist/WorkflowDiagnostics.d.ts +11 -0
  30. package/dist/WorkflowDiagnostics.d.ts.map +1 -0
  31. package/dist/WorkflowDiagnostics.js +34 -0
  32. package/dist/WorkflowDiagnostics.js.map +1 -0
  33. package/dist/WorkflowTypes.d.ts +90 -0
  34. package/dist/WorkflowTypes.d.ts.map +1 -0
  35. package/dist/WorkflowTypes.js +2 -0
  36. package/dist/WorkflowTypes.js.map +1 -0
  37. package/dist/index.d.ts +13 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +11 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/production-runtime/ArchitectureWorkflow.d.ts +7 -0
  42. package/dist/production-runtime/ArchitectureWorkflow.d.ts.map +1 -0
  43. package/dist/production-runtime/ArchitectureWorkflow.js +2 -0
  44. package/dist/production-runtime/ArchitectureWorkflow.js.map +1 -0
  45. package/dist/production-runtime/AssetInspectionWorkflow.d.ts +7 -0
  46. package/dist/production-runtime/AssetInspectionWorkflow.d.ts.map +1 -0
  47. package/dist/production-runtime/AssetInspectionWorkflow.js +2 -0
  48. package/dist/production-runtime/AssetInspectionWorkflow.js.map +1 -0
  49. package/dist/production-runtime/CinematicWorkflow.d.ts +7 -0
  50. package/dist/production-runtime/CinematicWorkflow.d.ts.map +1 -0
  51. package/dist/production-runtime/CinematicWorkflow.js +2 -0
  52. package/dist/production-runtime/CinematicWorkflow.js.map +1 -0
  53. package/dist/production-runtime/MaterialAuthoringWorkflow.d.ts +7 -0
  54. package/dist/production-runtime/MaterialAuthoringWorkflow.d.ts.map +1 -0
  55. package/dist/production-runtime/MaterialAuthoringWorkflow.js +2 -0
  56. package/dist/production-runtime/MaterialAuthoringWorkflow.js.map +1 -0
  57. package/dist/production-runtime/ProductRenderWorkflow.d.ts +7 -0
  58. package/dist/production-runtime/ProductRenderWorkflow.d.ts.map +1 -0
  59. package/dist/production-runtime/ProductRenderWorkflow.js +2 -0
  60. package/dist/production-runtime/ProductRenderWorkflow.js.map +1 -0
  61. package/dist/production-runtime/ProductionExampleRuntime.d.ts +66 -0
  62. package/dist/production-runtime/ProductionExampleRuntime.d.ts.map +1 -0
  63. package/dist/production-runtime/ProductionExampleRuntime.js +189 -0
  64. package/dist/production-runtime/ProductionExampleRuntime.js.map +1 -0
  65. package/dist/production-runtime/ProductionWorkflows.d.ts +69 -0
  66. package/dist/production-runtime/ProductionWorkflows.d.ts.map +1 -0
  67. package/dist/production-runtime/ProductionWorkflows.js +128 -0
  68. package/dist/production-runtime/ProductionWorkflows.js.map +1 -0
  69. package/dist/production-runtime/WorkflowDiagnostics.d.ts +7 -0
  70. package/dist/production-runtime/WorkflowDiagnostics.d.ts.map +1 -0
  71. package/dist/production-runtime/WorkflowDiagnostics.js +2 -0
  72. package/dist/production-runtime/WorkflowDiagnostics.js.map +1 -0
  73. package/dist/production-runtime/index.d.ts +11 -0
  74. package/dist/production-runtime/index.d.ts.map +1 -0
  75. package/dist/production-runtime/index.js +9 -0
  76. package/dist/production-runtime/index.js.map +1 -0
  77. package/dist/workflow-foundation/index.d.ts +26 -0
  78. package/dist/workflow-foundation/index.d.ts.map +1 -0
  79. package/dist/workflow-foundation/index.js +25 -0
  80. package/dist/workflow-foundation/index.js.map +1 -0
  81. package/package.json +22 -0
  82. package/src/AnimationLabWorkflow.ts +165 -0
  83. package/src/AssetViewerWorkflow.ts +37 -0
  84. package/src/ComparisonWorkflow.ts +68 -0
  85. package/src/InteractiveSceneWorkflow.ts +44 -0
  86. package/src/MaterialStudioWorkflow.ts +48 -0
  87. package/src/ProductConfiguratorWorkflow.ts +32 -0
  88. package/src/SceneShowcaseWorkflow.ts +45 -0
  89. package/src/WorkflowDiagnostics.ts +47 -0
  90. package/src/WorkflowTypes.ts +113 -0
  91. package/src/index.ts +34 -0
  92. package/src/production-runtime/ArchitectureWorkflow.ts +2 -0
  93. package/src/production-runtime/AssetInspectionWorkflow.ts +2 -0
  94. package/src/production-runtime/CinematicWorkflow.ts +2 -0
  95. package/src/production-runtime/MaterialAuthoringWorkflow.ts +2 -0
  96. package/src/production-runtime/ProductRenderWorkflow.ts +2 -0
  97. package/src/production-runtime/ProductionExampleRuntime.ts +267 -0
  98. package/src/production-runtime/ProductionWorkflows.ts +203 -0
  99. package/src/production-runtime/WorkflowDiagnostics.ts +2 -0
  100. package/src/production-runtime/index.ts +32 -0
  101. package/src/workflow-foundation/index.ts +27 -0
@@ -0,0 +1,3 @@
1
+ import type { AnimationLabWorkflowOptions, AnimationLabWorkflowResult } from "./WorkflowTypes";
2
+ export declare function createAnimationLabWorkflow(options?: AnimationLabWorkflowOptions): AnimationLabWorkflowResult;
3
+ //# sourceMappingURL=AnimationLabWorkflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimationLabWorkflow.d.ts","sourceRoot":"","sources":["../../../../packages/workflows/src/AnimationLabWorkflow.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAI/F,wBAAgB,0BAA0B,CAAC,OAAO,GAAE,2BAAgC,GAAG,0BAA0B,CAuFhH"}
@@ -0,0 +1,156 @@
1
+ import { AnimationClip, AnimationTrack } from "@aura3d/animation";
2
+ import { composeMat4 } from "@aura3d/scene";
3
+ import { Geometry, PBRMaterial, createLightingDefault } from "@aura3d/rendering";
4
+ import { createWorkflowDiagnostics } from "./WorkflowDiagnostics.js";
5
+ export function createAnimationLabWorkflow(options = {}) {
6
+ const speed = Number.isFinite(options.speed) && options.speed !== undefined && options.speed > 0 ? options.speed : 1;
7
+ const clips = createAnimationClips();
8
+ const activeClip = clips.find((clip) => clip.name === (options.clip ?? "walk")) ?? clips[1];
9
+ const lighting = createLightingDefault("studioProduct");
10
+ const material = new PBRMaterial({ name: "animation-lab-character", baseColor: [0.72, 0.55, 0.32, 1], metallic: 0.18, roughness: 0.42 });
11
+ const accent = new PBRMaterial({ name: "animation-lab-accent", baseColor: [0.18, 0.3, 0.28, 1], metallic: 0.08, roughness: 0.5 });
12
+ const sample = (timeSeconds) => {
13
+ const t = wrapTime(timeSeconds * speed, activeClip.duration);
14
+ const root = sampleVec3(activeClip, "root.position", t);
15
+ const armSwing = sampleScalar(activeClip, "arms.swing", t);
16
+ const legSwing = sampleScalar(activeClip, "legs.swing", t);
17
+ const headBob = sampleScalar(activeClip, "head.bob", t);
18
+ const renderItems = [
19
+ {
20
+ label: "animation-lab-body",
21
+ geometry: Geometry.capsule({ radius: 0.34, height: 1.25, segments: 24, rings: 12, textured: true }),
22
+ material,
23
+ modelMatrix: composeMat4([root[0], 0.78 + root[1], root[2]], [0, 0, 0, 1], [1.05, 1, 0.85])
24
+ },
25
+ {
26
+ label: "animation-lab-head",
27
+ geometry: Geometry.uvSphere(0.28, 32, 16, { textured: true }),
28
+ material,
29
+ modelMatrix: composeMat4([root[0], 1.66 + headBob, root[2]], [0, 0, 0, 1], [1, 1, 1])
30
+ },
31
+ {
32
+ label: "animation-lab-left-arm",
33
+ geometry: Geometry.cylinder({ radius: 0.09, height: 0.78, segments: 18, textured: true }),
34
+ material: accent,
35
+ modelMatrix: composeMat4([root[0] - 0.44, 0.9, root[2] + armSwing], [0.18, 0, 0, 0.98], [1, 1, 1])
36
+ },
37
+ {
38
+ label: "animation-lab-right-arm",
39
+ geometry: Geometry.cylinder({ radius: 0.09, height: 0.78, segments: 18, textured: true }),
40
+ material: accent,
41
+ modelMatrix: composeMat4([root[0] + 0.44, 0.9, root[2] - armSwing], [-0.18, 0, 0, 0.98], [1, 1, 1])
42
+ },
43
+ {
44
+ label: "animation-lab-left-leg",
45
+ geometry: Geometry.cylinder({ radius: 0.12, height: 0.78, segments: 18, textured: true }),
46
+ material: accent,
47
+ modelMatrix: composeMat4([root[0] - 0.18, 0.18, root[2] - legSwing], [0.12, 0, 0, 0.99], [1, 1, 1])
48
+ },
49
+ {
50
+ label: "animation-lab-right-leg",
51
+ geometry: Geometry.cylinder({ radius: 0.12, height: 0.78, segments: 18, textured: true }),
52
+ material: accent,
53
+ modelMatrix: composeMat4([root[0] + 0.18, 0.18, root[2] + legSwing], [-0.12, 0, 0, 0.99], [1, 1, 1])
54
+ }
55
+ ];
56
+ return {
57
+ renderItems,
58
+ cameraPolicy: "auto-frame",
59
+ cameraFrameOptions: { paddingRatio: 0.24, yawRadians: -0.28, pitchRadians: -0.08 },
60
+ environmentLighting: lighting.environmentLighting,
61
+ shadow: false,
62
+ postprocess: { ...lighting.postprocess, targetFormat: "rgba8" }
63
+ };
64
+ };
65
+ const source = sample(0);
66
+ return {
67
+ kind: "animation-lab",
68
+ source,
69
+ renderItems: source.renderItems,
70
+ clips,
71
+ mixer: {
72
+ timeScale: speed,
73
+ actionCount: 1,
74
+ actions: [{ clipName: activeClip.name, duration: activeClip.duration, time: 0, weight: 1, timeScale: speed, playing: true, paused: false, loopMode: "repeat" }],
75
+ layers: [],
76
+ values: {
77
+ "root.position": [0, 0, 0],
78
+ "arms.swing": 0,
79
+ "legs.swing": 0,
80
+ "head.bob": 0
81
+ },
82
+ applyErrors: []
83
+ },
84
+ diagnostics: createWorkflowDiagnostics("animation-lab", {
85
+ featureChecklist: ["keyframe-clips", "clip-switching", "animated-transforms", "timeline-sampling", "camera-framing", "postprocess"]
86
+ }),
87
+ update: sample,
88
+ dispose: () => undefined
89
+ };
90
+ }
91
+ function createAnimationClips() {
92
+ return [
93
+ createClip("idle", 1.6, [0, 0, 0], 0.05, 0.02, 0.03),
94
+ createClip("walk", 1.2, [0, 0, 0.1], 0.24, 0.22, 0.06),
95
+ createClip("run", 0.8, [0, 0, 0.16], 0.34, 0.32, 0.09)
96
+ ];
97
+ }
98
+ function createClip(name, duration, rootEnd, arm, leg, bob) {
99
+ return new AnimationClip({
100
+ name,
101
+ duration,
102
+ tracks: [
103
+ new AnimationTrack({
104
+ target: "root.position",
105
+ valueType: "vector3",
106
+ keyframes: [
107
+ { time: 0, value: [0, 0, 0] },
108
+ { time: duration / 2, value: [rootEnd[0], bob, rootEnd[2] / 2] },
109
+ { time: duration, value: rootEnd }
110
+ ]
111
+ }),
112
+ new AnimationTrack({
113
+ target: "arms.swing",
114
+ valueType: "scalar",
115
+ keyframes: [
116
+ { time: 0, value: -arm },
117
+ { time: duration / 2, value: arm },
118
+ { time: duration, value: -arm }
119
+ ]
120
+ }),
121
+ new AnimationTrack({
122
+ target: "legs.swing",
123
+ valueType: "scalar",
124
+ keyframes: [
125
+ { time: 0, value: leg },
126
+ { time: duration / 2, value: -leg },
127
+ { time: duration, value: leg }
128
+ ]
129
+ }),
130
+ new AnimationTrack({
131
+ target: "head.bob",
132
+ valueType: "scalar",
133
+ keyframes: [
134
+ { time: 0, value: 0 },
135
+ { time: duration / 2, value: bob },
136
+ { time: duration, value: 0 }
137
+ ]
138
+ })
139
+ ]
140
+ });
141
+ }
142
+ function sampleVec3(clip, target, time) {
143
+ const value = clip.tracks.find((track) => track.target === target)?.sample(time);
144
+ return Array.isArray(value) && value.length === 3 ? [value[0], value[1], value[2]] : [0, 0, 0];
145
+ }
146
+ function sampleScalar(clip, target, time) {
147
+ const value = clip.tracks.find((track) => track.target === target)?.sample(time);
148
+ return typeof value === "number" ? value : 0;
149
+ }
150
+ function wrapTime(timeSeconds, duration) {
151
+ if (duration <= 0)
152
+ return 0;
153
+ const wrapped = timeSeconds % duration;
154
+ return wrapped < 0 ? wrapped + duration : wrapped;
155
+ }
156
+ //# sourceMappingURL=AnimationLabWorkflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnimationLabWorkflow.js","sourceRoot":"","sources":["../../../../packages/workflows/src/AnimationLabWorkflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { AssetViewerWorkflowOptions, AssetViewerWorkflowResult } from "./WorkflowTypes";
2
+ export declare function createAssetViewerWorkflow(options: AssetViewerWorkflowOptions): Promise<AssetViewerWorkflowResult>;
3
+ //# sourceMappingURL=AssetViewerWorkflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssetViewerWorkflow.d.ts","sourceRoot":"","sources":["../../../../packages/workflows/src/AssetViewerWorkflow.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAE7F,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,yBAAyB,CAAC,CA+BvH"}
@@ -0,0 +1,35 @@
1
+ import { createRenderableScene, loadRenderableAsset } from "@aura3d/assets";
2
+ import { createWorkflowDiagnostics } from "./WorkflowDiagnostics.js";
3
+ export async function createAssetViewerWorkflow(options) {
4
+ const loadOptions = {
5
+ baseUrl: options.baseUrl,
6
+ signal: options.signal,
7
+ dependencyChain: options.dependencyChain,
8
+ manager: options.manager,
9
+ type: options.type
10
+ };
11
+ const asset = await loadRenderableAsset(options.url, loadOptions);
12
+ const scene = await createRenderableScene(asset, {
13
+ camera: options.camera ?? "auto-frame",
14
+ lighting: options.lighting ?? "studioProduct",
15
+ shadows: options.shadows ?? true,
16
+ postprocess: options.postprocess ?? "product-default",
17
+ viewport: options.viewport,
18
+ qualityPreset: options.qualityPreset,
19
+ renderResources: options.renderResources
20
+ });
21
+ return {
22
+ kind: "asset-viewer",
23
+ asset,
24
+ scene,
25
+ source: scene.source,
26
+ camera: scene.rendererInput?.camera,
27
+ diagnostics: createWorkflowDiagnostics("asset-viewer", {
28
+ asset,
29
+ warnings: scene.warnings,
30
+ featureChecklist: ["asset-loading", "render-resources", "auto-camera", "lighting", "shadows", "postprocess"]
31
+ }),
32
+ dispose: () => scene.dispose()
33
+ };
34
+ }
35
+ //# sourceMappingURL=AssetViewerWorkflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AssetViewerWorkflow.js","sourceRoot":"","sources":["../../../../packages/workflows/src/AssetViewerWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAGlE,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,OAAmC;IACjF,MAAM,WAAW,GAA+B;QAC9C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,IAAI,EAAE,OAAO,CAAC,IAAI;KACnB,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,KAAK,EAAE;QAC/C,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,YAAY;QACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,eAAe;QAC7C,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,iBAAiB;QACrD,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,eAAe,EAAE,OAAO,CAAC,eAAe;KACzC,CAAC,CAAC;IACH,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,KAAK;QACL,KAAK;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,aAAa,EAAE,MAAM;QACnC,WAAW,EAAE,yBAAyB,CAAC,cAAc,EAAE;YACrD,KAAK;YACL,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,gBAAgB,EAAE,CAAC,eAAe,EAAE,kBAAkB,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,CAAC;SAC7G,CAAC;QACF,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE;KAC/B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ComparisonWorkflowOptions, ComparisonWorkflowResult } from "./WorkflowTypes";
2
+ export declare function createComparisonWorkflow(options?: ComparisonWorkflowOptions): ComparisonWorkflowResult;
3
+ //# sourceMappingURL=ComparisonWorkflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComparisonWorkflow.d.ts","sourceRoot":"","sources":["../../../../packages/workflows/src/ComparisonWorkflow.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3F,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,yBAA8B,GAAG,wBAAwB,CA8D1G"}
@@ -0,0 +1,67 @@
1
+ import { composeMat4 } from "@aura3d/scene";
2
+ import { Geometry, PBRMaterial, createLightingDefault } from "@aura3d/rendering";
3
+ import { createWorkflowDiagnostics } from "./WorkflowDiagnostics.js";
4
+ export function createComparisonWorkflow(options = {}) {
5
+ const focus = options.focus ?? "setup";
6
+ const lighting = createLightingDefault("studioProduct");
7
+ const a3dMaterial = new PBRMaterial({ name: "comparison-a3d", baseColor: [0.12, 0.48, 0.82, 1], metallic: 0.1, roughness: 0.34 });
8
+ const threeMaterial = new PBRMaterial({ name: "comparison-three-baseline", baseColor: [0.75, 0.75, 0.75, 1], metallic: 0.05, roughness: 0.5 });
9
+ const migrationMaterial = new PBRMaterial({ name: "comparison-migration", baseColor: [0.88, 0.56, 0.2, 1], metallic: 0.18, roughness: 0.38 });
10
+ const renderItems = [
11
+ {
12
+ label: "comparison-a3d-workflow",
13
+ geometry: Geometry.uvSphere(0.48, 40, 20, { textured: true }),
14
+ material: a3dMaterial,
15
+ modelMatrix: composeMat4([-1.15, 0.05, 0], [0, 0, 0, 1], [1, 1, 1])
16
+ },
17
+ {
18
+ label: "comparison-threejs-reference",
19
+ geometry: Geometry.texturedCube(0.88),
20
+ material: threeMaterial,
21
+ modelMatrix: composeMat4([0, 0, 0], [0, 0.25, 0, 0.97], [1, 1, 1])
22
+ },
23
+ {
24
+ label: "comparison-migration-output",
25
+ geometry: Geometry.cylinder({ radius: 0.36, height: 1, segments: 32, textured: true }),
26
+ material: migrationMaterial,
27
+ modelMatrix: composeMat4([1.15, 0, 0], [0, 0, 0, 1], [1, 1, 1])
28
+ }
29
+ ];
30
+ const comparison = {
31
+ focus,
32
+ a3dSteps: [
33
+ "create workflow render source",
34
+ "load optional asset/environment through public package APIs",
35
+ "render through Renderer.create with diagnostics"
36
+ ],
37
+ threeJsSteps: [
38
+ "create scene, camera, renderer, lights, controls, loader, material setup, and animation loop separately",
39
+ "wire resource disposal and resize handling manually",
40
+ "add diagnostics through user-land instrumentation"
41
+ ],
42
+ migrationNotes: [
43
+ "A3D comparison workflow renders a A3D-owned parity scene; it does not embed Three.js at runtime.",
44
+ "Use @aura3d/three-compat for adapter coverage and warnings when moving Three.js example code."
45
+ ]
46
+ };
47
+ const source = {
48
+ renderItems,
49
+ cameraPolicy: "auto-frame",
50
+ cameraFrameOptions: { paddingRatio: 0.22, yawRadians: -0.36, pitchRadians: -0.1 },
51
+ environmentLighting: lighting.environmentLighting,
52
+ shadow: false,
53
+ postprocess: { ...lighting.postprocess, targetFormat: "rgba8" }
54
+ };
55
+ return {
56
+ kind: "comparison",
57
+ source,
58
+ renderItems,
59
+ comparison,
60
+ diagnostics: createWorkflowDiagnostics("comparison", {
61
+ warnings: ["Comparison workflow summarizes migration/setup parity; same-scene Three.js visual superiority still requires benchmark reports."],
62
+ featureChecklist: ["a3d-workflow-source", "threejs-setup-comparison", "migration-notes", "render-diagnostics", "postprocess"]
63
+ }),
64
+ dispose: () => undefined
65
+ };
66
+ }
67
+ //# sourceMappingURL=ComparisonWorkflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComparisonWorkflow.js","sourceRoot":"","sources":["../../../../packages/workflows/src/ComparisonWorkflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { InteractiveSceneWorkflowOptions, InteractiveSceneWorkflowResult } from "./WorkflowTypes";
2
+ export declare function createInteractiveSceneWorkflow(_options?: InteractiveSceneWorkflowOptions): InteractiveSceneWorkflowResult;
3
+ //# sourceMappingURL=InteractiveSceneWorkflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InteractiveSceneWorkflow.d.ts","sourceRoot":"","sources":["../../../../packages/workflows/src/InteractiveSceneWorkflow.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,+BAA+B,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAEvG,wBAAgB,8BAA8B,CAAC,QAAQ,GAAE,+BAAoC,GAAG,8BAA8B,CAsC7H"}
@@ -0,0 +1,43 @@
1
+ import { composeMat4 } from "@aura3d/scene";
2
+ import { Geometry, PBRMaterial, createLightingDefault } from "@aura3d/rendering";
3
+ import { createWorkflowDiagnostics } from "./WorkflowDiagnostics.js";
4
+ export function createInteractiveSceneWorkflow(_options = {}) {
5
+ const lighting = createLightingDefault("studioProduct");
6
+ const material = new PBRMaterial({ name: "interactive-workflow-material", baseColor: [0.95, 0.62, 0.18, 1], metallic: 0.25, roughness: 0.36 });
7
+ const createSource = (timeSeconds) => {
8
+ const renderItems = [
9
+ {
10
+ label: "interactive-orbit-a",
11
+ geometry: Geometry.uvSphere(0.42, 32, 16, { textured: true }),
12
+ material,
13
+ modelMatrix: composeMat4([Math.cos(timeSeconds) * 0.9, 0, Math.sin(timeSeconds) * 0.35], [0, 0, 0, 1], [1, 1, 1])
14
+ },
15
+ {
16
+ label: "interactive-orbit-b",
17
+ geometry: Geometry.texturedCube(1),
18
+ material: new PBRMaterial({ name: "interactive-workflow-blue", baseColor: [0.2, 0.48, 0.92, 1], metallic: 0.1, roughness: 0.44 }),
19
+ modelMatrix: composeMat4([Math.cos(timeSeconds + Math.PI) * 0.9, 0, Math.sin(timeSeconds + Math.PI) * 0.35], [0, 0, 0, 1], [0.62, 0.62, 0.62])
20
+ }
21
+ ];
22
+ return {
23
+ renderItems,
24
+ cameraPolicy: "auto-frame",
25
+ cameraFrameOptions: { paddingRatio: 0.28, yawRadians: -0.5, pitchRadians: -0.14 },
26
+ environmentLighting: lighting.environmentLighting,
27
+ shadow: false,
28
+ postprocess: { ...lighting.postprocess, targetFormat: "rgba8" }
29
+ };
30
+ };
31
+ const source = createSource(0);
32
+ return {
33
+ kind: "interactive-scene",
34
+ source,
35
+ renderItems: source.renderItems,
36
+ diagnostics: createWorkflowDiagnostics("interactive-scene", {
37
+ featureChecklist: ["update-loop", "animated-transforms", "input-ready-scene", "camera-framing", "postprocess"]
38
+ }),
39
+ update: createSource,
40
+ dispose: () => undefined
41
+ };
42
+ }
43
+ //# sourceMappingURL=InteractiveSceneWorkflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InteractiveSceneWorkflow.js","sourceRoot":"","sources":["../../../../packages/workflows/src/InteractiveSceneWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAGlE,MAAM,UAAU,8BAA8B,CAAC,WAA4C,EAAE;IAC3F,MAAM,QAAQ,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,+BAA+B,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/I,MAAM,YAAY,GAAG,CAAC,WAAmB,EAAE,EAAE;QAC3C,MAAM,WAAW,GAAG;YAClB;gBACE,KAAK,EAAE,qBAAqB;gBAC5B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAC7D,QAAQ;gBACR,WAAW,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;aAClH;YACD;gBACE,KAAK,EAAE,qBAAqB;gBAC5B,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;gBAClC,QAAQ,EAAE,IAAI,WAAW,CAAC,EAAE,IAAI,EAAE,2BAA2B,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;gBACjI,WAAW,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;aAC/I;SACF,CAAC;QACF,OAAO;YACL,WAAW;YACX,YAAY,EAAE,YAAqB;YACnC,kBAAkB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE;YACjF,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;YACjD,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,YAAY,EAAE,OAAgB,EAAE;SACzE,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/B,OAAO;QACL,IAAI,EAAE,mBAAmB;QACzB,MAAM;QACN,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,WAAW,EAAE,yBAAyB,CAAC,mBAAmB,EAAE;YAC1D,gBAAgB,EAAE,CAAC,aAAa,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,aAAa,CAAC;SAC/G,CAAC;QACF,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS;KACzB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { MaterialStudioWorkflowOptions, MaterialStudioWorkflowResult } from "./WorkflowTypes";
2
+ export declare function createMaterialStudioWorkflow(options?: MaterialStudioWorkflowOptions): MaterialStudioWorkflowResult;
3
+ //# sourceMappingURL=MaterialStudioWorkflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaterialStudioWorkflow.d.ts","sourceRoot":"","sources":["../../../../packages/workflows/src/MaterialStudioWorkflow.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAEnG,wBAAgB,4BAA4B,CAAC,OAAO,GAAE,6BAAkC,GAAG,4BAA4B,CA0CtH"}
@@ -0,0 +1,47 @@
1
+ import { composeMat4 } from "@aura3d/scene";
2
+ import { Geometry, NormalMappedPBRMaterial, PBRMaterial, TexturedPBRMaterial, Texture, createLightingDefault } from "@aura3d/rendering";
3
+ import { createWorkflowDiagnostics } from "./WorkflowDiagnostics.js";
4
+ export function createMaterialStudioWorkflow(options = {}) {
5
+ const white = new Texture({ width: 1, height: 1, colorSpace: "srgb", data: new Uint8Array([240, 236, 220, 255]) });
6
+ const rough = new Texture({ width: 1, height: 1, colorSpace: "linear", data: new Uint8Array([255, 128, 255, 255]) });
7
+ const normal = new Texture({ width: 1, height: 1, colorSpace: "linear", data: new Uint8Array([128, 128, 255, 255]) });
8
+ const lighting = createLightingDefault(options.mode === "transparent" ? "interiorGallery" : "studioProduct");
9
+ const renderItems = [
10
+ {
11
+ label: "workflow-polished-metal",
12
+ geometry: Geometry.uvSphere(0.58, 48, 24, { textured: true }),
13
+ material: new PBRMaterial({ name: "workflow-polished-metal", baseColor: [0.86, 0.82, 0.72, 1], metallic: 1, roughness: 0.18 }),
14
+ modelMatrix: composeMat4([-1.25, 0, 0], [0, 0, 0, 1], [1, 1, 1])
15
+ },
16
+ {
17
+ label: "workflow-textured-pbr",
18
+ geometry: Geometry.uvSphere(0.58, 48, 24, { textured: true }),
19
+ material: new TexturedPBRMaterial({ name: "workflow-textured-pbr", baseColorTexture: white, metallicRoughnessTexture: rough, normalTexture: normal, roughness: 0.45 }),
20
+ modelMatrix: composeMat4([0, 0, 0], [0, 0, 0, 1], [1, 1, 1])
21
+ },
22
+ {
23
+ label: "workflow-normal-material",
24
+ geometry: Geometry.texturedCube(1),
25
+ material: new NormalMappedPBRMaterial({ name: "workflow-normal-material", normalTexture: normal, baseColor: [0.28, 0.58, 0.9, 1], normalScale: 0.8 }),
26
+ modelMatrix: composeMat4([1.25, 0, 0], [0, 0, 0, 1], [0.85, 0.85, 0.85])
27
+ }
28
+ ];
29
+ const source = {
30
+ renderItems,
31
+ cameraPolicy: "auto-frame",
32
+ cameraFrameOptions: { paddingRatio: 0.18, yawRadians: -0.36, pitchRadians: -0.12 },
33
+ environmentLighting: lighting.environmentLighting,
34
+ shadow: false,
35
+ postprocess: { ...lighting.postprocess, targetFormat: "rgba8" }
36
+ };
37
+ return {
38
+ kind: "material-studio",
39
+ source,
40
+ renderItems,
41
+ diagnostics: createWorkflowDiagnostics("material-studio", {
42
+ featureChecklist: ["pbr", "textured-pbr", "normal-mapped-pbr", "material-comparison", "postprocess"]
43
+ }),
44
+ dispose: () => undefined
45
+ };
46
+ }
47
+ //# sourceMappingURL=MaterialStudioWorkflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MaterialStudioWorkflow.js","sourceRoot":"","sources":["../../../../packages/workflows/src/MaterialStudioWorkflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ProductConfiguratorWorkflowOptions, ProductConfiguratorWorkflowResult } from "./WorkflowTypes";
2
+ export declare function createProductConfiguratorWorkflow(options: ProductConfiguratorWorkflowOptions): Promise<ProductConfiguratorWorkflowResult>;
3
+ //# sourceMappingURL=ProductConfiguratorWorkflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProductConfiguratorWorkflow.d.ts","sourceRoot":"","sources":["../../../../packages/workflows/src/ProductConfiguratorWorkflow.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kCAAkC,EAAE,iCAAiC,EAAE,MAAM,iBAAiB,CAAC;AAE7G,wBAAsB,iCAAiC,CAAC,OAAO,EAAE,kCAAkC,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAqB/I"}
@@ -0,0 +1,25 @@
1
+ import { createProductCameraFrame, createProductLightingPreset, createProductMaterialMode, createProductRenderScene, loadProductAsset } from "@aura3d/product-studio";
2
+ import { createWorkflowDiagnostics } from "./WorkflowDiagnostics.js";
3
+ export async function createProductConfiguratorWorkflow(options) {
4
+ const asset = await loadProductAsset(options.asset);
5
+ const lighting = createProductLightingPreset(options.lighting ?? "catalog-softbox");
6
+ const camera = createProductCameraFrame(asset, {
7
+ preset: options.camera ?? "front-three-quarter",
8
+ viewport: options.viewport ?? { width: 1280, height: 900 }
9
+ });
10
+ const materialMode = createProductMaterialMode(options.materialMode ?? "asset");
11
+ const scene = createProductRenderScene(asset, { lighting, camera, materialMode });
12
+ return {
13
+ kind: "product-configurator",
14
+ asset,
15
+ scene,
16
+ source: scene.source,
17
+ camera: scene.camera,
18
+ diagnostics: createWorkflowDiagnostics("product-configurator", {
19
+ asset,
20
+ featureChecklist: ["product-asset", "material-modes", "lighting-presets", "camera-presets", "export-ready"]
21
+ }),
22
+ dispose: () => asset.resources.dispose()
23
+ };
24
+ }
25
+ //# sourceMappingURL=ProductConfiguratorWorkflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProductConfiguratorWorkflow.js","sourceRoot":"","sources":["../../../../packages/workflows/src/ProductConfiguratorWorkflow.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAGlE,MAAM,CAAC,KAAK,UAAU,iCAAiC,CAAC,OAA2C;IACjG,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,2BAA2B,CAAC,OAAO,CAAC,QAAQ,IAAI,iBAAiB,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,wBAAwB,CAAC,KAAK,EAAE;QAC7C,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,qBAAqB;QAC/C,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;KAC3D,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,yBAAyB,CAAC,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,CAAC;IAChF,MAAM,KAAK,GAAG,wBAAwB,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAClF,OAAO;QACL,IAAI,EAAE,sBAAsB;QAC5B,KAAK;QACL,KAAK;QACL,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,WAAW,EAAE,yBAAyB,CAAC,sBAAsB,EAAE;YAC7D,KAAK;YACL,gBAAgB,EAAE,CAAC,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,cAAc,CAAC;SAC5G,CAAC;QACF,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE;KACzC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { SceneShowcaseWorkflowOptions, SceneShowcaseWorkflowResult } from "./WorkflowTypes";
2
+ export declare function createSceneShowcaseWorkflow(options?: SceneShowcaseWorkflowOptions): SceneShowcaseWorkflowResult;
3
+ //# sourceMappingURL=SceneShowcaseWorkflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneShowcaseWorkflow.d.ts","sourceRoot":"","sources":["../../../../packages/workflows/src/SceneShowcaseWorkflow.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,4BAA4B,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAEjG,wBAAgB,2BAA2B,CAAC,OAAO,GAAE,4BAAiC,GAAG,2BAA2B,CAuCnH"}
@@ -0,0 +1,44 @@
1
+ import { composeMat4 } from "@aura3d/scene";
2
+ import { Geometry, PBRMaterial, createLightingDefault } from "@aura3d/rendering";
3
+ import { createWorkflowDiagnostics } from "./WorkflowDiagnostics.js";
4
+ export function createSceneShowcaseWorkflow(options = {}) {
5
+ const lighting = createLightingDefault(options.preset === "dramatic" ? "gameNight" : options.preset === "gallery" ? "interiorGallery" : "studioProduct");
6
+ const renderItems = [
7
+ {
8
+ label: "showcase-center",
9
+ geometry: Geometry.uvSphere(0.72, 48, 24, { textured: true }),
10
+ material: new PBRMaterial({ name: "showcase-center-material", baseColor: [0.9, 0.3, 0.16, 1], metallic: 0.35, roughness: 0.32 }),
11
+ modelMatrix: composeMat4([0, 0.25, 0], [0, 0, 0, 1], [1, 1, 1])
12
+ },
13
+ {
14
+ label: "showcase-left",
15
+ geometry: Geometry.texturedCube(1),
16
+ material: new PBRMaterial({ name: "showcase-left-material", baseColor: [0.18, 0.45, 0.9, 1], metallic: 0.1, roughness: 0.48 }),
17
+ modelMatrix: composeMat4([-1.25, -0.15, -0.2], [0, 0.18, 0, 0.98], [0.72, 0.72, 0.72])
18
+ },
19
+ {
20
+ label: "showcase-right",
21
+ geometry: Geometry.cylinder({ radius: 0.42, height: 1.1, textured: true }),
22
+ material: new PBRMaterial({ name: "showcase-right-material", baseColor: [0.2, 0.72, 0.42, 1], metallic: 0.05, roughness: 0.55 }),
23
+ modelMatrix: composeMat4([1.25, -0.1, -0.15], [0, 0, 0, 1], [1, 1, 1])
24
+ }
25
+ ];
26
+ const source = {
27
+ renderItems,
28
+ cameraPolicy: "auto-frame",
29
+ cameraFrameOptions: { paddingRatio: 0.2, yawRadians: -0.42, pitchRadians: -0.16 },
30
+ environmentLighting: lighting.environmentLighting,
31
+ shadow: false,
32
+ postprocess: { ...lighting.postprocess, targetFormat: "rgba8" }
33
+ };
34
+ return {
35
+ kind: "scene-showcase",
36
+ source,
37
+ renderItems,
38
+ diagnostics: createWorkflowDiagnostics("scene-showcase", {
39
+ featureChecklist: ["multi-object-scene", "pbr", "lighting-preset", "camera-framing", "postprocess"]
40
+ }),
41
+ dispose: () => undefined
42
+ };
43
+ }
44
+ //# sourceMappingURL=SceneShowcaseWorkflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SceneShowcaseWorkflow.js","sourceRoot":"","sources":["../../../../packages/workflows/src/SceneShowcaseWorkflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { RenderDeviceDiagnostics } from "@aura3d/rendering";
2
+ import type { RenderableAsset } from "@aura3d/assets";
3
+ import type { ProductAsset } from "@aura3d/product-studio";
4
+ import type { A3DWorkflowDiagnostics, A3DWorkflowKind } from "./WorkflowTypes";
5
+ export declare function createWorkflowDiagnostics(workflow: A3DWorkflowKind, options?: {
6
+ readonly warnings?: readonly string[];
7
+ readonly featureChecklist?: readonly string[];
8
+ readonly asset?: RenderableAsset | ProductAsset;
9
+ readonly renderDiagnostics?: RenderDeviceDiagnostics;
10
+ }): A3DWorkflowDiagnostics;
11
+ //# sourceMappingURL=WorkflowDiagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowDiagnostics.d.ts","sourceRoot":"","sources":["../../../../packages/workflows/src/WorkflowDiagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE/E,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,eAAe,EACzB,OAAO,GAAE;IACP,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,GAAG,YAAY,CAAC;IAChD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,uBAAuB,CAAC;CACjD,GACL,sBAAsB,CAQxB"}
@@ -0,0 +1,34 @@
1
+ export function createWorkflowDiagnostics(workflow, options = {}) {
2
+ return {
3
+ workflow,
4
+ warnings: options.warnings ?? [],
5
+ featureChecklist: options.featureChecklist ?? [],
6
+ ...(options.asset ? { asset: summarizeAsset(options.asset) } : {}),
7
+ ...(options.renderDiagnostics ? { renderDiagnostics: options.renderDiagnostics } : {})
8
+ };
9
+ }
10
+ function summarizeAsset(asset) {
11
+ if ("gltf" in asset && asset.gltf) {
12
+ return {
13
+ kind: "gltf",
14
+ meshCount: asset.gltf.loaderDiagnostics.meshCount,
15
+ materialCount: asset.gltf.loaderDiagnostics.materialCount,
16
+ textureCount: asset.gltf.loaderDiagnostics.textureCount
17
+ };
18
+ }
19
+ if ("resources" in asset) {
20
+ return {
21
+ kind: asset.category,
22
+ meshCount: asset.gltf.loaderDiagnostics.meshCount,
23
+ materialCount: asset.gltf.loaderDiagnostics.materialCount,
24
+ textureCount: asset.gltf.loaderDiagnostics.textureCount
25
+ };
26
+ }
27
+ return {
28
+ kind: asset.kind,
29
+ meshCount: 0,
30
+ materialCount: 0,
31
+ textureCount: 0
32
+ };
33
+ }
34
+ //# sourceMappingURL=WorkflowDiagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowDiagnostics.js","sourceRoot":"","sources":["../../../../packages/workflows/src/WorkflowDiagnostics.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,yBAAyB,CACvC,QAAyB,EACzB,UAKI,EAAE;IAEN,OAAO;QACL,QAAQ;QACR,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;QAChC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,EAAE;QAChD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAqC;IAC3D,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAClC,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS;YACjD,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa;YACzD,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY;SACxD,CAAC;IACJ,CAAC;IACD,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,QAAQ;YACpB,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS;YACjD,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa;YACzD,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,YAAY;SACxD,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,SAAS,EAAE,CAAC;QACZ,aAAa,EAAE,CAAC;QAChB,YAAY,EAAE,CAAC;KAChB,CAAC;AACJ,CAAC"}