Talk to sales → TCO Analysis →

OpenUSD model pack specification

This document defines the OpenUSD model pack: the single .usdc file that represents one MDCX product model — or one partner unit such as a chiller, BESS or switchgear — in the CIOS digital twin, in design coordination and in public downloads. The same rules apply to MDCX exports and to supplier deliveries; there is no separate "marketing" USD format.

Status: v1.0 · 2026-09-22 · Supersedes the public draft v0.1 of 2026-08-10 (Y-up, /MDCX/<SKU_ID> root, LOD tiers — all withdrawn). Every public download listed in §11 is byte-identical to the pack the CIOS twin loads.

1. What a model pack is

2. Identity binding

AliasSKU IDPack file
L1240C45L1240C45SUR150L1240C45.usdc
L1800C45L1800C45DR220L1800C45.usdc
L450C20L450C20DR150L450C20.usdc
I400C45I400C45SUT50I400C45.usdc
Rule: changing IT power, loop topology, UPS flag, container size or density creates a new SKU ID and a new pack. Never overwrite the meaning of an existing file name. Legacy file names (DC45-1200KW, DLC45-1800KW, DLC20-450KW, AC45) are retired and redirect to the alias files.

3. Stage settings (required)

SettingRequired value
Up axisZ
metersPerUnit1.0 — model in real-world meters, 1:1
Default prim/root
Root transformidentity — no baked translation, rotation or scale
Origincentre of the unit's footprint, at ground level (geometry rests on z ≥ 0)
Orientation+X = front of the unit (primary service / door side)

Stage customLayerData must carry four keys:

KeyValue
cios:modelpack:modelthe file name stem (L1240C45)
cios:modelpack:versionsemantic version, bumped on every re-export
cios:modelpack:sourceauthoring tool and version
cios:modelpack:dateexport date, YYYY-MM-DD
cios:modelpack:originfootprint-center (required for new packs; legacy-corner marks the two older packs awaiting re-export)

4. Prim hierarchy (required)

/root                 Xform, default prim — cios:type, cios:model
├── geo/              all visible geometry
│   ├── rack000/      one group per functional component (§5)
│   │   └── rdhx000/  nesting mirrors physical parentage
│   └── frame/        enclosure, doors, cable dressing, labels
├── sen/              sensor location markers (§6); may be empty
└── _materials        materials (Scope)

No meshes directly under /root, and no other direct children of /root.

5. Naming (required)

6. Attributes and sensor markers

7. Materials and colours

Colours in a pack describe the physical appearance of the unit only; status, temperature and alarm visuals are added by the twin at runtime and are never baked into a pack.

#Rule
M1Shaders: UsdPreviewSurface only, one surface shader per material.
M2diffuseColor is a plain constant. No texture nodes, no file references.
M3Every mesh carries primvars:displayColor (constant) equal to its material colour.
M4opacity = 1.0 on every material. Enclosure transparency is applied by the renderer.
M5emissiveColor = black on every material. Emissive is reserved for status visuals.
M6Material and shader names: lowercase [a-z0-9_]+, no .001 / _001 suffixes.
M7purpose = default on every prim; guide is reserved for the twin's status layer, and no prim may have a state child.

8. Not allowed

Deliveries are rejected if they contain any of:

  1. Lights or cameras.
  2. Animation, time samples, rigs, physics or audio.
  3. Surroundings — rooms, floors, ground planes, neighbouring units (the unit's own enclosure belongs in geo/frame/).
  4. External file dependencies, including asset paths such as ./textures/*.png.
  5. Any transform on /root.
  6. Pre-baked telemetry values or invented cios: attributes.

9. Size budget

File ≤ 50 MB · ≤ 500 k triangles · ≤ 64 materials · ≤ 5 000 prims. Budgets are warnings, not hard failures; exceeding one needs a written reason. Target detail: recognisable at 2 m, not photorealistic close-up. Decimate CAD tessellation and drop fasteners and hidden internals.

10. Conformance check

Every pack passes an automated check before it is accepted or published: stage settings (§3), hierarchy (§4), naming and vocabulary (§5), attributes and markers (§6), materials (§7), prohibitions (§8) and budgets (§9, warning). A manual self-containment check and a visual review of scale, origin and orientation follow. Before sending a file, open it in NVIDIA USD Composer or any USD viewer and confirm it sits on the ground plane at the origin, faces +X, and measures correctly.

Web presentation is separate from the pack: product pages show a poster first and load web 3D (glTF) only on request. The USD pack is always an explicit download, never fetched on page load.

11. Public downloads

Each download is a .zip containing exactly one <ALIAS>.usdc, byte-identical to the pack used by the CIOS twin.

FileMaps toNotes
L1240C45.usdc.zipL1240C45SUR150Liquid Cooling, single loop, with UPS
L1800C45.usdc.zipL1800C45DR220Liquid Cooling, dual loop
L450C20.usdc.zipL450C20DR150Liquid Cooling, dual loop, 20 ft
I400C45.usdc.zipI400C45SUT50Immersion Cooling; also the geometry reference for I400C40ST50 (shared 8-tank core)

Multi-container arrangements are not model packs; they are built by placing packs in a site layout.

12. Changelog

VersionDateNotes
1.02026-09-22Adds §7 materials and colours (constant-colour PreviewSurface, displayColor, no textures / opacity / emissive, purpose default). Aligned with the CIOS digital-twin model pack convention: Z-up, footprint-centre origin, +X front, /root hierarchy, lowercase vocabulary naming, cios:modelpack:* metadata, sensor markers, prohibitions and budgets. Downloads replaced by the CIOS packs under alias file names. LOD tiers, /MDCX/<SKU_ID> root and mdcx:* keys withdrawn.
0.12026-08-10Initial public draft (withdrawn).
Related: Product matrix · Claims registry (numbers only — not geometry) · CIOS model. Questions: yurimeng@mdcx.org