CAD Conversion
realvirtual reads STEP and JT files directly in the browser. A browser tab has a fixed memory ceiling that large assemblies can reach. When a gateway is available, the viewer sends the file to CONNECT instead. The gateway converts it natively without the browser’s memory ceiling and returns a GLB.
STEP and JT files never leave the machine: CONNECT runs locally, and there is no cloud service involved in the conversion. SimReady assets are downloaded from their online source and converted on that machine too.
Using it
Section titled “Using it”Import the file in the viewer as usual. When the file is too large for the browser path and a gateway is reachable, the viewer offers the via CONNECT route and shows the conversion progress. The result is loaded into the scene and cached.
No configuration is needed. The gateway’s status reports whether it can convert STEP and JT, and the viewer offers only the available options.
STEP assemblies are tessellated with OpenCASCADE. Assembly structure, part names and colors are preserved. The output is standard glTF (meters, Y-up).
Two settings make the result usable in a browser, both on by default:
- Face merging collapses the many per-face primitives of a CAD body into one primitive per body. A large assembly drops from tens of thousands of draw calls to a few hundred. Every body stays its own selectable node.
- Draco compression shrinks the GLB by roughly a factor of 10 to 20.
Together this turns a 161 MB assembly into a GLB of a few megabytes instead of a hundred.
The tessellation tolerance comes from the quality preset chosen in the viewer. Finer presets mean more triangles, a larger file and a longer conversion.
JT is the tessellated format exported by Siemens NX and Teamcenter. CONNECT uses the same reader as the browser, so both conversion routes produce the same geometry.
JT conversion differs from STEP in two ways:
- No progress percentage. JT decoding reports nothing measurable while it runs, so the viewer shows an indeterminate indicator instead of a progress bar.
- No tessellation settings. JT is already tessellated. The only choice is which level of detail to take out of the file.
A running JT conversion can be cancelled, which frees the conversion slot immediately.
SimReady / USD
Section titled “SimReady / USD”CONNECT converts OpenUSD packages from NVIDIA SimReady Central for the Layout Planner Library. The Library offers this source only when CONNECT is available and supports the conversion. Only CC-BY-4.0 assets are included.
Choose an asset in the Library to download its package and convert it locally with the OpenUSD converter bundled with CONNECT. Each downloaded file is checked against the SHA-256 hash in the package’s bill of materials. The browser then saves the GLB and attribution file in the open project; see the Library page for attribution and read-only project behaviour.
Progress and limits
Section titled “Progress and limits”A job moves through queued, downloading, queued, converting, then done or failed. The second queue waits for the conversion slot shared with STEP and JT. Cancelling an unfinished job stops its work; the job is then reported as failed with a cancellation message.
Default limits are:
| Resource | Limit |
|---|---|
| Package download | 1 GiB, 5,000 files |
| Geometry / textures | 20 million triangles, 2048 px texture limit |
| SimReady jobs | 2 active, 4 waiting |
| Conversion requests | 10 per minute, including requests that reuse a cached result |
| Job deadline | 10 minutes, including waiting, download and conversion |
| Finished job status | Available for 60 minutes after completion or failure |
Downloads use huggingface.co, hf.co and codeload.github.com, including their subdomains. CONNECT checks each redirect destination and allows at most 5 redirects.
Cached assets
Section titled “Cached assets”The CONNECT data folder holds downloaded packages in simready/packages/<16 hex>/, converted GLBs and attribution in models/usdcache/, and thumbnails in simready/thumbs/. The 16-character package folder name comes from the package hash. These caches are separate from the copy the browser saves in the project’s library/simready/ folder.
The asset index refreshes after 24 hours when requested; an index left incomplete by upstream rate limits refreshes after one hour. The existing index stays available while CONNECT refreshes it. Converted results are reused for the same asset revision and conversion settings; a converter update invalidates them.
API access
Section titled “API access”For integrations, /health reports simreadyImport: true when conversion is available.
| Request | Result |
|---|---|
GET /simready/index | Asset list, or indexing progress while the first index is built. |
GET /simready/thumb?dataset=&commit=&asset= | Preview thumbnail. |
POST /simready/convert | JSON {dataset, commit, asset}; a job id (202) or a cached result (200). |
GET /simready/convert/{jobId} | Job state, progress and any error; failed jobs still return HTTP 200. |
GET /simready/convert/{jobId}/glb | Converted GLB; 409 until ready. |
DELETE /simready/convert/{jobId} | Cancel the job. |
Troubleshooting
Section titled “Troubleshooting”Errors appear in the Library toast. Integrations receive the HTTP code directly or in a failed job’s status.
| HTTP code | Meaning |
|---|---|
403 | The asset licence is not CC-BY-4.0. |
413 | Package size, file count, triangle or texture limit exceeded. |
422 | The package cannot be used — for example, a path is too long or a reference points outside it. |
429 | Too many requests or jobs; wait and try again. |
500 | Conversion failed on the gateway. |
502 | Download or package verification failed; check connectivity and try again. |
503 | The converter is unavailable on this CONNECT installation. |
504 | The job exceeded its 10-minute deadline. |
Caching
Section titled “Caching”STEP and JT results are cached by the content of the file plus the chosen quality. Re-importing the same file is instant. Updating the converter automatically invalidates old cache entries so it does not return geometry from an earlier converter version.
Limits
Section titled “Limits”For STEP and JT, the maximum file size depends on the license and applies per file:
| Tier | STEP | JT |
|---|---|---|
| Community | 25 MB | 12 MB |
| Annual, Lifetime | unlimited | unlimited |
A gateway’s own configuration can lower these limits further but never raise them. An oversize upload is refused with a message identifying the limit: the license or this gateway’s configured capacity.
Importing several files in one session is fine as long as each individual file is within the limit. See licensing.
Resource use
Section titled “Resource use”STEP, JT and SimReady conversions share one conversion slot by default to prevent heavy converters from competing for machine resources. Each conversion runs as a separate process. If a huge assembly exhausts memory, that conversion ends, but the gateway keeps running.
Long-running STEP and JT conversions are stopped after a configurable timeout, by default 15 minutes. SimReady uses the 10-minute deadline described above.
See also
Section titled “See also”- Licensing — where the size limits come from
- First connection — loading a model