Best Open Source STEP File Visualization Components for Browser
Based on comprehensive research across GitHub, GitLab, and other repositories, here are the 3 best open source STEP file visualization components that can display STEP files in-browser, prioritizing MIT/Apache licensing:
1. Online3DViewer - MIT License ⭐
Online3DViewer is the most comprehensive solution for browser-based STEP file visualization. This mature project offers excellent STEP support through its occt-import-js integration.1
Key Features:
- Full STEP file support with high-quality rendering21
- Pure browser implementation - no backend required
- 3,100+ GitHub stars indicating strong community adoption1
- MIT License - completely non-viral and commercial-friendly1
- Advanced viewer capabilities including rotation, zoom, pan, and measurements
- Export functionality to multiple formats2
- Mobile-friendly with touch controls
Technical Implementation:
- Built with Three.js and WebGL for optimal performance1
- Uses
occt-import-js (WebAssembly port of OpenCascade) for STEP parsing2
- Supports both text and binary STEP files2
- Lightweight and fast loading
Usage: Available as both a complete web application and embeddable component.1
2. Foxtrot - MIT/Apache Dual License ⭐
Foxtrot is an experimental but highly performant STEP viewer built from scratch by Formlabs. It represents cutting-edge technology for STEP file visualization.34
Key Features:
- Exceptional performance - renders complex STEP files in under 1 second4
- Dual MIT/Apache 2.0 license - maximum flexibility for commercial use4
- WebAssembly support with browser demo available3
- Built in Rust for maximum performance and memory safety4
- Custom STEP parser designed for speed and accuracy
- WebGPU rendering for modern graphics capabilities
Technical Implementation:
- 8.7 KLOC of Rust plus auto-generated parser4
- WebAssembly compilation enables browser deployment4
- Constrained Delaunay triangulation for high-quality mesh generation3
- Near-native performance in browser environments4
Limitations: Still experimental and may not handle all STEP file variations. Best suited for performance-critical applications.4
3. three-cad-viewer - MIT License ⭐
three-cad-viewer is a specialized CAD viewer component that, while not directly supporting STEP files, provides excellent foundation for STEP visualization when combined with preprocessing.56
Key Features:
- MIT License - completely permissive for commercial use6
- 275+ GitHub stars with active development6
- Pure Three.js implementation for maximum compatibility6
- Hierarchical model support with assembly tree navigation5
- Professional CAD features including measurements, clipping planes, and part isolation6
- NPM package availability for easy integration5
Technical Implementation:
- Tessellated geometry support - works with pre-processed STEP data56
- Modern JavaScript/TypeScript architecture6
- Extensive API for customization and integration6
- Web component architecture for framework-agnostic use
STEP Integration: Requires STEP-to-tessellation preprocessing using tools like OpenCascade or similar converters, but provides superior viewing capabilities once geometry is processed.6
Additional Notable Mentions
CascadeStudio (MIT License): A full CAD kernel in the browser with STEP import/export capabilities. While primarily a modeling tool, it includes excellent STEP visualization features and runs entirely client-side.78
Mayo (BSD-2-Clause License): Desktop application with strong STEP support, though not primarily browser-focused. However, its architecture could potentially be adapted for web use.9
Recommendation Summary
For maximum compatibility and ease of implementation, choose Online3DViewer. It offers the most complete solution with proven STEP support and MIT licensing.1
For performance-critical applications where speed is paramount, Foxtrot provides exceptional rendering performance with dual MIT/Apache licensing.4
For custom implementations requiring extensive control over the viewing experience, three-cad-viewer offers the best foundation, though it requires STEP preprocessing.6
All three options provide non-viral licensing (MIT/Apache) suitable for commercial use and can be integrated into browser-based applications without backend dependencies.
101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
⁂
Best Open Source STEP File Visualization Components for Browser
Based on comprehensive research across GitHub, GitLab, and other repositories, here are the 3 best open source STEP file visualization components that can display STEP files in-browser, prioritizing MIT/Apache licensing:
1. Online3DViewer - MIT License ⭐
Online3DViewer is the most comprehensive solution for browser-based STEP file visualization. This mature project offers excellent STEP support through its
occt-import-jsintegration.1Key Features:
Technical Implementation:
occt-import-js(WebAssembly port of OpenCascade) for STEP parsing2Usage: Available as both a complete web application and embeddable component.1
2. Foxtrot - MIT/Apache Dual License ⭐
Foxtrot is an experimental but highly performant STEP viewer built from scratch by Formlabs. It represents cutting-edge technology for STEP file visualization.34
Key Features:
Technical Implementation:
Limitations: Still experimental and may not handle all STEP file variations. Best suited for performance-critical applications.4
3. three-cad-viewer - MIT License ⭐
three-cad-viewer is a specialized CAD viewer component that, while not directly supporting STEP files, provides excellent foundation for STEP visualization when combined with preprocessing.56
Key Features:
Technical Implementation:
STEP Integration: Requires STEP-to-tessellation preprocessing using tools like OpenCascade or similar converters, but provides superior viewing capabilities once geometry is processed.6
Additional Notable Mentions
CascadeStudio (MIT License): A full CAD kernel in the browser with STEP import/export capabilities. While primarily a modeling tool, it includes excellent STEP visualization features and runs entirely client-side.78
Mayo (BSD-2-Clause License): Desktop application with strong STEP support, though not primarily browser-focused. However, its architecture could potentially be adapted for web use.9
Recommendation Summary
For maximum compatibility and ease of implementation, choose Online3DViewer. It offers the most complete solution with proven STEP support and MIT licensing.1
For performance-critical applications where speed is paramount, Foxtrot provides exceptional rendering performance with dual MIT/Apache licensing.4
For custom implementations requiring extensive control over the viewing experience, three-cad-viewer offers the best foundation, though it requires STEP preprocessing.6
All three options provide non-viral licensing (MIT/Apache) suitable for commercial use and can be integrated into browser-based applications without backend dependencies.
101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
Footnotes
https://github.com/kovacsv/Online3DViewer ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7
https://3dviewer.net/info ↩ ↩2 ↩3 ↩4
https://github.com/Formlabs/foxtrot ↩ ↩2 ↩3
https://www.mattkeeter.com/projects/foxtrot/ ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9
https://www.npmjs.com/package/three-cad-viewer/v/0.9.1-beta.5?activeTab=dependencies ↩ ↩2 ↩3 ↩4
https://github.com/bernhard-42/cad-viewer-widget ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10
https://github.com/zalo/CascadeStudio ↩
https://zalo.github.io/CascadeStudio/ ↩
https://github.com/fougue/mayo ↩
https://github.com/chrisg123/staircase ↩
https://www.modelo.io/damf/article/2023/12/29/0526/5-best-step-file-viewers-for-3d-model-visualization ↩
https://www.reddit.com/r/FreeCAD/comments/197nm38/open_source_rendering_software_for_step_files/ ↩
https://www.mbx-if.org/home/mbx/resources/ ↩
https://www.reddit.com/r/threejs/comments/1b7sw3m/is_it_possible_render_step_file_with_full/ ↩
https://stackoverflow.com/questions/37479823/displaying-cad-images-with-javascript ↩
https://www.edrawingsviewer.com/view-cad-files-free ↩
https://github.com/usnistgov/SFA ↩
https://www.opencascade.com/products/cad-assistant/ ↩
https://cadexchanger.com/blog/how-to-load-3d-cad-data-into-three-js/ ↩
https://stackoverflow.com/questions/22597111/how-to-handle-dwg-files-in-c ↩
https://github.com/VolkanSah/STEP-Viewer-Pro ↩
https://openstepviewer.com ↩
https://old.opencascade.com/content/web3d-viewer ↩
https://github.com/mlight-lee/cad-viewer ↩
https://www.nist.gov/services-resources/software/step-file-analyzer-and-viewer ↩
https://dev.opencascade.org/project/step-file-analyzer ↩
https://sharecad.org ↩
https://dev.opencascade.org/project/mayo ↩
https://cad-viewer.com ↩
https://dev.opencascade.org/doc/occt-7.7.0/overview/html/occt_samples_webgl.html ↩
https://occt3d.com/components/light-web-viewer-component/ ↩
https://www.reddit.com/r/threejs/comments/wh0mns/what_is_the_best_opensource_3d_models_viewer_web/ ↩
https://www.jsdelivr.com/package/npm/three-dxf ↩
https://rufus31415.github.io/sandbox/3d-viewer/ ↩
https://github.com/InteractiveImpressions/opencascade.js-cad-viewer ↩
https://www.npmjs.com/package/three-cad-viewer/v/0.9.7?activeTab=dependents ↩
https://www.web3d.org/x3d-tools-and-resources ↩
https://www.youtube.com/watch?v=qg6IamnlfxE ↩
https://github.com/ieskudero/three-dxf-viewer ↩
https://github.com/PQCMayo/MAYO-C ↩
https://stackoverflow.com/questions/75603196/how-to-use-stepcontrol-writer-in-opencascade-js ↩
https://cadviewer.com/cadviewertechdocs/licensekeys/ ↩
https://pypi.org/project/cad-viewer-widget/ ↩
https://stackoverflow.com/questions/27834498/is-there-any-possibilities-to-read-step-file-using-three-js-file ↩
https://github.com/LowLevelAcademy/wasm-modules ↩
https://discourse.threejs.org/t/is-there-any-way-to-load-step-file-using-three-js/2842 ↩
https://github.com/raydeleu/CascadeStudioManual ↩
https://github.com/gdsestimating/three-dxf ↩
https://www.eevblog.com/forum/eda/a-good-working-free-step-file-viewer-that-is-not-on-line/ ↩
https://codesandbox.io/examples/package/occt-import-js ↩
https://github.com/ghackenberg/opencascade-tools ↩
https://codesandbox.io/s/convert-step-file-to-glb-with-three-js-occt-import-js-v0-4-ckeuy5 ↩
https://dev.opencascade.org/content/viewer-webassembly-and-static-linking-single-webassembly ↩
https://hackaday.com/2020/09/30/hyper-links-and-hyperfunctional-text-cad/ ↩
https://ocjs.org ↩
https://github.com/kovacsv/occt-import-js ↩
https://www.reddit.com/r/opensource/comments/1cb1em6/how_should_i_license_my_first_github_project_that/ ↩
https://old.opencascade.com/content/occt-public-license ↩
https://acscadservices.com/best-free-step-file-viewer-for-2024/ ↩
https://dev.to/matheussricardoo/what-license-should-you-use-on-github-understanding-mit-apache-gpl-and-more-5976 ↩
https://dev.opencascade.org/resources/faq ↩
https://dev.opencascade.org/doc/overview/html/occt_contribution__git_guide.html ↩
https://spdx.org/licenses/OCCT-PL.html ↩
https://www.sheetmetalconnect.com/the-10-best-free-3d-cad-viewers-for-metalworking-sheet-metal-shops/ ↩
https://dev.opencascade.org/content/licensing-opencascade ↩
https://github.com/bernhard-42/three-cad-viewer ↩