Skip to content

Step iges file visualization in-browser #794

@jaromil

Description

@jaromil

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

Footnotes

  1. https://github.com/kovacsv/Online3DViewer 2 3 4 5 6 7

  2. https://3dviewer.net/info 2 3 4

  3. https://github.com/Formlabs/foxtrot 2 3

  4. https://www.mattkeeter.com/projects/foxtrot/ 2 3 4 5 6 7 8 9

  5. https://www.npmjs.com/package/three-cad-viewer/v/0.9.1-beta.5?activeTab=dependencies 2 3 4

  6. https://github.com/bernhard-42/cad-viewer-widget 2 3 4 5 6 7 8 9 10

  7. https://github.com/zalo/CascadeStudio

  8. https://zalo.github.io/CascadeStudio/

  9. https://github.com/fougue/mayo

  10. https://github.com/chrisg123/staircase

  11. https://www.modelo.io/damf/article/2023/12/29/0526/5-best-step-file-viewers-for-3d-model-visualization

  12. https://www.reddit.com/r/FreeCAD/comments/197nm38/open_source_rendering_software_for_step_files/

  13. https://www.mbx-if.org/home/mbx/resources/

  14. https://www.reddit.com/r/threejs/comments/1b7sw3m/is_it_possible_render_step_file_with_full/

  15. https://stackoverflow.com/questions/37479823/displaying-cad-images-with-javascript

  16. https://www.edrawingsviewer.com/view-cad-files-free

  17. https://github.com/usnistgov/SFA

  18. https://www.opencascade.com/products/cad-assistant/

  19. https://cadexchanger.com/blog/how-to-load-3d-cad-data-into-three-js/

  20. https://stackoverflow.com/questions/22597111/how-to-handle-dwg-files-in-c

  21. https://github.com/VolkanSah/STEP-Viewer-Pro

  22. https://openstepviewer.com

  23. https://old.opencascade.com/content/web3d-viewer

  24. https://github.com/mlight-lee/cad-viewer

  25. https://www.nist.gov/services-resources/software/step-file-analyzer-and-viewer

  26. https://dev.opencascade.org/project/step-file-analyzer

  27. https://sharecad.org

  28. https://dev.opencascade.org/project/mayo

  29. https://cad-viewer.com

  30. https://dev.opencascade.org/doc/occt-7.7.0/overview/html/occt_samples_webgl.html

  31. https://occt3d.com/components/light-web-viewer-component/

  32. https://www.reddit.com/r/threejs/comments/wh0mns/what_is_the_best_opensource_3d_models_viewer_web/

  33. https://www.jsdelivr.com/package/npm/three-dxf

  34. https://rufus31415.github.io/sandbox/3d-viewer/

  35. https://github.com/InteractiveImpressions/opencascade.js-cad-viewer

  36. https://www.npmjs.com/package/three-cad-viewer/v/0.9.7?activeTab=dependents

  37. https://www.web3d.org/x3d-tools-and-resources

  38. https://www.youtube.com/watch?v=qg6IamnlfxE

  39. https://github.com/ieskudero/three-dxf-viewer

  40. https://github.com/PQCMayo/MAYO-C

  41. https://stackoverflow.com/questions/75603196/how-to-use-stepcontrol-writer-in-opencascade-js

  42. https://cadviewer.com/cadviewertechdocs/licensekeys/

  43. https://pypi.org/project/cad-viewer-widget/

  44. https://stackoverflow.com/questions/27834498/is-there-any-possibilities-to-read-step-file-using-three-js-file

  45. https://github.com/LowLevelAcademy/wasm-modules

  46. https://discourse.threejs.org/t/is-there-any-way-to-load-step-file-using-three-js/2842

  47. https://github.com/raydeleu/CascadeStudioManual

  48. https://github.com/gdsestimating/three-dxf

  49. https://www.eevblog.com/forum/eda/a-good-working-free-step-file-viewer-that-is-not-on-line/

  50. https://codesandbox.io/examples/package/occt-import-js

  51. https://github.com/ghackenberg/opencascade-tools

  52. https://codesandbox.io/s/convert-step-file-to-glb-with-three-js-occt-import-js-v0-4-ckeuy5

  53. https://dev.opencascade.org/content/viewer-webassembly-and-static-linking-single-webassembly

  54. https://hackaday.com/2020/09/30/hyper-links-and-hyperfunctional-text-cad/

  55. https://ocjs.org

  56. https://github.com/kovacsv/occt-import-js

  57. https://www.reddit.com/r/opensource/comments/1cb1em6/how_should_i_license_my_first_github_project_that/

  58. https://old.opencascade.com/content/occt-public-license

  59. https://acscadservices.com/best-free-step-file-viewer-for-2024/

  60. https://dev.to/matheussricardoo/what-license-should-you-use-on-github-understanding-mit-apache-gpl-and-more-5976

  61. https://dev.opencascade.org/resources/faq

  62. https://dev.opencascade.org/doc/overview/html/occt_contribution__git_guide.html

  63. https://spdx.org/licenses/OCCT-PL.html

  64. https://www.sheetmetalconnect.com/the-10-best-free-3d-cad-viewers-for-metalworking-sheet-metal-shops/

  65. https://dev.opencascade.org/content/licensing-opencascade

  66. https://github.com/bernhard-42/three-cad-viewer

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions