One cylinder imported from STEP and IGES
The two source files describe the same analytic cylinder, exported as STEP and IGES. Their matched mesh results make a reproducible import example with a known physical scale. The known radius and height provide independent checks on the imported mesh.
How this was measured
Generate a cylinder of radius 10 mm and height 20 mm using Open CASCADE, then write each exchange format from that shape. Import both through occt-import-js with 0.1 mm absolute linear deflection and 0.5 radians angular deflection. Measure triangles, axis-aligned mesh bounds, and edge incidence using the same inspection routine.
| Measurement | Value |
|---|---|
| step / triangles | 124 |
| step / dimensions | 20 × 20 × 20 |
| step / units | mm |
| step / open Edges | 0 |
| step / inconsistent Edges | 0 |
| step / non Manifold Edges | 0 |
| step / degenerate Triangles | 0 |
| step / components | 1 |
| iges / triangles | 124 |
| iges / dimensions | 20 × 20 × 20 |
| iges / units | mm |
| iges / open Edges | 0 |
| iges / inconsistent Edges | 0 |
| iges / non Manifold Edges | 0 |
| iges / degenerate Triangles | 0 |
| iges / components | 1 |
What the result does not establish
Both source exporters and the browser importer use Open CASCADE. Agreement here is not an independent interoperability certification between different CAD systems. Complex assemblies, unsupported entities, trimming behavior, and other source exporters need their own examples. The browser inspects the resulting mesh, not native modeling history.
Try these files
These samples were created by this project and released under CC0. They contain no visitor files. Sizes and SHA-256 hashes identify the exact bytes measured in this experiment.
- Project-created cylinder: radius 10 mm, height 20 mm. (STEP, 5,664 bytes)
SHA-256
0004159d7b2a121deb50aeba379c153ed27b412a8a38782a65513b3a58583a1e - The same project-created cylinder exported as IGES. (IGES, 7,857 bytes)
SHA-256
81274edc6d86ea10fe439b7077d4a0451159d16bc9802d4c778556425631a507
Use this result
Versions and reproduction
Evidence generated 2026-09-05T21:13:29.140Z. The checked-in generator rebuilds the sample collection and measurements with one command:
node --experimental-strip-types scripts/build-workbench-evidence.tsCAD source generation: scripts/build-workbench-cad.py with cadquery-ocp 7.9.3.1.1; checked-in analytic cylinder outputs. The STEP and IGES outputs are checked in so ordinary evidence rebuilds do not require Python.
- @astrojs/cloudflare
- 14.3.0
- @cloudflare/containers
- 0.3.7
- astro
- 7.3.1
- fflate
- 0.8.3
- jose
- 6.2.12
- occt-import-js
- 0.0.23
- rhino3dm
- 8.32.2
- three
- 0.185.1
Geometry source and generator SHA-256 hashes:
- core/affine.ts
- cff986695025f835e54c530ef654a3b7b19862d5f5feba08a361f2db708fbe65
- core/bytes.ts
- 850a1863a411549bbaf73e85d339dd3109fb57aca4e89e1cbeb0a06cdb3cc924
- core/convert.ts
- e9e96ecbb498338b85bc122a7e328ae9d96666b2dadce581e4f86e8b7b59689d
- core/deflate-validation.ts
- 7427464082422b2a484cb4b845e21a41dbb015ffddb83a4d1f938b6c32cb40f1
- core/detect.ts
- 4c64ca45732c4339749fed372b20e6996f17e1f4d307046ad71e047723ccf3e9
- core/formats.ts
- f037f0543d19f5ffebe97ea40450c5b646d6d5164ae4e816bf3dce6cf3685479
- core/index.ts
- 6dcf467a7b1952cf270fd834927404b19eb58bc6d1f2542d8c420bda90d4e3f7
- core/inspect.ts
- 44100ac51622e986e3ab63e49d6704dde539141454e273b76d5be70b5115a1ec
- core/model.ts
- bef860184a185c098d72d30a12cfaa7fe3199b96dbde0e65428b8f3bfe6c79a5
- core/read/3dm.ts
- f26a7d22c86dc6780ce218822eafa4cc5dbf76f35289a6266f6f2161bd84127e
- core/read/3ds.ts
- 0142d9f82937566220d6616c52800ffa856fff500bab3e26e90c0cdc0c6f7e32
- core/read/3mf-package.ts
- 11ad7a82d1dc5698412479d0c6351c5b88cfbc308ebee4a5d91fdc71d969af51
- core/read/3mf.ts
- 9378aa3156d5b908d4ce2ac551b76500247762de75a21b29ae0b2feb341a950e
- core/read/amf.ts
- b68b2de1c27d3c374ce4e2ce4215c8a6edcfbccac3e9a7ed0f623956cfe4afde
- core/read/dae.ts
- acf671ba4ea931ca4e958a67886978e61da9c7cb936cb835265f86d3b271b2c5
- core/read/fbx-scene.ts
- 89bb4fa1718fafa1e8dd8ec27197e83752fe8af7bf0c04b5d49586f611d9812d
- core/read/fbx.ts
- 33c87b835bf7ba11a2dd937fd78ff21a094076e9b9d95e7d24e40ea859c16bf3
- core/read/gltf.ts
- 23296adfe9591efb9a7179413bf5a1ffe9a47acffa3daf997055c20ebd249c6c
- core/read/obj.ts
- 86fe1097ed8c07d052753255a17adcd746d3ccd847351a5632f78ecb7b8f8605
- core/read/occt.ts
- 1c129dc8ffb4f03bc992dd8940681acb92a4ed03271ce47485f3ac1533182117
- core/read/ply.ts
- 3cac9da6d62be20ae016cef751b01c14c0ebccd67d921107c56e8297835d2933
- core/read/scene-validation.ts
- 62e1f08faf9a9253e3b5d6c15395cbc97bc093e3867ce1aab87a3af8db704ebc
- core/read/stl.ts
- ac53b792bd9cb8bff4366331fa0bb49844c7d6fcf9df47819cc75544e812dec9
- core/read/usdz.ts
- caded369def6d998931378c616c271c565840ad280e5d797d4674f2ab1222fcb
- core/read/workbench-3mf-reader.ts
- 5f5ec69531981e06ef5246debe02b89323b065c928988bdc85c5d4f7675660da
- core/read/wrl-preflight.ts
- 2a4ef48b020ef98b381ab33aa34266bb5c43de716e2e38256598d69996d235ac
- core/read/wrl.ts
- ad3d6869874f7a3ac51ca09d885af0dec0376249f395bc083f5d8961d8c228af
- core/report.ts
- 3758e6ea6f7453b23bb21682caa8828464add92d839c0cc8ae30fe46c4ca54fa
- core/three-bridge.ts
- 84d16dd2834354c360a85453499abfbc462cc616714fe7a04992ab18ab5037ff
- core/units.ts
- f5367c6aa2932463c90769fd0ac080e8a42aec71facf63ae32b0b08337020963
- core/wasm.ts
- 5022bce9c3bfcf438525245373c798ff153c5ba716203ce1224318f1093da739
- core/workbench/export.ts
- cd663d1787eb8b97268bf12c9967e598223b98a9701fcd5bc948913b39725f62
- core/workbench/geometry.ts
- 7228ab0996857e68d69ccb5575be641f07159bc340bbc9b660d31d39f7deea31
- core/workbench/tessellation.ts
- f0b644e54709887e5651cdd6264e8678ed56fb9c3aebf1bd4f20124ca8cc4aea
- core/workbench/workbench-capability-report.ts
- 4f06ec57789c96892f7691c8c691867364ce80822f5cfc97bdcbe896f47e45d4
- core/write/3mf.ts
- bf9afa50480b3cb71a2a768897b7dfd5347cafa6f4d3d59550c19edf4c80446a
- core/write/gltf.ts
- f650b65a62d81b2c617448053726e89b4a6e0beb27955dea8e1d413d4156c0a0
- core/write/obj.ts
- cb0b5571284c4fe9b217a82057fd0758d406bba0fd50815313fe4ca4d4f0248c
- core/write/ply.ts
- cd71a26936091a3619cd67f9dc609101aea8a1ee84bc7b5c7fafcc551a328797
- core/write/step.ts
- 05b888318d999a952aa5d9b2bddc47a79ef9d361b6828058df4b834c6ca886fd
- core/write/stl.ts
- bed130d62ee6a645d79ea8fdd70441e9abb0962354963798387601f458167323
- core/write/usdz.ts
- 4cd8d9bf0d1aa1755c374980e5fb863b3045979e8201f8d79fc8e0857c09e962
- core/xml-namespaces.ts
- 10820125e1331ee730f577319faea4f279f1dd5a7b29a4bb7ec56475b7a9b0d8
- core/xml.ts
- b1b9e09cda3013013956dd0c0ad915dc17d6ee499d9d0ec7cd6298aa5c625184
- core/zip-strict.ts
- 76bdd9135e717129fa130c5597134b96056e77dbe2f3b4ed493dacd98a1ba972
- core/zip-write.ts
- 4db10ba581fe543ff7b3330276c8843a6ca709884b570444ab523d49aa642771
- core/zip.ts
- 71749962d39fec82ede645be7d9193edaaec800b3de71527c2e32a80ad54f529
- corpus/workbench/cylinder.iges
- 81274edc6d86ea10fe439b7077d4a0451159d16bc9802d4c778556425631a507
- corpus/workbench/cylinder.step
- 0004159d7b2a121deb50aeba379c153ed27b412a8a38782a65513b3a58583a1e
- package-lock.json
- af6a2e949a477492e6adfcc9042705c4a785cff25715acf2ed4e85578a304627
- package.json
- f506303de4ba20f6ad49a2e862be535b1374ac2d6485f1875b01c04fc1426b8f
- scripts/build-workbench-cad.py
- 6498bdf6347ba27e6d12d3818b5793113c2e74d0d227c68ba9fab7d22dba97b1
- scripts/build-workbench-evidence.ts
- 68716afd03c0d6e79a051eac57cc7a37a26218b9b119857f35dfb1663ac8770a
- test/core/workbench-3mf-baseline.test.ts
- 486b840aae41494b9a501d1403cb98f8c991725327e40132d96d2e53788ae4de
- test/core/workbench-3mf-integration.test.ts
- 7486085c9367e2a543f321d63a49dc621670141812a90b46e7651a718a0e165c
- test/core/workbench-3mf-package.test.ts
- 6a44fe9c9c5e79b026155a3d25bcfd31e41a588fcd5b0cfddb9de9f370fe444d
- test/core/workbench-3mf-reader.test.ts
- 41b8112430e7a77b34e15e7bbe081f8548d4d686c5a98ac42dc72b7d651ddb40
- test/core/workbench-collada-transforms.test.ts
- a3a0191626f4f1603d8d393437312609cdd7b32e620a77e30965bb739eb03c70
- test/core/workbench-fbx-transforms.test.ts
- 3601ac964baaae9eecda62c2301babd740a850f7e6c0d6a7569545a412105cdb
- test/core/workbench-writer-transforms.test.ts
- 03e8b9524d2b952f94c2ffef015d3e9b6d3a2f1882f16cb2138e96eeb5b85af0
- test/core/workbench-wrl.test.ts
- eb2f2188c418080e14a4695f3b3025aaeb507a7ab5ea11be55cd7e17c4af76e4
- test/core/workbench-xml-namespaces.test.ts
- de2661f4bd9414972a916eb9616c3b4f2baf4ff2a71de8268ee3a77fe8e271f5
- test/core/workbench-zip-strict.test.ts
- 36b56e2b3b46c3e0fbeba5ee022057a33b3dd91a68af83e58c388af028fe4a6c
- test/fixtures/3mf-reader-baseline.json
- 91ebcb16f07e8154612d02724e55282727fec77f831535400b294ec9b61655ff
- test/fixtures/collada-transforms-baseline.json
- aaaeeb63ed51414e8a8e44e7d8fb0b5341cc3d9f96a6107c4fe4d3ef9a407150
- test/fixtures/workbench-3mf.ts
- 1b81c046312396e774bbf4c5ee7199c2eabc02ec4253d4fa2501ba8635b1a026
- test/fixtures/workbench-challenges.ts
- 1d452755c74fed6b00b607f3b794a7213dc3c82011471b33721dafefe69715ba
- test/fixtures/workbench-rhino.ts
- 2dc0df1e0ae5bdd1142d3ffadcedc767c613fe59fb66cf59e8a9067e253461f3
- test/fixtures/workbench-scene-readers.ts
- e2c424f846248286392ff58a6d7c01a4ecf251e4dc69a32c31e4bd59dc0cd950
- test/fixtures/workbench-wrl.ts
- 808710bd63fa0d1b2cec322184cf916ffaaa21152190e62b4f723d419fa6e5fa
- test/fixtures/workbench.ts
- 06a23ec65d5e9aaf663aca6ec65a5f2005f52d4e76d7cb8f77f088cdd1b992a5
- test/fixtures/writer-transforms-baseline.json
- f421c74d527e73d00cd191611ccc0beebc0f8c37899969418446724f84fb8172
- test/fixtures/writer-transforms.ts
- 42848e9870398b7858285e1b3450147d71a2c2dc91d4c614f950cd4ac6327555