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

stemkit-core

v0.3.0

Published

Dependency-injected computational core for STEMKit: GROMACS, PLUMED and LAMMPS input writing and checking, trajectory parsing, statistics, molecular structure geometry, curve fitting, unit conversion, and HPC script generation.

Readme

STEMKit

CI npm DOI

Browser tools for computational chemistry, plus stemkit-core, the tested library underneath them.

All computation is client-side. No uploads, no accounts, no install. Tools work offline once the page loads.

Live: https://stemkit.net

Quick start

Serve the site (static, no build step):

git clone https://github.com/LD-Shell/stemkit.git
cd stemkit
python3 -m http.server 8000     # then open http://localhost:8000/

Opening the HTML files over file:// will not work. Seventeen tools load ES modules, which browsers block outside HTTP.

Use the library, from npm (Node 18 or later, no dependencies):

npm install stemkit-core
import { readFileSync } from 'node:fs';
import { parseXvg, extractColumn, columnStats } from 'stemkit-core';

const { matrix } = parseXvg(readFileSync('rmsd.xvg', 'utf8'));
console.log(columnStats(extractColumn(matrix, 1)));

Run the tests, from a clone:

npm install
npm test                        # 4371 tests, 44 modules
node tests/smoke.mjs            # end-to-end against a real install

npm scripts

| Script | Does | |---|---| | npm test | Jest, 4371 tests | | npm run test:coverage | coverage report (see docs/COVERAGE.md) | | npm run check:links | internal and external link check | | npm run check:links:internal | internal only, no network | | npm run check:chrome | shared header, theme script and tool names agree across pages | | npm run build:css | rebuild Tailwind after editing src/tailwind/input.css | | npm run watch:css | same, on change | | npm run build:sitemap | regenerate sitemap.xml from the pages | | npm run check:sitemap | fail if sitemap.xml is out of date | | npm run check:gromacs, check:ndx | compare the .mdp checker and index groups with an installed GROMACS (GMX_BIN) | | npm run check:plumed | compare the PLUMED input reader with installed PLUMED versions (PLUMED_BINS) | | npm run check:lammps, check:lammps-data, check:lammps-workflow | compare the LAMMPS input checker, data-file reader and workflow builder with an installed LAMMPS (LMP_BIN) | | npm run build:lammps-docs | regenerate the LAMMPS reference tables from a LAMMPS source tree |

What is here

18 research tools:

| Area | Tools | |---|---| | Data and statistics | plot digitiser, data cleaner, statistics calculator, error-bar generator, outlier detector, curve fitter, plot builder | | Molecular simulation | XVG visualiser, structure inspector, coordinate manipulator, MD workflow generator (GROMACS, LAMMPS, PLUMED) | | Writing and citations | BibTeX sanitiser, BibTeX deduplicator, DOI to BibTeX, journal abbreviator (ISO 4), visual LaTeX tables, equation formatter | | Units | scientific converter: energy, length, time, force, pressure, dipole, charge, polarizability, spectroscopy, temperature, heat capacity |

Three further pages are workflow helpers, not research tools, and are not part of the scholarly contribution: Pomodoro timer, decision matrix, kinetics sandbox.

stemkit-core holds the computation: 43 DOM-free domain modules, plus an aggregate export (index.js), a Node entry (node.js), a dependency-injection layer (vendor.js) and the release version (version.js). API reference in src/core/README.md.

Why the computation is a separate library

Client-side tools are good for privacy and bad for reproducibility: a figure produced by clicking is hard to regenerate six months later. Moving the computation into an importable library makes the same code path scriptable, version-pinnable and testable.

Docs

| File | Covers | |---|---| | src/core/README.md | library API | | docs/SETUP.md | layout, deployment, gotchas | | docs/COVERAGE.md | reading the coverage report | | docs/CSS.md | stylesheets and where rules belong | | docs/FIGURES.md | the shared plot area and Python script on every plotting page | | CHANGELOG.md | changes, including output-affecting fixes | | CONTRIBUTING.md | contributing, and where code belongs | | THIRD_PARTY_LICENSES.md | licences of vendored libraries and of the GROMACS, PLUMED and LAMMPS reference data | | paper/ | manuscript, LaTeX and Markdown |

Citing

10.5281/zenodo.21543112

Resolves to the current release. Machine-readable metadata in CITATION.cff.

Licence

MIT, see LICENSE. Vendored libraries under js/dependencies/ keep their own licences: THIRD_PARTY_LICENSES.md.