@helix3/helix-cli 0.1.18-helix3.301 → 0.1.18-helix3.308
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 +15 -0
- package/bridge-recipes/sims4/README.md +43 -0
- package/bridge-recipes/sims4/sims4-female-bone-map.json +65 -0
- package/dist/addOnPackageVersion.js +3 -0
- package/dist/addOnPackageVersion.js.map +1 -1
- package/dist/bridge/characterAddon.d.ts +4 -7
- package/dist/bridge/characterAddon.js.map +1 -1
- package/dist/bridge/internal/builtInExecution.js +8 -0
- package/dist/bridge/internal/builtInExecution.js.map +1 -1
- package/dist/character/avatarPreflight.d.ts +4 -1
- package/dist/character/avatarPreflight.js +13 -2
- package/dist/character/avatarPreflight.js.map +1 -1
- package/dist/character/baseColorGuard.d.ts +62 -0
- package/dist/character/baseColorGuard.js +141 -0
- package/dist/character/baseColorGuard.js.map +1 -0
- package/dist/character/bodyGeometryGuard.d.ts +8 -1
- package/dist/character/bodyGeometryGuard.js +1 -0
- package/dist/character/bodyGeometryGuard.js.map +1 -1
- package/dist/character/importCharacter.d.ts +10 -7
- package/dist/character/importCharacter.js +136 -92
- package/dist/character/importCharacter.js.map +1 -1
- package/dist/character/slotBudgets.d.ts +37 -0
- package/dist/character/slotBudgets.generated.d.ts +15 -0
- package/dist/character/slotBudgets.generated.js +110 -0
- package/dist/character/slotBudgets.generated.js.map +1 -0
- package/dist/character/slotBudgets.js +45 -0
- package/dist/character/slotBudgets.js.map +1 -0
- package/dist/character/testutil/slotBudgetExpectations.d.ts +11 -0
- package/dist/character/testutil/slotBudgetExpectations.js +21 -0
- package/dist/character/testutil/slotBudgetExpectations.js.map +1 -0
- package/dist/character/unrealMaterialSidecar.d.ts +10 -1
- package/dist/character/unrealMaterialSidecar.js +58 -9
- package/dist/character/unrealMaterialSidecar.js.map +1 -1
- package/dist/index.js +44 -4
- package/dist/index.js.map +1 -1
- package/dist/item.d.ts +8 -0
- package/dist/item.js +30 -0
- package/dist/item.js.map +1 -1
- package/dist/lib.js +18 -2
- package/dist/lib.js.map +1 -1
- package/dist/pack/publish.d.ts +9 -0
- package/dist/pack/publish.js +2 -0
- package/dist/pack/publish.js.map +1 -1
- package/dist/pack/scaffold.js +6 -2
- package/dist/pack/scaffold.js.map +1 -1
- package/dist/publishDuplicateGuard.d.ts +25 -6
- package/dist/publishDuplicateGuard.js +39 -5
- package/dist/publishDuplicateGuard.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -1
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_abs.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_expression.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_jbeam.cpython-312.pyc +0 -0
- package/plugins/beamng-vehicle/bin/__pycache__/beamng_materials.cpython-312.pyc +0 -0
package/README.md
CHANGED
|
@@ -590,6 +590,21 @@ route also has a stable key, which world code passes to
|
|
|
590
590
|
cap; free Collectibles default to one per player when omitted. Distribution changes never republish
|
|
591
591
|
the definition.
|
|
592
592
|
|
|
593
|
+
**An `--kind add_on` publish must carry a Marketplace route.** An add-on with none is still a live,
|
|
594
|
+
fitting item — but the customizer's compatibility list keeps an unowned part only when the row
|
|
595
|
+
carries a Marketplace `distributionId`, so a route-less add-on is invisible to every player who does
|
|
596
|
+
not already own it. Naming a price is enough (`marketplace` is the implied channel); pass
|
|
597
|
+
`--no-marketplace` only when the part is deliberately unlisted (world-only, or not for sale).
|
|
598
|
+
|
|
599
|
+
```bash
|
|
600
|
+
# Add-on, free Marketplace Claim — the route is what makes it appear in the customizer
|
|
601
|
+
helix item publish ./cargo.glb --kind add_on --slot Cosmetic.Slot.Clothing.Bottoms \
|
|
602
|
+
--fits ./fits.json --ops ./ops.json --distribution-price-lix 0
|
|
603
|
+
|
|
604
|
+
# Add-on deliberately kept off the Marketplace
|
|
605
|
+
helix item publish ./cargo.glb --kind add_on --fits ./fits.json --ops ./ops.json --no-marketplace
|
|
606
|
+
```
|
|
607
|
+
|
|
593
608
|
```bash
|
|
594
609
|
# Standard, free Marketplace Claim
|
|
595
610
|
helix item publish ./postcard.glb --title "Harbor Postcard"
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Sims 4 bridge recipes
|
|
2
|
+
|
|
3
|
+
## `sims4-female-bone-map.json`
|
|
4
|
+
|
|
5
|
+
Maps the **Katverse Sims 4 adult rig** (`b__*__` source joint names) onto HELIX's
|
|
6
|
+
`helix-humanoid@1`. Pass it as the `boneMap` input:
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
# base avatar
|
|
10
|
+
helix bridge import AdultFemale-base.glb --type character --target web \
|
|
11
|
+
--input boneMap=bridge-recipes/sims4/sims4-female-bone-map.json -o out
|
|
12
|
+
|
|
13
|
+
# a garment fitted to that base
|
|
14
|
+
helix bridge import <wearable.glb> --type addon --target web \
|
|
15
|
+
--input host=<base.web.glb> --input addon=<profile.json> \
|
|
16
|
+
--map bridge-recipes/sims4/sims4-female-bone-map.json -o out
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**This file is byte-identical to the map that produced the live catalogue asset**
|
|
20
|
+
"Sims 4 Adult Female Base" (`7432ef62-332a-490a-87d4-2e51cef6c951`):
|
|
21
|
+
sha256 `9ba65385b6286a59fd58a0cf2efac063297369c5fe2c397a62de1df0a6cb9241`. Keep it that way —
|
|
22
|
+
changing a byte changes the base a garment binds to.
|
|
23
|
+
|
|
24
|
+
59 entries, no `anchors` key. The donor rig has 165 bones; the 106 unmapped ones are
|
|
25
|
+
corrective/helper joints (skin-slide targets, eye/brow/mouth sliders) that fold onto the
|
|
26
|
+
59 canonical joints.
|
|
27
|
+
|
|
28
|
+
## The male rig uses this same map
|
|
29
|
+
|
|
30
|
+
The male donor (`files.katverse.com/Sim4Rigs/AdultMale.zip`) has **165 bones, name-for-name
|
|
31
|
+
identical** to the female donor — 0 male-only, 0 female-only, identical hierarchy and root.
|
|
32
|
+
All 59 entries resolve on both. A Sims 4 male base needs a **new base Item**, not a new map.
|
|
33
|
+
|
|
34
|
+
## Known limitation — head-local slots
|
|
35
|
+
|
|
36
|
+
This map produces a **68-joint** skeleton with **no face root**. HELIX's own bases carry 69
|
|
37
|
+
(68 body + `FACIAL_C_FacialRoot`), and the backend requires that joint for every head-local
|
|
38
|
+
slot (`character.hair`, `headwear`, `eyewear`, `mask`, `earrings`, `brows`, `lashes`,
|
|
39
|
+
`facial_hair`) — see `helix-backend-api/.../asset-verification.ts:1646-1650`. So hair, hats,
|
|
40
|
+
glasses and masks **cannot publish against a base built from this map** until the base gains a
|
|
41
|
+
face root. Body clothing (top/bottom/outfit/footwear/socks/gloves) is unaffected.
|
|
42
|
+
|
|
43
|
+
Verify a fresh base's joint count after import; a 68-joint result is the defect to look for.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "sims4-to-helix",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"map": {
|
|
5
|
+
"b__ROOT__": "root",
|
|
6
|
+
"b__Pelvis__": "pelvis",
|
|
7
|
+
"b__Spine0__": "spine_01",
|
|
8
|
+
"b__Spine1__": "spine_02",
|
|
9
|
+
"b__Spine2__": "spine_03",
|
|
10
|
+
"b__Neck__": "neck_01",
|
|
11
|
+
"b__Head__": "head",
|
|
12
|
+
"b__L_Thigh__": "thigh_l",
|
|
13
|
+
"b__R_Thigh__": "thigh_r",
|
|
14
|
+
"b__L_ThighTwist__": "thigh_twist_01_l",
|
|
15
|
+
"b__R_ThighTwist__": "thigh_twist_01_r",
|
|
16
|
+
"b__L_Calf__": "calf_l",
|
|
17
|
+
"b__R_Calf__": "calf_r",
|
|
18
|
+
"b__L_Foot__": "foot_l",
|
|
19
|
+
"b__R_Foot__": "foot_r",
|
|
20
|
+
"b__L_Toe__": "ball_l",
|
|
21
|
+
"b__R_Toe__": "ball_r",
|
|
22
|
+
"b__L_Clavicle__": "clavicle_l",
|
|
23
|
+
"b__R_Clavicle__": "clavicle_r",
|
|
24
|
+
"b__L_UpperArm__": "upperarm_l",
|
|
25
|
+
"b__R_UpperArm__": "upperarm_r",
|
|
26
|
+
"b__L_ShoulderTwist__": "upperarm_twist_01_l",
|
|
27
|
+
"b__R_ShoulderTwist__": "upperarm_twist_01_r",
|
|
28
|
+
"b__L_Forearm__": "lowerarm_l",
|
|
29
|
+
"b__R_Forearm__": "lowerarm_r",
|
|
30
|
+
"b__L_ForearmTwist__": "lowerarm_twist_01_l",
|
|
31
|
+
"b__R_ForearmTwist__": "lowerarm_twist_01_r",
|
|
32
|
+
"b__L_Hand__": "hand_l",
|
|
33
|
+
"b__R_Hand__": "hand_r",
|
|
34
|
+
"b__L_Thumb0__": "thumb_01_l",
|
|
35
|
+
"b__L_Thumb1__": "thumb_02_l",
|
|
36
|
+
"b__L_Thumb2__": "thumb_03_l",
|
|
37
|
+
"b__R_Thumb0__": "thumb_01_r",
|
|
38
|
+
"b__R_Thumb1__": "thumb_02_r",
|
|
39
|
+
"b__R_Thumb2__": "thumb_03_r",
|
|
40
|
+
"b__L_Index0__": "index_01_l",
|
|
41
|
+
"b__L_Index1__": "index_02_l",
|
|
42
|
+
"b__L_Index2__": "index_03_l",
|
|
43
|
+
"b__R_Index0__": "index_01_r",
|
|
44
|
+
"b__R_Index1__": "index_02_r",
|
|
45
|
+
"b__R_Index2__": "index_03_r",
|
|
46
|
+
"b__L_Mid0__": "middle_01_l",
|
|
47
|
+
"b__L_Mid1__": "middle_02_l",
|
|
48
|
+
"b__L_Mid2__": "middle_03_l",
|
|
49
|
+
"b__R_Mid0__": "middle_01_r",
|
|
50
|
+
"b__R_Mid1__": "middle_02_r",
|
|
51
|
+
"b__R_Mid2__": "middle_03_r",
|
|
52
|
+
"b__L_Ring0__": "ring_01_l",
|
|
53
|
+
"b__L_Ring1__": "ring_02_l",
|
|
54
|
+
"b__L_Ring2__": "ring_03_l",
|
|
55
|
+
"b__R_Ring0__": "ring_01_r",
|
|
56
|
+
"b__R_Ring1__": "ring_02_r",
|
|
57
|
+
"b__R_Ring2__": "ring_03_r",
|
|
58
|
+
"b__L_Pinky0__": "pinky_01_l",
|
|
59
|
+
"b__L_Pinky1__": "pinky_02_l",
|
|
60
|
+
"b__L_Pinky2__": "pinky_03_l",
|
|
61
|
+
"b__R_Pinky0__": "pinky_01_r",
|
|
62
|
+
"b__R_Pinky1__": "pinky_02_r",
|
|
63
|
+
"b__R_Pinky2__": "pinky_03_r"
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.publishAddOnPackageVersion = publishAddOnPackageVersion;
|
|
4
|
+
const baseColorGuard_1 = require("./character/baseColorGuard");
|
|
4
5
|
const promises_1 = require("node:fs/promises");
|
|
5
6
|
const node_path_1 = require("node:path");
|
|
6
7
|
const api_1 = require("./api");
|
|
@@ -43,6 +44,8 @@ async function publishAddOnPackageVersion(itemId, file, options, credentials) {
|
|
|
43
44
|
if (bytes.length > MAX_ADDON_WEB_GLB_BYTES) {
|
|
44
45
|
throw new Error(`"${file}" is ${(bytes.length / (1024 * 1024)).toFixed(1)} MiB; an add-on's web GLB must be at most ${MAX_ADDON_WEB_GLB_BYTES / (1024 * 1024)} MiB.`);
|
|
45
46
|
}
|
|
47
|
+
// Nothing else on this path reads a pixel of the albedo; a normal map bound as baseColor ships to every owner.
|
|
48
|
+
await (0, baseColorGuard_1.assertGlbBaseColorIsAlbedo)(bytes, file);
|
|
46
49
|
const progress = options.onProgress ?? (() => { });
|
|
47
50
|
const api = api_1.HelixApi.forCredentials(credentials);
|
|
48
51
|
const filename = (0, node_path_1.basename)(file);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addOnPackageVersion.js","sourceRoot":"","sources":["../src/addOnPackageVersion.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"addOnPackageVersion.js","sourceRoot":"","sources":["../src/addOnPackageVersion.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,13 +14,10 @@ export interface BridgeCharacterAddonProfile {
|
|
|
14
14
|
fits: Record<string, unknown>;
|
|
15
15
|
ops: Record<string, unknown>[];
|
|
16
16
|
/**
|
|
17
|
-
* Per-LOD triangle targets, high->low,
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* past its slot's real cap conforms cleanly but is rejected at publish. Only lets an author state
|
|
22
|
-
* the same override `character import --lod-tris` already accepts on the plain (non-addon) path;
|
|
23
|
-
* it is not the automatic per-slot enforcement `batch-backlog.md` #2 still wants.
|
|
17
|
+
* Per-LOD triangle targets, high->low. Optional: without it, conform aims at this slot's own server-side
|
|
18
|
+
* ceiling automatically (`character/slotBudgets.ts` — combined triangles across LODs, generated from the
|
|
19
|
+
* backend's `CHARACTER_ADD_ON_SLOT_TIERS`). With it (#218), these exact targets are used — and the packaged
|
|
20
|
+
* result is still held to the slot's ceiling, failing conform instead of failing at publish.
|
|
24
21
|
*/
|
|
25
22
|
lodTris?: number[];
|
|
26
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"characterAddon.js","sourceRoot":"","sources":["../../src/bridge/characterAddon.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"characterAddon.js","sourceRoot":"","sources":["../../src/bridge/characterAddon.ts"],"names":[],"mappings":"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"}
|
|
@@ -295,6 +295,10 @@ async function executeCharacterAddon(plan, outputDir, options, sourcePath) {
|
|
|
295
295
|
// instead of shipping an over-cap GLB that only fails later at `helix item publish`. See
|
|
296
296
|
// `unifyMaterial.ts`'s header for why rebind-onto-dominant is the right pragmatic fix here.
|
|
297
297
|
maxMaterials: WEARABLE_LIMITS.maxMaterials,
|
|
298
|
+
// Aim LOD generation at — and verify against — the ceiling the server applies to THIS slot at publish
|
|
299
|
+
// (combined triangles across LODs, materials, texture edge; see character/slotBudgets.ts). A profile's
|
|
300
|
+
// explicit `lodTris` (#218) still wins as the targets, and is still held to the slot's ceiling.
|
|
301
|
+
slotType: profile.slotType,
|
|
298
302
|
...(profile.slotType === 'character.hair@1' ? { pushOut: false } : {}),
|
|
299
303
|
// Pose-aware poke-through fit, scoped to exactly the regions this slot is granted to cover (the same
|
|
300
304
|
// scope the poke-through check judges it by). Hair rests on the scalp by design — never pushed away.
|
|
@@ -323,6 +327,10 @@ async function executeCharacterAddon(plan, outputDir, options, sourcePath) {
|
|
|
323
327
|
else {
|
|
324
328
|
await assertNoLeftoverBodyGeometry(guardDoc, { slotType: profile.slotType });
|
|
325
329
|
}
|
|
330
|
+
// A baseColor that is a tangent-space NORMAL map renders the whole add-on flat lavender; nothing above
|
|
331
|
+
// reads a pixel of the albedo, so this is the checkpoint that does (see baseColorGuard.ts).
|
|
332
|
+
const { assertBaseColorIsAlbedo } = await Promise.resolve().then(() => __importStar(require('../../character/baseColorGuard')));
|
|
333
|
+
await assertBaseColorIsAlbedo(guardDoc, `character add-on ${profile.slug}`);
|
|
326
334
|
}
|
|
327
335
|
const descriptorPath = (0, node_path_1.join)(outputDir, 'bridge-character-addon.json');
|
|
328
336
|
await (0, promises_1.writeFile)(descriptorPath, `${JSON.stringify({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtInExecution.js","sourceRoot":"","sources":["../../../src/bridge/internal/builtInExecution.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"builtInExecution.js","sourceRoot":"","sources":["../../../src/bridge/internal/builtInExecution.ts"],"names":[],"mappings":"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"}
|
|
@@ -84,6 +84,9 @@ export interface AvatarPreflightResult {
|
|
|
84
84
|
firstPersonHide: number | null;
|
|
85
85
|
};
|
|
86
86
|
}
|
|
87
|
-
export declare function preflightAvatar(buffer: Buffer, kind?: PreflightKind
|
|
87
|
+
export declare function preflightAvatar(buffer: Buffer, kind?: PreflightKind,
|
|
88
|
+
/** A NEW character add-on's slot type: narrows the add-on ceiling to that slot's server-side tier
|
|
89
|
+
* (`slotBudgets.ts`, generated from the backend's own table). */
|
|
90
|
+
characterSlotType?: string): AvatarPreflightResult;
|
|
88
91
|
/** One line per finding, plus the capability line, for the CLI's own output. */
|
|
89
92
|
export declare function formatPreflight(result: AvatarPreflightResult): string;
|
|
@@ -4,6 +4,7 @@ exports.DRAW_CALL_LIMITS = exports.HOME_ITEM_LIMITS = exports.WEAPON_LIMITS = ex
|
|
|
4
4
|
exports.preflightAvatar = preflightAvatar;
|
|
5
5
|
exports.formatPreflight = formatPreflight;
|
|
6
6
|
const glb_1 = require("../glb");
|
|
7
|
+
const slotBudgets_1 = require("./slotBudgets");
|
|
7
8
|
/**
|
|
8
9
|
* WHAT THE PLATFORM WILL SAY ABOUT THIS AVATAR, SAID HERE INSTEAD.
|
|
9
10
|
*
|
|
@@ -172,8 +173,18 @@ function describeDrawCallOverage(breakdown, limit, kind) {
|
|
|
172
173
|
+ 'to send it and let the server decide.');
|
|
173
174
|
return lines.join('\n');
|
|
174
175
|
}
|
|
175
|
-
function preflightAvatar(buffer, kind = 'avatar'
|
|
176
|
-
|
|
176
|
+
function preflightAvatar(buffer, kind = 'avatar',
|
|
177
|
+
/** A NEW character add-on's slot type: narrows the add-on ceiling to that slot's server-side tier
|
|
178
|
+
* (`slotBudgets.ts`, generated from the backend's own table). */
|
|
179
|
+
characterSlotType) {
|
|
180
|
+
const base = LIMITS_BY_KIND[kind] ?? exports.HOME_ITEM_LIMITS;
|
|
181
|
+
const tier = kind === 'add_on' && characterSlotType ? (0, slotBudgets_1.characterAddOnBudget)(characterSlotType) : null;
|
|
182
|
+
const limits = tier === null ? base : {
|
|
183
|
+
...base,
|
|
184
|
+
maxTriangles: Math.min(base.maxTriangles, tier.maxTriangles),
|
|
185
|
+
maxMaterials: Math.min(base.maxMaterials, tier.maxMaterials),
|
|
186
|
+
maxTextureEdge: Math.min(base.maxTextureEdge, tier.maxTextureEdge),
|
|
187
|
+
};
|
|
177
188
|
const summary = (0, glb_1.summarizeGlb)(buffer);
|
|
178
189
|
const extras = readSceneExtras(buffer);
|
|
179
190
|
const findings = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatarPreflight.js","sourceRoot":"","sources":["../../src/character/avatarPreflight.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"avatarPreflight.js","sourceRoot":"","sources":["../../src/character/avatarPreflight.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Refuse a GLB whose `baseColorTexture` is a tangent-space NORMAL map.
|
|
3
|
+
*
|
|
4
|
+
* ── THE DEFECT (live 2026-09-29/30, 17 Cyberpunk add-ons) ───────────────────────────────────────────
|
|
5
|
+
* Cyberpunk 2077 garments carry no albedo image at all: their colour is the composite of a 20-layer
|
|
6
|
+
* "Multilayered" shader (mask atlas x per-layer tints x shared microblend textures). Blender's glTF exporter
|
|
7
|
+
* cannot evaluate that node group, so it walks the graph and binds the first image it can reach — a shared
|
|
8
|
+
* microblend NORMAL map (`dirt_stains`, `dust_fine`, `default`) — as `baseColorTexture`. Every garment that
|
|
9
|
+
* took that path rendered flat lavender (RGB ~128,128,255, a tangent normal map's "straight up") in the
|
|
10
|
+
* catalogue thumbnail, and near-black with specular speckle in the 3D preview where the same image also sat in
|
|
11
|
+
* `metallicRoughnessTexture`.
|
|
12
|
+
*
|
|
13
|
+
* ── WHY EVERY EXISTING GATE PASSED IT ───────────────────────────────────────────────────────────────
|
|
14
|
+
* `helix bridge validate`, `helix item publish --dry-run`, the draw-call / triangle / material / texture-size
|
|
15
|
+
* budgets, the leftover-body-geometry guard, the pose-aware fit, the skeleton checks and the engine bind check
|
|
16
|
+
* are all structural or budget-based. None of them reads a pixel of the albedo, so "valid glTF, correct
|
|
17
|
+
* skeleton, under budget" was true of a model that could not possibly look right. The only one that samples
|
|
18
|
+
* the albedo (`bodyGeometryGuard`) does so to find untextured *islands*, not to ask whether the image is a colour.
|
|
19
|
+
*
|
|
20
|
+
* ── THE TESTS (any one refuses) ─────────────────────────────────────────────────────────────────────────
|
|
21
|
+
* IDENTITY the baseColor image bytes are identical to the same material's normal / metallicRoughness /
|
|
22
|
+
* occlusion image. A colour map is never the same file as its own normal map. (Only fires on
|
|
23
|
+
* un-packaged PNG/JPEG: KTX2 encoding writes a colour and a linear copy of one source with
|
|
24
|
+
* different bytes, so on a bridge-packaged file CONTENT is the rule that carries the weight.)
|
|
25
|
+
* CONTENT the decoded pixels have a tangent normal map's signature: mean R,G within 14 of 128, mean B
|
|
26
|
+
* above 215, and R/G spread under 22. Real normal maps cluster tightly around (128,128,255) because
|
|
27
|
+
* most of a surface faces its own normal; a real albedo with that colour AND that flatness is a
|
|
28
|
+
* solid periwinkle fill, which belongs in `baseColorFactor`, not in a texture.
|
|
29
|
+
* A texture that cannot be decoded is reported as UNCHECKED and does NOT refuse (a gap in this checker must not
|
|
30
|
+
* become a creator's dead end — same precedent as the mesh preflight), but it is surfaced to the caller.
|
|
31
|
+
*
|
|
32
|
+
* Escape hatch for a genuine periwinkle fill: `HELIX_ALLOW_NORMAL_MAP_BASE_COLOR=1`.
|
|
33
|
+
*/
|
|
34
|
+
import type { Document } from '@gltf-transform/core';
|
|
35
|
+
export interface BaseColorFinding {
|
|
36
|
+
material: string;
|
|
37
|
+
texture: string;
|
|
38
|
+
reason: 'identity' | 'content';
|
|
39
|
+
detail: string;
|
|
40
|
+
}
|
|
41
|
+
export interface BaseColorReport {
|
|
42
|
+
findings: BaseColorFinding[];
|
|
43
|
+
/** Materials whose baseColor image could not be decoded, so no content verdict was possible. */
|
|
44
|
+
unchecked: string[];
|
|
45
|
+
}
|
|
46
|
+
export declare const NORMAL_MAP_MEAN_TOLERANCE = 14;
|
|
47
|
+
export declare const NORMAL_MAP_MIN_BLUE_MEAN = 215;
|
|
48
|
+
export declare const NORMAL_MAP_MAX_RG_STDEV = 22;
|
|
49
|
+
export declare function inspectBaseColor(document: Document): Promise<BaseColorReport>;
|
|
50
|
+
export declare function describeBaseColorFindings(findings: readonly BaseColorFinding[]): string;
|
|
51
|
+
/** Throws with an itemized report when any material's baseColorTexture is a normal map. */
|
|
52
|
+
export declare function assertBaseColorIsAlbedo(document: Document, label?: string): Promise<BaseColorReport>;
|
|
53
|
+
/** Convenience for callers that hold GLB bytes rather than a Document. */
|
|
54
|
+
export declare function assertGlbBaseColorIsAlbedo(glb: Uint8Array, label?: string): Promise<BaseColorReport>;
|
|
55
|
+
/**
|
|
56
|
+
* Refuse (throw) when a character-surface GLB binds a tangent-space normal map as its base colour. Shared by the
|
|
57
|
+
* real publish and `--dry-run`, so the gate that is run before paying the fee is the same one that runs at it.
|
|
58
|
+
*/
|
|
59
|
+
export declare function assertPublishBaseColor(opts: {
|
|
60
|
+
kind: string;
|
|
61
|
+
mesh?: string;
|
|
62
|
+
}, meshBytes: Uint8Array | null | undefined): Promise<void>;
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NORMAL_MAP_MAX_RG_STDEV = exports.NORMAL_MAP_MIN_BLUE_MEAN = exports.NORMAL_MAP_MEAN_TOLERANCE = void 0;
|
|
4
|
+
exports.inspectBaseColor = inspectBaseColor;
|
|
5
|
+
exports.describeBaseColorFindings = describeBaseColorFindings;
|
|
6
|
+
exports.assertBaseColorIsAlbedo = assertBaseColorIsAlbedo;
|
|
7
|
+
exports.assertGlbBaseColorIsAlbedo = assertGlbBaseColorIsAlbedo;
|
|
8
|
+
exports.assertPublishBaseColor = assertPublishBaseColor;
|
|
9
|
+
const core_1 = require("@gltf-transform/core");
|
|
10
|
+
const extensions_1 = require("@gltf-transform/extensions");
|
|
11
|
+
const node_crypto_1 = require("node:crypto");
|
|
12
|
+
const bodyGeometryGuard_1 = require("./bodyGeometryGuard");
|
|
13
|
+
exports.NORMAL_MAP_MEAN_TOLERANCE = 14;
|
|
14
|
+
exports.NORMAL_MAP_MIN_BLUE_MEAN = 215;
|
|
15
|
+
exports.NORMAL_MAP_MAX_RG_STDEV = 22;
|
|
16
|
+
const sha1 = (bytes) => (0, node_crypto_1.createHash)('sha1').update(bytes).digest('hex');
|
|
17
|
+
function materialLabel(material, index) {
|
|
18
|
+
return material.getName() || `material[${index}]`;
|
|
19
|
+
}
|
|
20
|
+
async function inspectBaseColor(document) {
|
|
21
|
+
const findings = [];
|
|
22
|
+
const unchecked = [];
|
|
23
|
+
const materials = document.getRoot().listMaterials();
|
|
24
|
+
for (let index = 0; index < materials.length; index += 1) {
|
|
25
|
+
const material = materials[index];
|
|
26
|
+
const base = material.getBaseColorTexture();
|
|
27
|
+
if (!base)
|
|
28
|
+
continue;
|
|
29
|
+
const label = materialLabel(material, index);
|
|
30
|
+
const textureName = base.getName() || '(unnamed)';
|
|
31
|
+
const baseImage = base.getImage();
|
|
32
|
+
if (baseImage) {
|
|
33
|
+
const baseHash = sha1(baseImage);
|
|
34
|
+
for (const [slot, texture] of [
|
|
35
|
+
['normal', material.getNormalTexture()],
|
|
36
|
+
['metallicRoughness', material.getMetallicRoughnessTexture()],
|
|
37
|
+
['occlusion', material.getOcclusionTexture()],
|
|
38
|
+
]) {
|
|
39
|
+
const image = texture?.getImage();
|
|
40
|
+
if (image && sha1(image) === baseHash) {
|
|
41
|
+
findings.push({
|
|
42
|
+
material: label,
|
|
43
|
+
texture: textureName,
|
|
44
|
+
reason: 'identity',
|
|
45
|
+
detail: `baseColor image is byte-identical to this material's ${slot} image (${texture?.getName() || 'unnamed'})`,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
let decoded = null;
|
|
51
|
+
try {
|
|
52
|
+
decoded = await (0, bodyGeometryGuard_1.decodeMaterialBaseColor)(material);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
decoded = null;
|
|
56
|
+
}
|
|
57
|
+
if (!decoded) {
|
|
58
|
+
unchecked.push(label);
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
const { data, width, height } = decoded;
|
|
62
|
+
const n = width * height;
|
|
63
|
+
let used = 0;
|
|
64
|
+
const mean = [0, 0, 0];
|
|
65
|
+
for (let i = 0; i < n; i += 1) {
|
|
66
|
+
if (data[i * 4 + 3] < 8)
|
|
67
|
+
continue;
|
|
68
|
+
used += 1;
|
|
69
|
+
for (let c = 0; c < 3; c += 1)
|
|
70
|
+
mean[c] += data[i * 4 + c];
|
|
71
|
+
}
|
|
72
|
+
if (used === 0)
|
|
73
|
+
continue;
|
|
74
|
+
for (let c = 0; c < 3; c += 1)
|
|
75
|
+
mean[c] /= used;
|
|
76
|
+
let sumR = 0;
|
|
77
|
+
let sumG = 0;
|
|
78
|
+
for (let i = 0; i < n; i += 1) {
|
|
79
|
+
if (data[i * 4 + 3] < 8)
|
|
80
|
+
continue;
|
|
81
|
+
sumR += (data[i * 4] - mean[0]) ** 2;
|
|
82
|
+
sumG += (data[i * 4 + 1] - mean[1]) ** 2;
|
|
83
|
+
}
|
|
84
|
+
const stdR = Math.sqrt(sumR / used);
|
|
85
|
+
const stdG = Math.sqrt(sumG / used);
|
|
86
|
+
if (Math.abs(mean[0] - 128) < exports.NORMAL_MAP_MEAN_TOLERANCE &&
|
|
87
|
+
Math.abs(mean[1] - 128) < exports.NORMAL_MAP_MEAN_TOLERANCE &&
|
|
88
|
+
mean[2] > exports.NORMAL_MAP_MIN_BLUE_MEAN &&
|
|
89
|
+
stdR < exports.NORMAL_MAP_MAX_RG_STDEV &&
|
|
90
|
+
stdG < exports.NORMAL_MAP_MAX_RG_STDEV) {
|
|
91
|
+
findings.push({
|
|
92
|
+
material: label,
|
|
93
|
+
texture: textureName,
|
|
94
|
+
reason: 'content',
|
|
95
|
+
detail: `baseColor pixels are a tangent-space normal map (mean RGB ${mean.map((v) => v.toFixed(0)).join(',')}, ` +
|
|
96
|
+
`R/G stdev ${stdR.toFixed(1)}/${stdG.toFixed(1)}; a normal map is ~128,128,255)`,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return { findings, unchecked };
|
|
101
|
+
}
|
|
102
|
+
function describeBaseColorFindings(findings) {
|
|
103
|
+
return findings.map((f) => ` - material "${f.material}", texture "${f.texture}": ${f.reason.toUpperCase()} — ${f.detail}`).join('\n');
|
|
104
|
+
}
|
|
105
|
+
/** Throws with an itemized report when any material's baseColorTexture is a normal map. */
|
|
106
|
+
async function assertBaseColorIsAlbedo(document, label = 'this GLB') {
|
|
107
|
+
const report = await inspectBaseColor(document);
|
|
108
|
+
if (report.findings.length === 0 || process.env.HELIX_ALLOW_NORMAL_MAP_BASE_COLOR === '1')
|
|
109
|
+
return report;
|
|
110
|
+
throw new Error(`Refusing ${label}: ${report.findings.length} material(s) use a NORMAL MAP as their base colour, so the model will ` +
|
|
111
|
+
`render as flat lavender (RGB ~128,128,255) instead of its real colours.\n` +
|
|
112
|
+
`${describeBaseColorFindings(report.findings)}\n` +
|
|
113
|
+
`This is the exporter binding the wrong image: the albedo was never baked (e.g. a procedural / layered shader ` +
|
|
114
|
+
`that Blender cannot export). Bake the diffuse colour into a texture and bind THAT as baseColor. ` +
|
|
115
|
+
`If this really is a solid periwinkle fill, set HELIX_ALLOW_NORMAL_MAP_BASE_COLOR=1 (better: use baseColorFactor).`);
|
|
116
|
+
}
|
|
117
|
+
/** Convenience for callers that hold GLB bytes rather than a Document. */
|
|
118
|
+
async function assertGlbBaseColorIsAlbedo(glb, label) {
|
|
119
|
+
let document;
|
|
120
|
+
try {
|
|
121
|
+
document = await new core_1.NodeIO().registerExtensions(extensions_1.ALL_EXTENSIONS).readBinary(glb);
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
// A container this reader cannot walk is the server's call to make (same precedent as the mesh preflight):
|
|
125
|
+
// report it as unchecked, never refuse on a gap in this checker.
|
|
126
|
+
return { findings: [], unchecked: ['(glTF could not be parsed locally)'] };
|
|
127
|
+
}
|
|
128
|
+
return assertBaseColorIsAlbedo(document, label);
|
|
129
|
+
}
|
|
130
|
+
/** Kinds whose GLB is a worn/avatar surface, where a normal map as albedo is always wrong and always visible. */
|
|
131
|
+
const BASE_COLOR_GUARDED_KINDS = new Set(['add_on', 'wearable', 'avatar']);
|
|
132
|
+
/**
|
|
133
|
+
* Refuse (throw) when a character-surface GLB binds a tangent-space normal map as its base colour. Shared by the
|
|
134
|
+
* real publish and `--dry-run`, so the gate that is run before paying the fee is the same one that runs at it.
|
|
135
|
+
*/
|
|
136
|
+
async function assertPublishBaseColor(opts, meshBytes) {
|
|
137
|
+
if (!meshBytes || !BASE_COLOR_GUARDED_KINDS.has(opts.kind))
|
|
138
|
+
return;
|
|
139
|
+
await assertGlbBaseColorIsAlbedo(meshBytes, opts.mesh ?? 'the mesh');
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=baseColorGuard.js.map
|