Can I open a STEP file without CAD? The kernel runs in the tab
Someone sends you a STEP file and the machine in front of you has no CAD package on it — no Fusion 360, no SolidWorks, no FreeCAD. The file is not unreadable; it is waiting for a kernel, and a kernel is small enough to download. Every number on this page was measured on the machine that wrote it and re-run by npm test before the page was published.
The short answer
Yes. Opening a STEP file does not take a CAD seat — it takes a CAD kernel, and a kernel is small enough to download. The one this site ships is OpenCASCADE compiled to WebAssembly: 7,604,031 bytes, 7.25 MiB, fetched once per browser session and kept after that. From the moment it is loaded, reading STEP and IGES files and writing STL happens in your tab, with nothing uploaded. What you get is the read: the geometry, a bounding box, a triangle count, a parts count, and an STL you can hand to a slicer. What you do not get is the seat: no editing the geometry, no feature tree, no drawings. Those are capabilities of CAD software, not of the file format, and no converter can conjure them.
What the no-CAD path costs, counted both ways
| Job | A CAD seat | This tab |
|---|---|---|
| Reading a STEP file | A bundled B-rep kernel does it | The same class of kernel, as 7,604,031 bytes of WebAssembly |
| Converting to STL | An export dialog | Drop the file: an 18-part assembly of 433,606 bytes becomes 7,372 triangles and a 368,684-byte STL — 84 + 50 × 7,372 — with nothing uploaded |
| Editing the geometry | Yes, parametrically | No. The output is a mesh snapshot |
| Feature tree and drawings | Yes | No. A conversion produces triangles, not design intent |
| Install and licence | An installer, a licence, a learning curve | 7.25 MiB, fetched once per session, free |
The two paths share the first job — only a B-rep kernel can evaluate a STEP file, and both carry one. They part company after it. The seat is the right tool once you need to change the model; the tab is the right tool when what you need is the mesh and the counts, and it is the only one of the two that arrives without an installer.
Why reading a STEP file takes a kernel at all
A STEP file is text, and any text editor will open one — but that is not “opening it” in the sense that matters. The file declares geometry as mathematics. A cone’s slanted face is a single entity line naming a radius and a half-angle; in the project’s own test cone that half-angle is 0.785398163397449 radians, exactly 45 degrees. A text editor can show you that line. It cannot evaluate it into a mesh.
Evaluating it is sampling: the kernel walks the declared surface at a stated tolerance and writes out triangles, and that is real geometry work, not file parsing. The same cone measures 286 triangles at Draft and 2,142 at Fine — a 7.5× spread produced by nothing but the tolerance choice. The NURBS page reprints the cone’s actual file line and shows what tools without a kernel do to it. What matters here is that the thing which turns such a line into triangles is the kernel, and the kernel is exactly what this tab ships.
The whole loop, measured on an 18-part assembly
as1-oc-214.stp is the largest file this site has verified: 433,606 bytes of STEP text describing 18 separate solids. The kernel in this tab reads all 18, tessellates each one at the same tolerance, and writes one binary STL. The counts: 7,372 triangles in total, spread across just 5 distinct per-part values — smallest 200, largest 1,260, because repeated parts of an assembly produce identical counts — and a 368,684-byte output, which is the identity again: 84 + 50 × 7,372. The kernel that did all of this is the 7.25 MiB download from the short answer, and nothing about the file left the machine while it happened.
The boundary: what the tab still cannot do
State it plainly, because this is where no-CAD promises usually go soft. In the tab you can read a STEP file, count what is inside it, convert it to STL, and verify the result — the five checks all run on files you already have. You cannot edit the geometry: an STL is a mesh, and moving a fillet in a mesh means moving triangles one by one, at a cost the editing page measures. You cannot recover a feature tree or produce a drawing, and going the other way is a reconstruction rather than a conversion — the reverse-direction page is blunt about why. There is also a physical limit: the browser’s memory is finite, files larger than anything verified here can exhaust the wasm heap, and the engine then stops until you reload. For reading, counting and converting, the tab holds its own. For changing the design, a CAD seat remains the only tool that does the job.
Why the three benchmark sites cannot make this offer
Of the three sites this project tracks — polyd.com, convert3d.org and imagetostl.com — none ships the kernel to your browser. polyd’s converter page leads with working without installing software, but its own blog describes the actual mechanism: files are uploaded and deleted after conversion, which is a service, not a local run. convert3d’s STEP page is a two-row compatibility table and never states where conversion runs at all. imagetostl’s STEP reference page settles for pointing readers at a desktop application to open STEP files, and its converter is an upload form under size limits it once published and no longer does. The cell they leave empty is the one this page occupies: the entire kernel, 7.25 MiB, running in the tab, with the file never leaving it.
Where these numbers come from
- 7,604,031 bytes (7.25 MiB) — the byte length of
engine/occt-import-js.wasmas shipped on this site (occt-import-js 0.0.23, a WebAssembly build of OpenCASCADE, LGPL-2.1). The suite stats the shipped file rather than trusting the page. - 433,606 bytes in, 7,372 triangles out, 368,684 bytes written — the measured-table row for as1-oc-214.stp at Normal, re-run against the live engine on every test run. The identity holds in both directions: 84 + 50 × 7,372 = 368,684, and (368,684 − 84) ÷ 50 = 7,372.
- 18 solids, 5 distinct per-part counts, smallest 200, largest 1,260 — read from the engine’s per-solid meshes at Normal, the same walk that backs the assembly findings; the per-part counts add up to the 7,372 total.
- 0.785398163397449 — the half-angle in radians on the cone sample’s own CONICAL_SURFACE line, checked against the file on disk. 286 and 2,142 are that cone’s triangle counts at Draft and Fine.
npm test
The command above re-runs every number on this page. The verification page owns the read-what, refuse-what answer; the workflow page owns the six steps in order; and the converter is where the kernel is already waiting — drop a STEP file on it and the counts above are the ones to expect.