@helix3/helix-cli 0.1.14-helix3.182 → 0.1.14-helix3.183

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.
@@ -0,0 +1,168 @@
1
+ import { type ContinuumPackage, type ContinuumPackageVersion, type ContinuumPackageVersionReference, type ContinuumSceneDependencyClosure, type RuntimeProfile } from '@hypersoniclabs/helix-manifest';
2
+ import type { ScratchWorldPublicationFile } from './continuum/cli';
3
+ import type { ContinuumObjectPublication } from './continuum/types';
4
+ export declare const PALETTE_SHOWCASE_VERSION = "1.0.5";
5
+ export declare const PALETTE_SHOWCASE_VARIANTS: readonly ["canonical", "practical", "weathered", "hero"];
6
+ export declare const PALETTE_SHOWCASE_DEFAULT_PROFILE = "web-desktop-balanced";
7
+ type PaletteShowcaseDeviceBudget = {
8
+ targetFps: number;
9
+ gpuTextureMiB: number;
10
+ residentTransferMiB: number;
11
+ drawCalls: number;
12
+ programs: number;
13
+ residentPavilions: number;
14
+ };
15
+ declare const PALETTE_SHOWCASE_PROFILE_SPECS: readonly [{
16
+ readonly id: "web-low-mobile";
17
+ readonly quality: "minimum";
18
+ readonly capabilities: readonly ["device.mobile-low/1", "texture.runtime-1k/1"];
19
+ readonly budget: {
20
+ readonly targetFps: 30;
21
+ readonly gpuTextureMiB: 48;
22
+ readonly residentTransferMiB: 12;
23
+ readonly drawCalls: 80;
24
+ readonly programs: 16;
25
+ readonly residentPavilions: 1;
26
+ };
27
+ }, {
28
+ readonly id: "web-mobile-balanced";
29
+ readonly quality: "balanced";
30
+ readonly capabilities: readonly ["device.mobile/1", "texture.runtime-1k/1"];
31
+ readonly budget: {
32
+ readonly targetFps: 45;
33
+ readonly gpuTextureMiB: 64;
34
+ readonly residentTransferMiB: 20;
35
+ readonly drawCalls: 96;
36
+ readonly programs: 16;
37
+ readonly residentPavilions: 1;
38
+ };
39
+ }, {
40
+ readonly id: "web-high-mobile";
41
+ readonly quality: "high";
42
+ readonly capabilities: readonly ["device.mobile-high/1", "texture.runtime-1k/1"];
43
+ readonly budget: {
44
+ readonly targetFps: 60;
45
+ readonly gpuTextureMiB: 96;
46
+ readonly residentTransferMiB: 28;
47
+ readonly drawCalls: 120;
48
+ readonly programs: 20;
49
+ readonly residentPavilions: 1;
50
+ };
51
+ }, {
52
+ readonly id: "web-desktop-balanced";
53
+ readonly quality: "balanced";
54
+ readonly capabilities: readonly ["device.desktop/1", "texture.runtime-1k/1"];
55
+ readonly budget: {
56
+ readonly targetFps: 60;
57
+ readonly gpuTextureMiB: 192;
58
+ readonly residentTransferMiB: 40;
59
+ readonly drawCalls: 160;
60
+ readonly programs: 24;
61
+ readonly residentPavilions: 1;
62
+ };
63
+ }, {
64
+ readonly id: "web-pc-ultra";
65
+ readonly quality: "ultra";
66
+ readonly capabilities: readonly ["device.pc/1", "texture.runtime-1k/1"];
67
+ readonly budget: {
68
+ readonly targetFps: 90;
69
+ readonly gpuTextureMiB: 384;
70
+ readonly residentTransferMiB: 64;
71
+ readonly drawCalls: 240;
72
+ readonly programs: 32;
73
+ readonly residentPavilions: 2;
74
+ };
75
+ }, {
76
+ readonly id: "web-standalone-vr";
77
+ readonly quality: "balanced";
78
+ readonly capabilities: readonly ["device.vr-standalone/1", "stereo-rendering/1", "texture.runtime-1k/1"];
79
+ readonly budget: {
80
+ readonly targetFps: 72;
81
+ readonly gpuTextureMiB: 96;
82
+ readonly residentTransferMiB: 20;
83
+ readonly drawCalls: 96;
84
+ readonly programs: 18;
85
+ readonly residentPavilions: 1;
86
+ };
87
+ }, {
88
+ readonly id: "web-pc-vr";
89
+ readonly quality: "high";
90
+ readonly capabilities: readonly ["device.vr-pc/1", "stereo-rendering/1", "texture.runtime-1k/1"];
91
+ readonly budget: {
92
+ readonly targetFps: 90;
93
+ readonly gpuTextureMiB: 256;
94
+ readonly residentTransferMiB: 48;
95
+ readonly drawCalls: 180;
96
+ readonly programs: 24;
97
+ readonly residentPavilions: 1;
98
+ };
99
+ }];
100
+ export declare const PALETTE_SHOWCASE_DEVICE_BUDGETS: Record<(typeof PALETTE_SHOWCASE_PROFILE_SPECS)[number]["id"], PaletteShowcaseDeviceBudget>;
101
+ export type PaletteShowcaseFamily = {
102
+ id: string;
103
+ name: string;
104
+ category: string;
105
+ residency: 'core' | 'extended';
106
+ physical: {
107
+ tiling: {
108
+ repeatPerMeter: number;
109
+ };
110
+ };
111
+ shader: {
112
+ defaults: {
113
+ roughness: number;
114
+ metallic: number;
115
+ normalScale: number;
116
+ };
117
+ channels: {
118
+ emissive?: {
119
+ supported: boolean;
120
+ };
121
+ alpha?: {
122
+ supported: boolean;
123
+ };
124
+ };
125
+ };
126
+ };
127
+ export type PaletteShowcaseCatalog = {
128
+ palette: {
129
+ id: string;
130
+ version: string;
131
+ };
132
+ families: PaletteShowcaseFamily[];
133
+ };
134
+ export type PaletteShowcasePublicationLedger = {
135
+ palette: {
136
+ id: string;
137
+ version: string;
138
+ };
139
+ activeRelease: string;
140
+ families: Record<string, {
141
+ activeVersion: string;
142
+ versions: Record<string, {
143
+ packageRef: ContinuumPackageVersionReference;
144
+ }>;
145
+ }>;
146
+ };
147
+ export type PaletteShowcaseInput = {
148
+ palette: PaletteShowcaseCatalog;
149
+ ledger: PaletteShowcasePublicationLedger;
150
+ materialClosures: ContinuumSceneDependencyClosure[];
151
+ runtime: {
152
+ reference: ContinuumPackageVersionReference;
153
+ closure: ContinuumSceneDependencyClosure;
154
+ };
155
+ worldId: string;
156
+ projectId: string;
157
+ };
158
+ export declare const PALETTE_SHOWCASE_CONTEXT_COUNT: number;
159
+ export declare function paletteShowcaseRuntimeProfiles(): RuntimeProfile[];
160
+ export declare function createPaletteShowcaseDescriptor(input: PaletteShowcaseInput): ScratchWorldPublicationFile;
161
+ export declare function createPaletteShowcaseRuntimePackage(): {
162
+ package: ContinuumPackage;
163
+ packageVersion: ContinuumPackageVersion;
164
+ reference: ContinuumPackageVersionReference;
165
+ closure: ContinuumSceneDependencyClosure;
166
+ objects: ContinuumObjectPublication[];
167
+ };
168
+ export {};
@@ -0,0 +1,372 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PALETTE_SHOWCASE_CONTEXT_COUNT = exports.PALETTE_SHOWCASE_DEVICE_BUDGETS = exports.PALETTE_SHOWCASE_DEFAULT_PROFILE = exports.PALETTE_SHOWCASE_VARIANTS = exports.PALETTE_SHOWCASE_VERSION = void 0;
4
+ exports.paletteShowcaseRuntimeProfiles = paletteShowcaseRuntimeProfiles;
5
+ exports.createPaletteShowcaseDescriptor = createPaletteShowcaseDescriptor;
6
+ exports.createPaletteShowcaseRuntimePackage = createPaletteShowcaseRuntimePackage;
7
+ const node_crypto_1 = require("node:crypto");
8
+ const helix_manifest_1 = require("@hypersoniclabs/helix-manifest");
9
+ const identity_1 = require("./continuum/identity");
10
+ exports.PALETTE_SHOWCASE_VERSION = '1.0.5';
11
+ exports.PALETTE_SHOWCASE_VARIANTS = ['canonical', 'practical', 'weathered', 'hero'];
12
+ exports.PALETTE_SHOWCASE_DEFAULT_PROFILE = 'web-desktop-balanced';
13
+ const PALETTE_SHOWCASE_PROFILE_SPECS = [
14
+ { id: 'web-low-mobile', quality: 'minimum', capabilities: ['device.mobile-low/1', 'texture.runtime-1k/1'], budget: { targetFps: 30, gpuTextureMiB: 48, residentTransferMiB: 12, drawCalls: 80, programs: 16, residentPavilions: 1 } },
15
+ { id: 'web-mobile-balanced', quality: 'balanced', capabilities: ['device.mobile/1', 'texture.runtime-1k/1'], budget: { targetFps: 45, gpuTextureMiB: 64, residentTransferMiB: 20, drawCalls: 96, programs: 16, residentPavilions: 1 } },
16
+ { id: 'web-high-mobile', quality: 'high', capabilities: ['device.mobile-high/1', 'texture.runtime-1k/1'], budget: { targetFps: 60, gpuTextureMiB: 96, residentTransferMiB: 28, drawCalls: 120, programs: 20, residentPavilions: 1 } },
17
+ { id: exports.PALETTE_SHOWCASE_DEFAULT_PROFILE, quality: 'balanced', capabilities: ['device.desktop/1', 'texture.runtime-1k/1'], budget: { targetFps: 60, gpuTextureMiB: 192, residentTransferMiB: 40, drawCalls: 160, programs: 24, residentPavilions: 1 } },
18
+ { id: 'web-pc-ultra', quality: 'ultra', capabilities: ['device.pc/1', 'texture.runtime-1k/1'], budget: { targetFps: 90, gpuTextureMiB: 384, residentTransferMiB: 64, drawCalls: 240, programs: 32, residentPavilions: 2 } },
19
+ { id: 'web-standalone-vr', quality: 'balanced', capabilities: ['device.vr-standalone/1', 'stereo-rendering/1', 'texture.runtime-1k/1'], budget: { targetFps: 72, gpuTextureMiB: 96, residentTransferMiB: 20, drawCalls: 96, programs: 18, residentPavilions: 1 } },
20
+ { id: 'web-pc-vr', quality: 'high', capabilities: ['device.vr-pc/1', 'stereo-rendering/1', 'texture.runtime-1k/1'], budget: { targetFps: 90, gpuTextureMiB: 256, residentTransferMiB: 48, drawCalls: 180, programs: 24, residentPavilions: 1 } },
21
+ ];
22
+ exports.PALETTE_SHOWCASE_DEVICE_BUDGETS = Object.fromEntries(PALETTE_SHOWCASE_PROFILE_SPECS.map((profile) => [profile.id, profile.budget]));
23
+ const VEHICLE_WHEEL_EXHIBITS = [-3, 3].flatMap((x) => [-1.8, 1.8].flatMap((z, index) => [
24
+ {
25
+ id: `vehicle.tire.${x}.${index}`,
26
+ category: 'vehicle',
27
+ familyId: 'tire-rubber',
28
+ variant: 'practical',
29
+ shape: 'cylinder',
30
+ position: [x, 0.8, 35 + z],
31
+ size: [1.25, 0.7, 1.25],
32
+ rotation: [0.7071068, 0, 0, 0.7071068],
33
+ },
34
+ {
35
+ id: `vehicle.hub.${x}.${index}`,
36
+ category: 'vehicle',
37
+ familyId: 'chrome',
38
+ variant: 'hero',
39
+ shape: 'cylinder',
40
+ position: [x, 0.8, 35 + z],
41
+ size: [0.65, 0.76, 0.65],
42
+ rotation: [0.7071068, 0, 0, 0.7071068],
43
+ },
44
+ ]));
45
+ const CONTEXT_EXHIBITS = [
46
+ { id: 'architecture.floor', category: 'architecture', familyId: 'polished-concrete', variant: 'practical', shape: 'box', position: [0, 0.12, 34], size: [16, 0.24, 12] },
47
+ { id: 'architecture.wall', category: 'architecture', familyId: 'red-brick', variant: 'hero', shape: 'box', position: [0, 3.2, 39], size: [16, 6.4, 0.45] },
48
+ { id: 'architecture.bench', category: 'architecture', familyId: 'light-oak', variant: 'practical', shape: 'box', position: [0, 1.1, 33], size: [6, 0.5, 1.8] },
49
+ { id: 'vehicle.body', category: 'vehicle', familyId: 'vehicle-paint-metallic', variant: 'hero', shape: 'box', position: [0, 1.35, 35], size: [8.5, 1.55, 3.4] },
50
+ { id: 'vehicle.cabin', category: 'vehicle', familyId: 'vehicle-glass', variant: 'practical', shape: 'box', position: [0.4, 2.45, 35], size: [4.2, 1.25, 2.9] },
51
+ ...VEHICLE_WHEEL_EXHIBITS,
52
+ { id: 'character.head', category: 'character', familyId: 'skin-human', variant: 'practical', shape: 'sphere', position: [0, 5.8, 36], size: [1.35, 1.35, 1.35] },
53
+ { id: 'character.torso', category: 'character', familyId: 'technical-fabric-ripstop', variant: 'hero', shape: 'capsule', position: [0, 3.55, 36], size: [2.1, 3.25, 1.15] },
54
+ { id: 'character.arm.left', category: 'character', familyId: 'skin-human', variant: 'practical', shape: 'capsule', position: [-1.45, 3.5, 36], size: [0.55, 3.1, 0.55] },
55
+ { id: 'character.arm.right', category: 'character', familyId: 'skin-human', variant: 'practical', shape: 'capsule', position: [1.45, 3.5, 36], size: [0.55, 3.1, 0.55] },
56
+ { id: 'character.boot.left', category: 'character', familyId: 'leather', variant: 'weathered', shape: 'capsule', position: [-0.65, 1.25, 36], size: [0.75, 2.2, 0.9] },
57
+ { id: 'character.boot.right', category: 'character', familyId: 'leather', variant: 'weathered', shape: 'capsule', position: [0.65, 1.25, 36], size: [0.75, 2.2, 0.9] },
58
+ { id: 'electronics.shell', category: 'electronics', familyId: 'plastic-abs', variant: 'practical', shape: 'box', position: [0, 2.1, 36], size: [6.5, 4.2, 0.65] },
59
+ { id: 'electronics.screen', category: 'electronics', familyId: 'screen-oled', variant: 'hero', shape: 'box', position: [0, 2.2, 35.62], size: [5.5, 3.2, 0.08] },
60
+ { id: 'electronics.board', category: 'electronics', familyId: 'pcb-solder-mask', variant: 'hero', shape: 'box', position: [0, 0.9, 38], size: [4.8, 0.12, 3.4] },
61
+ { id: 'food.bread', category: 'food-organic', familyId: 'food-bread-crust', variant: 'practical', shape: 'capsule', position: [-2.4, 1.05, 36], size: [2.1, 3.4, 1.7], rotation: [0, 0, 0.7071068, 0.7071068] },
62
+ { id: 'food.fruit', category: 'food-organic', familyId: 'food-fruit-skin', variant: 'hero', shape: 'sphere', position: [0.3, 1.2, 36], size: [1.8, 1.8, 1.8] },
63
+ { id: 'food.cheese', category: 'food-organic', familyId: 'food-cheese', variant: 'practical', shape: 'box', position: [2.8, 0.9, 36], size: [2.2, 1.6, 2] },
64
+ { id: 'scifi.portal.left', category: 'fantasy-scifi', familyId: 'energy-emissive', variant: 'hero', shape: 'capsule', position: [-2.2, 3, 36], size: [0.75, 6, 0.75] },
65
+ { id: 'scifi.portal.right', category: 'fantasy-scifi', familyId: 'energy-emissive', variant: 'hero', shape: 'capsule', position: [2.2, 3, 36], size: [0.75, 6, 0.75] },
66
+ { id: 'scifi.portal.core', category: 'fantasy-scifi', familyId: 'clear-glass', variant: 'hero', shape: 'box', position: [0, 3, 36], size: [3.5, 5.5, 0.18] },
67
+ ];
68
+ exports.PALETTE_SHOWCASE_CONTEXT_COUNT = CONTEXT_EXHIBITS.length;
69
+ const ID = /^[A-Za-z0-9][A-Za-z0-9._:-]*$/;
70
+ const PROFILE_CAPABILITIES = [
71
+ 'render.primitive/1',
72
+ 'material.pbr/1',
73
+ 'material.binding-parameters/1',
74
+ 'material.metric-tiling/1',
75
+ 'texture.ktx2/1',
76
+ ];
77
+ const CATEGORY_TINTS = {
78
+ architecture: [0.94, 0.93, 0.9, 1],
79
+ terrain: [0.9, 0.92, 0.86, 1],
80
+ wood: [0.95, 0.86, 0.74, 1],
81
+ 'stone-ceramic': [0.9, 0.93, 0.98, 1],
82
+ metal: [0.82, 0.9, 1, 1],
83
+ vehicle: [0.74, 0.86, 1, 1],
84
+ character: [1, 0.88, 0.84, 1],
85
+ fabric: [0.82, 0.86, 1, 1],
86
+ 'polymer-composite': [0.86, 0.95, 1, 1],
87
+ electronics: [0.72, 0.9, 1, 1],
88
+ 'glass-liquid': [0.76, 0.92, 1, 0.82],
89
+ 'paper-packaging': [1, 0.94, 0.8, 1],
90
+ 'food-organic': [1, 0.84, 0.66, 1],
91
+ 'fantasy-scifi': [0.74, 0.86, 1, 1],
92
+ 'decal-layer': [0.92, 0.84, 1, 0.82],
93
+ };
94
+ function runtimeProfile(id, quality, capabilities) {
95
+ return {
96
+ schema: helix_manifest_1.CONTINUUM_RUNTIME_PROFILE_SCHEMA,
97
+ id,
98
+ platform: 'web',
99
+ renderer: 'three-webgl2',
100
+ quality,
101
+ contracts: { continuum: 1, scene: 2 },
102
+ capabilities: [...new Set([...PROFILE_CAPABILITIES, ...capabilities])].sort(),
103
+ };
104
+ }
105
+ function paletteShowcaseRuntimeProfiles() {
106
+ return PALETTE_SHOWCASE_PROFILE_SPECS.map((profile) => runtimeProfile(profile.id, profile.quality, [...profile.capabilities]));
107
+ }
108
+ function assertInput(input) {
109
+ if (input.palette.families.length !== 256) {
110
+ throw new TypeError(`Palette showcase requires exactly 256 families; received ${input.palette.families.length}`);
111
+ }
112
+ if (input.palette.palette.id !== input.ledger.palette.id || input.palette.palette.version !== input.ledger.activeRelease) {
113
+ throw new TypeError('Palette catalog and publication ledger do not describe the same active release');
114
+ }
115
+ const familyIds = new Set();
116
+ for (const family of input.palette.families) {
117
+ if (!ID.test(family.id))
118
+ throw new TypeError(`Palette family id "${family.id}" is not Scene-safe`);
119
+ if (familyIds.has(family.id))
120
+ throw new TypeError(`Duplicate Palette family id "${family.id}"`);
121
+ familyIds.add(family.id);
122
+ if (!(family.physical.tiling.repeatPerMeter > 0))
123
+ throw new TypeError(`${family.id} requires positive repeatPerMeter`);
124
+ const published = input.ledger.families[family.id];
125
+ if (!published?.versions[published.activeVersion]?.packageRef) {
126
+ throw new TypeError(`${family.id} has no active published Package reference`);
127
+ }
128
+ }
129
+ const closureKeys = new Set(input.materialClosures.map((closure) => packageKey(closure.package)));
130
+ for (const family of input.palette.families) {
131
+ const published = input.ledger.families[family.id];
132
+ const reference = published.versions[published.activeVersion].packageRef;
133
+ if (!closureKeys.has(packageKey(reference)))
134
+ throw new TypeError(`${family.id} is missing its exact dependency closure`);
135
+ }
136
+ }
137
+ function packageKey(reference) {
138
+ return `${reference.packageId}\0${reference.version}\0${reference.manifestCid}`;
139
+ }
140
+ function variation(family, index) {
141
+ const emissive = family.shader.channels.emissive?.supported === true;
142
+ const translucent = family.shader.channels.alpha?.supported === true;
143
+ const tint = CATEGORY_TINTS[family.category] ?? [0.9, 0.92, 1, 1];
144
+ switch (exports.PALETTE_SHOWCASE_VARIANTS[index]) {
145
+ case 'canonical':
146
+ return { tint: [1, 1, 1, 1], roughnessScale: 1, metallicScale: 1, normalScale: 1, emissiveScale: 1, opacity: 1, tilingScale: 1 };
147
+ case 'practical':
148
+ return { tint, roughnessScale: 0.86, metallicScale: 1.05, normalScale: 1.12, emissiveScale: emissive ? 1.25 : 1, opacity: translucent ? 0.88 : 1, tilingScale: 1 };
149
+ case 'weathered':
150
+ return { tint: [0.68, 0.66, 0.62, 1], roughnessScale: 1.22, metallicScale: 0.78, normalScale: 1.35, emissiveScale: emissive ? 0.7 : 1, opacity: translucent ? 0.72 : 1, tilingScale: 1 };
151
+ case 'hero':
152
+ return { tint: [0.88, 0.94, 1, 1], roughnessScale: 0.72, metallicScale: 1.18, normalScale: 1.5, emissiveScale: emissive ? 1.8 : 1, opacity: translucent ? 0.94 : 1, tilingScale: 0.5 };
153
+ }
154
+ }
155
+ function displayShape(category, variantIndex) {
156
+ if (['architecture', 'terrain', 'wood', 'stone-ceramic', 'paper-packaging', 'decal-layer'].includes(category))
157
+ return 'box';
158
+ if (['metal', 'vehicle', 'polymer-composite', 'electronics'].includes(category))
159
+ return variantIndex % 2 === 0 ? 'sphere' : 'cylinder';
160
+ if (['character', 'fabric', 'food-organic'].includes(category))
161
+ return variantIndex % 2 === 0 ? 'capsule' : 'sphere';
162
+ return variantIndex % 2 === 0 ? 'sphere' : 'capsule';
163
+ }
164
+ function displaySize(shape) {
165
+ if (shape === 'box')
166
+ return [3.2, 2.5, 0.32];
167
+ if (shape === 'cylinder')
168
+ return [1.45, 2.6, 1.45];
169
+ if (shape === 'capsule')
170
+ return [1.35, 2.8, 1.35];
171
+ return [1.5, 1.5, 1.5];
172
+ }
173
+ function createPaletteShowcaseDescriptor(input) {
174
+ assertInput(input);
175
+ const families = [...input.palette.families].sort((a, b) => a.category.localeCompare(b.category) || a.name.localeCompare(b.name));
176
+ const categories = [...new Set(families.map((family) => family.category))].sort();
177
+ const materials = [];
178
+ const elements = [
179
+ { id: 'showcase.root', type: 'building', role: 'exterior', collision: true, residency: { mode: 'eager', priority: 100 } },
180
+ {
181
+ id: 'showcase.ground', parentId: 'showcase.root', type: 'primitive', shape: 'box',
182
+ materialId: 'polished-concrete.practical',
183
+ transform: { position: [0, -0.2, 0], rotation: [0, 0, 0, 1], scale: [1, 1, 1] },
184
+ size: [560, 0.4, 340],
185
+ },
186
+ {
187
+ id: 'spawn.palette', parentId: 'showcase.root', type: 'gameplay-anchor', anchor: 'spawn.palette',
188
+ transform: { position: [0, 0.4, 138], rotation: [0, 0, 0, 1], scale: [1, 1, 1] },
189
+ runtimeModule: input.runtime.reference,
190
+ },
191
+ {
192
+ id: 'light.sun', parentId: 'showcase.root', type: 'light', kind: 'directional', color: '#fff4e5', illuminanceLux: 3.1,
193
+ transform: { position: [30, 70, 24], rotation: [-0.31, 0.29, 0.1, 0.9], scale: [1, 1, 1] },
194
+ },
195
+ ];
196
+ for (const [categoryIndex, category] of categories.entries()) {
197
+ const pavilionX = (categoryIndex % 5 - 2) * 115;
198
+ const pavilionZ = (Math.floor(categoryIndex / 5) - 1) * 110;
199
+ const pavilionId = `gallery.${category}`;
200
+ const categoryFamilies = families.filter((family) => family.category === category);
201
+ const categoryRows = Math.ceil(categoryFamilies.length / 4);
202
+ elements.push({
203
+ id: pavilionId,
204
+ parentId: 'showcase.root',
205
+ type: 'group',
206
+ role: 'detail',
207
+ collision: false,
208
+ residency: { mode: 'distance', priority: categoryIndex < 6 ? 70 : 45 },
209
+ transform: { position: [pavilionX, 0, pavilionZ], rotation: [0, 0, 0, 1], scale: [1, 1, 1] },
210
+ });
211
+ elements.push({
212
+ id: `${pavilionId}.light`, parentId: pavilionId, type: 'light', kind: 'point', color: '#f3f7ff',
213
+ luminousIntensityCandela: 400, rangeM: 38,
214
+ transform: { position: [0, 10, 0], rotation: [0, 0, 0, 1], scale: [1, 1, 1] },
215
+ });
216
+ for (const [familyIndex, family] of categoryFamilies.entries()) {
217
+ const cellX = (familyIndex % 4 - 1.5) * 17;
218
+ const cellZ = (Math.floor(familyIndex / 4) - (categoryRows - 1) / 2) * 7.4;
219
+ const published = input.ledger.families[family.id];
220
+ const reference = published.versions[published.activeVersion].packageRef;
221
+ for (let variantIndex = 0; variantIndex < exports.PALETTE_SHOWCASE_VARIANTS.length; variantIndex += 1) {
222
+ const variantName = exports.PALETTE_SHOWCASE_VARIANTS[variantIndex];
223
+ const materialId = `${family.id}.${variantName}`;
224
+ const values = variation(family, variantIndex);
225
+ materials.push({
226
+ id: materialId,
227
+ sourcePackage: { ...reference },
228
+ description: {
229
+ semanticName: `${family.name} ${variantName}`,
230
+ roughness: family.shader.defaults.roughness,
231
+ metalness: family.shader.defaults.metallic,
232
+ opacityMode: values.opacity < 1 ? 'blend' : 'opaque',
233
+ maps: [],
234
+ shaderGraph: 'unknown',
235
+ },
236
+ binding: {
237
+ tint: values.tint,
238
+ roughnessScale: values.roughnessScale,
239
+ metallicScale: values.metallicScale,
240
+ normalScale: values.normalScale,
241
+ emissiveScale: values.emissiveScale,
242
+ opacity: values.opacity,
243
+ uv: { tiling: [values.tilingScale, values.tilingScale] },
244
+ },
245
+ });
246
+ const shape = displayShape(category, variantIndex);
247
+ elements.push({
248
+ id: `sample.${family.id}.${variantName}`,
249
+ parentId: pavilionId,
250
+ type: 'primitive',
251
+ shape,
252
+ materialId,
253
+ transform: {
254
+ position: [cellX + (variantIndex - 1.5) * 3.75, shape === 'box' ? 1.35 : 1.6, cellZ],
255
+ rotation: [0, 0, 0, 1],
256
+ scale: [1, 1, 1],
257
+ },
258
+ size: displaySize(shape),
259
+ });
260
+ }
261
+ }
262
+ }
263
+ const materialIds = new Set(materials.map((material) => material.id));
264
+ for (const exhibit of CONTEXT_EXHIBITS) {
265
+ const materialId = `${exhibit.familyId}.${exhibit.variant}`;
266
+ if (!materialIds.has(materialId)) {
267
+ throw new TypeError(`Context exhibit ${exhibit.id} requires missing Palette binding ${materialId}`);
268
+ }
269
+ elements.push({
270
+ id: `context.${exhibit.id}`,
271
+ parentId: `gallery.${exhibit.category}`,
272
+ type: 'primitive',
273
+ shape: exhibit.shape,
274
+ materialId,
275
+ transform: {
276
+ position: exhibit.position,
277
+ rotation: exhibit.rotation ?? [0, 0, 0, 1],
278
+ scale: [1, 1, 1],
279
+ },
280
+ size: exhibit.size,
281
+ });
282
+ }
283
+ const allClosures = [...input.materialClosures, input.runtime.closure]
284
+ .sort((a, b) => packageKey(a.package).localeCompare(packageKey(b.package)));
285
+ const sourceDigestSeed = (0, helix_manifest_1.canonicalJsonBytes)({
286
+ contract: 'helix.palette-showcase-source/1',
287
+ palette: input.palette.palette,
288
+ worldId: input.worldId,
289
+ projectId: input.projectId,
290
+ materials,
291
+ elements,
292
+ runtimeProfiles: paletteShowcaseRuntimeProfiles(),
293
+ });
294
+ return {
295
+ projectId: input.projectId,
296
+ sourceDigest: (0, node_crypto_1.createHash)('sha256').update(sourceDigestSeed).digest('hex'),
297
+ source: {
298
+ id: 'helix-palette-showcase',
299
+ title: 'HELIX Palette',
300
+ materials,
301
+ canonicalMaterialPackages: {},
302
+ elements,
303
+ },
304
+ compilation: {
305
+ packageId: (0, identity_1.deterministicContinuumUuid)('helix.palette.showcase.scene'),
306
+ version: exports.PALETTE_SHOWCASE_VERSION,
307
+ provenance: { kind: 'generated', source: `HELIX Palette ${input.palette.palette.version}`, sourceId: 'helix-palette-showcase' },
308
+ dependencyClosures: allClosures,
309
+ runtimeProfiles: paletteShowcaseRuntimeProfiles(),
310
+ gameplayPackages: [input.runtime.reference],
311
+ world: {
312
+ releaseId: (0, identity_1.deterministicContinuumUuid)(`helix.palette.showcase.release.${exports.PALETTE_SHOWCASE_VERSION}`),
313
+ worldId: input.worldId,
314
+ maxPlayers: 24,
315
+ contentRating: 'everyone',
316
+ requiredCapabilities: ['render.primitive/1'],
317
+ },
318
+ },
319
+ packagePublication: { slug: 'helix-palette-showcase', visibility: 'public' },
320
+ defaultRuntimeProfileId: exports.PALETTE_SHOWCASE_DEFAULT_PROFILE,
321
+ objects: [],
322
+ listings: [],
323
+ };
324
+ }
325
+ function createPaletteShowcaseRuntimePackage() {
326
+ const definitions = [
327
+ ['runtime', 'application/vnd.helix.runtime-module+json;version=1', 'runtime-module', { schema: 'helix.runtime-module/1', entry: 'palette.showcase.spawn', behavior: 'spawn-anchor' }],
328
+ ['publisher', 'application/vnd.helix.attestation+json', 'publisher-attestation', { schema: 'helix.attestation/1', kind: 'publisher', authority: 'HELIX' }],
329
+ ['source', 'application/vnd.helix.attestation+json', 'source-attestation', { schema: 'helix.attestation/1', kind: 'source', source: 'HELIX Palette Showcase' }],
330
+ ];
331
+ const objects = definitions.map(([name, mediaType, role, value]) => {
332
+ const bytes = (0, helix_manifest_1.canonicalJsonBytes)(value);
333
+ const reference = { cid: (0, helix_manifest_1.cidFromBytes)(bytes), bytes: bytes.byteLength, mediaType, role };
334
+ return { reference, source: { kind: 'inline', bytes, filename: `palette-showcase-${name}.json`, audience: 'public' } };
335
+ });
336
+ const pkg = {
337
+ schema: helix_manifest_1.CONTINUUM_PACKAGE_SCHEMA,
338
+ id: (0, identity_1.deterministicContinuumUuid)('helix.palette.showcase.runtime'),
339
+ type: 'runtime-module',
340
+ name: 'HELIX Palette Showcase Runtime',
341
+ };
342
+ const packageVersion = {
343
+ schema: helix_manifest_1.CONTINUUM_PACKAGE_VERSION_SCHEMA,
344
+ package: { id: pkg.id, type: pkg.type },
345
+ version: exports.PALETTE_SHOWCASE_VERSION,
346
+ root: objects[0].reference,
347
+ dependencies: [],
348
+ variants: [],
349
+ compatibility: { contract: 'helix.runtime-module/1', requires: [], provides: ['spawn-anchor/1'] },
350
+ provenance: { kind: 'authored', source: 'HELIX Palette Showcase', sourceId: 'palette.showcase.spawn' },
351
+ expectedClosure: {
352
+ objectCount: objects.length,
353
+ totalBytes: objects.reduce((sum, object) => sum + object.reference.bytes, 0),
354
+ },
355
+ runtimeModule: {
356
+ kind: 'system',
357
+ targets: ['client-worker'],
358
+ capabilities: { required: [], optional: [] },
359
+ budget: { memoryMiB: 8, cpuMsPerTick: 1, stateBytes: 4096, networkBytesPerSecond: 1024 },
360
+ publisherAttestation: objects[1].reference,
361
+ sourceAttestation: objects[2].reference,
362
+ },
363
+ };
364
+ const reference = {
365
+ packageId: pkg.id,
366
+ version: packageVersion.version,
367
+ manifestCid: (0, helix_manifest_1.continuumPackageVersionCid)(packageVersion),
368
+ };
369
+ const closure = { package: reference, root: packageVersion.root, objects: objects.map((object) => object.reference) };
370
+ return { package: pkg, packageVersion, reference, closure, objects };
371
+ }
372
+ //# sourceMappingURL=paletteShowcase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paletteShowcase.js","sourceRoot":"","sources":["../src/paletteShowcase.ts"],"names":[],"mappings":"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"}