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

baselode

v0.1.12

Published

Geoscience drillhole data processing and visualization toolkit

Readme

Baselode (JavaScript)

Baselode is an open-source JavaScript toolkit providing structured data models for exploration and mining applications.

Version 0.1.0 focuses on domain-aware data models and validation utilities for drillhole-style data. The goal is to provide a consistent foundation for analytics, visualization, and AI workflows.


Installation

npm install baselode

Requires: Node.js 20+, React 18+


  • Data Loading: Efficiently import and manage your exploration and mining data (drillholes, assays, geology/lithology, block models, structural measurements).
  • Data Models: Utilize predefined models to normalize and interpret your data (40+ column name variants, minimum-curvature desurveying).
  • Data Visualization: Create insightful 2D strip logs (Plotly) and interactive 3D scenes (Three.js) with orbit/fly controls, assay coloring, structural disc rendering, and click-select glow.
  • Common Algorithms: Access a range of algorithms designed to solve common problems in the industry.

Example

import { parseDrillholesCSV } from 'baselode';

// Example: file is a File object from an <input type="file" />
const file = /* your File object */;
file.text().then(csvText => {
  const { holes } = parseDrillholesCSV(csvText);
  // holes is an array of collar objects
  console.log(holes);
});

Included in 0.1.0

  • Drillhole collar, survey, assay, and geology/lithology models
  • Downhole interval structures
  • Basic validation utilities
  • Strip log visualisations (numeric, categorical, geology)
  • Map visualisations
  • 3D visualisations

Design Principles

  • Explicit domain models (not generic tables)
  • Minimal dependencies
  • Visualisation tooling as key to data analysis
  • Designed for integration with analytics, GIS, and AI systems

Roadmap

Future releases may include:

  • Geospatial helpers
  • Interoperability with common mining formats
  • Visualization adapters

3D Scene Architecture

Baselode3DScene is a thin orchestrator; rendering is handled by domain modules:

| Module | Responsibility | |---|---| | drillholeScene.js | Cylinder mesh building, assay coloring, camera fit | | blockModelScene.js | Merged exterior-face block geometry, vertex colors | | structuralScene.js | Structural disc meshes (dip/azimuth orientation) | | sceneClickHandler.js | Canvas click/hover raycasting | | selectionGlow.js | EffectComposer + OutlinePass per-object glow | | baselode3dCameraControls.js | Orbit, fly, FOV, pan, dolly |

License

GNU General Public License v3.0 or later (GPL-3.0-or-later).

See the LICENSE file in this repository for full details.


Contributing

Contributions and issue reports are welcome via GitHub.