npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

explodeview

v1.0.12

Published

Embeddable 3D exploded-view viewer for STEP/CAD files. Turn any CAD assembly into an interactive product showcase with explode animations, measurements, section cuts, QR codes, and manufacturing tools.

Downloads

1,168

Readme

ExplodeView

Turn any STEP/CAD file into an interactive 3D exploded-view on your website.

License: MIT npm

ExplodeView takes STEP/STP CAD assembly files and creates embeddable, interactive 3D viewers with:

  • Exploded views — blow apart assemblies to show internal components
  • Sub-assembly highlighting — click any assembly to isolate and inspect it
  • Realistic materials — brushed steel, matte plastic, rubber, metallic finishes
  • Full controls — zoom, rotate, pan, collapse/expand, auto-orbit
  • Measurement tools — distance, angles, section cuts, annotations
  • Manufacturing integration — Kiri:Moto (FDM/CNC/Laser/SLA), STL export, BOM export
  • QR codes — scannable deep-links per part for AR and sharing
  • Assembly animations — step-by-step disassembly/assembly sequences
  • DIN/ISO identification — standard parts recognition + McMaster-Carr links
  • Zero dependencies — single script, loads Three.js from CDN
  • Responsive — works on desktop, tablet, mobile

Quick Start

1. Process your STEP file

pip install cadquery OCP
python3 bin/explodeview-process.py input.step output/ --name "My Product"

2. Embed in your page

<div data-stp-viewer="/output/"
     data-brand="Your Brand"
     data-product-name="Product Name"
     style="width:100%; height:600px">
</div>
<script src="https://unpkg.com/explodeview"></script>

That's it. Two lines.

Installation

npm

npm install explodeview

CDN

<script src="https://unpkg.com/explodeview"></script>

Self-hosted

Download dist/explodeview.js and serve it from your own server.

Processing STEP Files

The CLI tool converts STEP/STP files into web-ready assets:

python3 bin/explodeview-process.py <input.step> <output_dir> [options]

Options:
  --name        Product display name
  --brand       Brand name
  --tolerance   Mesh quality (default: 0.5, lower = finer)

Requirements: Python 3.8+ with cadquery and OCP packages.

pip install cadquery OCP

Output structure:

output/
├── parts/           # Individual STL meshes per solid
├── manifest.json    # Part metadata (centers, bounding boxes)
├── assemblies.json  # Auto-detected assembly grouping
└── config.json      # Viewer configuration

JavaScript API

// Programmatic initialization
const viewer = await STPViewer.init({
  container: '#my-viewer',
  src: '/path/to/processed/assets/',
  brand: 'Your Brand',
  productName: 'Product Name',
  assemblies: [],  // auto-loaded from assemblies.json
  captions: {
    brand: 'Your Brand',
    productName: 'Product Name',
    loaderTitle: 'Loading...',
    loaderText: 'Preparing 3D model...',
    btnOverview: 'Overview',
    btnCollapse: 'Collapse',
    btnExplode: 'Explode',
  }
});

Custom Assemblies

Override auto-detected assemblies with your own grouping:

STPViewer.init({
  container: '#viewer',
  src: '/assets/',
  assemblies: [
    {
      key: 'frame',
      name: 'MAIN FRAME',
      subtitle: 'Structural Steel',
      detail: 'Load-bearing frame assembly.',
      color: '#0055A4',
      indices: [0, 150],  // solid index range
    },
    {
      key: 'motor',
      name: 'DRIVE UNIT',
      subtitle: 'Electric Motor Assembly',
      color: '#FFD100',
      indices: [150, 200],
    }
  ]
});

Custom Materials

Each assembly can have custom material properties in the assemblies JSON:

{
  "key": "covers",
  "name": "PROTECTIVE COVERS",
  "color": "#2A2A30",
  "material": {
    "metalness": 0.0,
    "roughness": 0.85
  }
}

Features

| Feature | Free (MIT) | Pro | |---------|-----------|-----| | 3D exploded view | ✅ | ✅ | | Assembly tree + highlighting | ✅ | ✅ | | Collapse/expand controls | ✅ | ✅ | | Auto-rotate, pan, zoom | ✅ | ✅ | | Wireframe toggle | ✅ | ✅ | | Custom branding | ✅ | ✅ | | Embed on your site | ✅ | ✅ | | STEP processing CLI | ✅ | ✅ | | Multi-language (6 langs) | ✅ | ✅ | | QR codes per part | — | ✅ | | Part info cards | — | ✅ | | BOM export (CSV) | — | ✅ | | Measurement (distance + angles) | — | ✅ | | Annotation pins | — | ✅ | | Section cut / cross-section | — | ✅ | | Assembly/disassembly animation | — | ✅ | | DIN/ISO standard parts + McMaster | — | ✅ | | STL export per part | — | ✅ | | Kiri:Moto (FDM/CNC/Laser/SLA) | — | ✅ | | Hero shots (marketing images) | — | ✅ | | AR Scanner (WebXR) | — | ✅ | | Interactive manual generator | — | ✅ | | Cloud processing API | — | Enterprise | | White-label (remove branding) | — | Enterprise | | Priority support | — | Enterprise |

Who is this for?

  • Manufacturing companies — showcase products on your website
  • E-commerce — interactive product pages that convert
  • Engineering docs — maintenance and assembly manuals
  • Sales teams — impressive presentations and proposals
  • Education — teach mechanical engineering concepts

Examples

Full-page viewer

<div id="viewer"
     data-stp-viewer="/assets/"
     data-brand="cycleWASH"
     data-product-name="Station Basic"
     style="width:100vw; height:100vh">
</div>
<script src="https://unpkg.com/explodeview"></script>

Embedded in a product page

<div class="product-3d"
     data-stp-viewer="/assets/my-machine/"
     data-brand="ACME Corp"
     data-product-name="Widget Pro 3000"
     style="width:100%; height:500px; border-radius:12px; overflow:hidden">
</div>
<script src="https://unpkg.com/explodeview"></script>

Browser Support

Chrome 90+, Firefox 90+, Safari 15+, Edge 90+

Contributing

PRs welcome! See CONTRIBUTING.md.

License

MIT — free for personal and commercial use.


Built by Sachin Kumar — creator of cycleWASH, the world's first automated bicycle washing station.