Skip to content

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.

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.

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.

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:

ResourceLimit
Package download1 GiB, 5,000 files
Geometry / textures20 million triangles, 2048 px texture limit
SimReady jobs2 active, 4 waiting
Conversion requests10 per minute, including requests that reuse a cached result
Job deadline10 minutes, including waiting, download and conversion
Finished job statusAvailable 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.

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.

For integrations, /health reports simreadyImport: true when conversion is available.

RequestResult
GET /simready/indexAsset list, or indexing progress while the first index is built.
GET /simready/thumb?dataset=&commit=&asset=Preview thumbnail.
POST /simready/convertJSON {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}/glbConverted GLB; 409 until ready.
DELETE /simready/convert/{jobId}Cancel the job.

Errors appear in the Library toast. Integrations receive the HTTP code directly or in a failed job’s status.

HTTP codeMeaning
403The asset licence is not CC-BY-4.0.
413Package size, file count, triangle or texture limit exceeded.
422The package cannot be used — for example, a path is too long or a reference points outside it.
429Too many requests or jobs; wait and try again.
500Conversion failed on the gateway.
502Download or package verification failed; check connectivity and try again.
503The converter is unavailable on this CONNECT installation.
504The job exceeded its 10-minute deadline.

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.

For STEP and JT, the maximum file size depends on the license and applies per file:

TierSTEPJT
Community25 MB12 MB
Annual, Lifetimeunlimitedunlimited

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.

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.