Resource boundary

Limits and control

What this release accepts, how much it will spend, and how to stop it.

Supported input

This release imports binary and text STL, a documented OBJ subset of vertices and faces, static mesh geometry from glTF 2.0 and GLB, and mesh geometry from the 3MF Core specification. Each source file is accepted up to 32 MiB and 500,000 triangles (1,500,000 vertices for OBJ). Content outside those documented subsets -- materials, curves, free-form surfaces, animations, skins, morph targets, and 3MF's Beam Lattice, Slice, Materials/Colours, and Production extensions -- is refused with a stated reason, or ignored with a named warning, rather than partially or silently reinterpreted.

Neither STL nor OBJ authoritatively declares a unit or an up-axis, so importing either begins with millimetres and right-handed Z-up and exposes other interpretations as expert settings. glTF/GLB and 3MF are different: both declare their own frame in the file itself (glTF/GLB always metres and right-handed Y-up; 3MF its own unit, defaulting to millimetre, and right-handed Z-up per specification), so importing either resolves that declaration rather than defaulting -- an expert override is still available and is recorded distinctly from the file's own declaration. Whichever way a source's frame was resolved, the interpretation stays attached to the result.

3MF's container is a ZIP archive, so its decompression carries its own bounded limits (entry count, per-entry and total decompressed bytes, and compression-ratio ceilings) independent of the triangle/vertex ceilings every format shares -- a maliciously crafted archive fails closed well before its declared content could be fully expanded.

The analysis allowance

Comparison runs inside a memory allowance you control, between 128 and 768 MiB. The starting value is recommended from what your browser reports about the device, and is deliberately conservative when a reading is unavailable. The recommendation is never a cap: the whole range stays available.

The allowance is a fail-closed ceiling on an estimate, not reserved memory. A comparison that would exceed it stops with an explicit resource outcome instead of returning a partial or misleading difference. Raising it lets a capable device attempt more work; it does not make an exhausted browser tab succeed.

Stopping and recovering

A running comparison can be cancelled from the interface, and leaving the page stops the work rather than leaving it running. Cancellation returns the page to a ready state without an error.

If the comparison worker fails or stops responding, the interface reports a structured failure and recovers instead of waiting indefinitely. Comparison itself is bounded, deterministic, and repeatable: the same inputs and settings produce the same result.