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

reyhan-particle-morph-library

v0.1.2

Published

Reusable Three.js particle morph library for sphere-to-text animations with customizable colors and morph timing.

Readme

Particle Morph Library

Reusable Three.js particle morph library for sphere-to-text animations with customizable colors, hover feedback, and morph timing.

Features

  • Sphere and text morph targets
  • Custom text via text
  • Morph timing via morphDurationMs
  • Editable color themes and presets
  • Pointer hover color feedback
  • Separate demo for local testing

What is inside

  • src/core/: main library class and runtime behavior
  • src/config/: default values and editable color presets
  • src/generators/: shape builders like sphere and text
  • src/utils/: small helpers like morph timing
  • example/: a demo page that uses the library
  • package.json: local package setup, separate from your main project

Installation

npm install reyhan-particle-morph-library three

Quick Start

import { ParticleMorph, colorPresets } from "reyhan-particle-morph-library";

const morph = new ParticleMorph({
  container: document.getElementById("scene"),
  particleCount: 30000,
  text: "ZINAV",
  morphDurationMs: 1400,
  colors: colorPresets.candyPlasma,
});

morph.setText("ZINAV");
morph.setSphere();
morph.destroy();

Public API

  • new ParticleMorph(options)
  • setText(text)
  • setSphere()
  • destroy()

Config Props

  • container: required DOM element for the renderer
  • particleCount: number of particles
  • text: initial text to render instead of starting from the sphere
  • morphDurationMs: morph timing in milliseconds
  • textFont: canvas font used for text sampling
  • sphereRadius: sphere size
  • colors.baseStart: first base color
  • colors.baseEnd: second base color for the mixed particle palette
  • colors.hover: color used when the pointer moves over particles

Project Structure

  • Change default props in src/config/defaults.js
  • Add new reusable themes in src/config/colorPresets.js
  • Change sphere generation in src/generators/sphere.js
  • Change text point generation in src/generators/text.js
  • Change morph timing behavior in src/utils/getMorphStrength.js

Local Development

npm install
npm run dev

Then open the local Vite URL, usually http://localhost:5173.

Build For npm

npm run build

This creates the publishable package files in dist/.

Publish To npm

npm login
npm publish --access public

If the package name is already taken on npm, change the name field in package.json first.

GitHub Publishing

If you want to make this available to others on GitHub:

cd /home/reyhan/Desktop/agripion/particle-morph-library
git init
git add .
git commit -m "feat: add particle morph library"
git branch -M main
git remote add origin <YOUR_GITHUB_REPO_URL>
git push -u origin main

Notes

  • Nothing in this folder is wired into your existing project.
  • The structure keeps rendering logic separate from the UI layer so it is easier to integrate with React, Next.js, or plain HTML later.
  • three is a peer dependency, so consumers should install it in their own project.