# `IModelNode.optGlbUrl`

> Contract 2.0.0 · package sha256 `a857eca95b35921109faf997094bb4192f12527d9d0fcd4be7e97f06425bad6e` · generated from `configurator-runtime.d.ts` by `services/onsite-scripter/scripts/build-contract-docs.mjs`; edit the source, not this file.

Property of [`IModelNode`](IModelNode.md) · inherited by [`ConfiguratorNode`](ConfiguratorNode.md) · stable · since 2.0.0

```ts
optGlbUrl?: string;
```

The optimized twin the runtime prefers when present. If it fails to fetch, decrypt or parse,
after its own `.holo` → [`plainOptGlbUrl`](IModelNode.plainOptGlbUrl.md) fallback, the runtime tries [`glbUrl`](IModelNode.glbUrl.md) once, with its
`.holo` → [`plainGlbUrl`](IModelNode.plainGlbUrl.md) fallback, and records 'asset-degraded' with `url` this URL; only when
that fails too is the node unloaded, with 'asset-failed' naming the last URL tried. A
cancelled, superseded or removed load tries nothing more, and stored URLs never change (spec
section 6.4).

**Default:** undefined

## Generic-API test (spec 3.1)

| Rule | Result |
| --- | --- |
| 1. Neutral name | pass: `optGlbUrl` names no product |
| 2. A precedent | not recorded: no ledger row (coverage.json) names this member or its owner |
| 3. Two apps, or labs | not recorded: no ledger row names this member or its owner |
| 4. The cheaper fix first | not recorded per member (Appendix B decides it per need) |
