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 🙏

© 2024 – Pkg Stats / Ryan Hefner

wave-func

v1.0.10

Published

A strictly typed order of all the things that make up our reality as we know it. ⚛️ Ψ

Downloads

54

Readme

Ψ Func

A TypeScript based relation to the fundimental building blocks of our reality.

I found it difficult to learn the different and difference between the fundimental particles. So I've built a strictly typed package of all of them and how they relate to each other. This is mainly because of the similarly named particles and the same suffix used for all the different types.

Install

$ yarn add wave-func

Fundimental Particles

Properties

Property | Purpose | Example value --- | --- | --- particle.name | The name of the particle | electron particle.group | The group of the particle | fermion particle.type | The type (subtype) of the particle | lepton particle.appliedForces | An array of forces the particle interacts with | [ForceType.ELECTROMAGNETISM] particle.charge | An object of the particles charge with positive/negative values | {value: 0.333333, state: 'negative'} particle.chargeForHumans | The charge value for humans | +2/3 -1/3 particle.scalar | A boolean as to whether the particle is scalar | false particle.antiMatter | A boolean as to whether the particle is considered antimatter | false particle.mass | The overall mass of the particle in gmev | .511 particle.theoretical | A boolean whether the particle is proven or theoretical | false particle.symbol | The particle's symbol | e particle.spin | The particles spin | "1/2"

Below is a list of all different types of fundimental particles and some brief info.

Fermions

All particles with mass.

Quarks

name | charge | spin | anti matter --- | --- | --- | --- UpQuark | +2/3 | 1/2 | false DownQuark | -1/3 | 1/2 | false TopQuark | +2/3 | 1/2 | false BottomQuark | -1/3 | 1/2 | false StrangeQuark | -1/3 | 1/2 | false CharmQuark | +2/3 | 1/2 | false CharmQuark | +2/3 | 1/2 | false AntiUpQuark | -2/3 | 1/2 | true AntiDownQuark | +1/3 | 1/2 | true AntiTopQuark | -2/3 | 1/2 | true AntiBottomQuark | +1/3 | 1/2 | true AntiStrangeQuark | +1/3 | 1/2 | true AntiCharmQuark | -2/3 | 1/2 | true AntiCharmQuark | -2/3 | 1/2 | true

Leptons

name | charge | spin | anti matter --- | --- | --- | --- Electron | -1 | 1/2 | false Positron | +1 | 1/2 | true ElectronNeutrino | 0 | 1/2 | false ElectronAntiNeutrino | 0 | 1/2 | true Muon | -1 | 1/2 | false AntiMuon | +1 | 1/2 | true Tau | -1 | 1/2 | false AntiTau | +1 | 1/2 | true TauNeutrino | -1 | 1/2 | false AntiTauNeutrino | 0 | 1/2 | true MuonNeutrino | 0 | 1/2 | false AntiMuonNeutrino | 0 | 1/2 | true

Bosons

'Communication' or 'transfer' particles that interact with applied forced or fermions

name | Forces | Scalar | Spin | Charge --- | --- | --- | --- | --- Photon | Electromagnetic | false | 1 | 0 Gluon | Strong force | false | 1 | 0 ZBoson | Weak force | false | 1 | 0 PositiveWBoson | Weak force | false | 1 | 1 NegativeWBoson | Weak force | false | 1 | -1 Higgs Boson | | true | 0 | 0

import { Photon, UpQuark } from 'wave-func';

const photon = new Photo();

const up = new UpQuark();

const bosons = getBosons(up); // [Gluon, PositiveWBoson, NegativeWBoson, ZBoson]

Forces

  • Electromagnetic
  • Weak force
  • Strong force (chromodynamic)

Spin

The spin of a particle

Elements

The atoms of our reality

import { Oxygen } from 'wave-func';

const oxygen = new Oxygen();

console.log(oxygen.symbol, oxygen.hardons, oxygen.electrons, oxygen.electronShells, oxygen.meltingPoint, oxygen.boilingPoint)

Properties

Property | Purpose | Example value --- | --- | --- element.electrons | The amount of electrons charged to atom. In shells | [2, 8, 8, 2] element.electronShells | The number of electron shells on an atm | 4 element.name | The name of the element from ElementName enum | Calcium element.number | The atomic number of the element (number of protons considered neutral) | 20 element.atomicSymbol | The symbol given to the atomic structure | Ca element.symbol | The atomic symbol and the sub of the element's proton count if required | 21Ca element.group | The atomic group of the element | Alkalin metals element.meltingPoint | The melting point of the element in kelvin | 1115 element.boilingPoint | The boiling point of the element in kelvin | 1757 element.hardons | An array of hardon particles in the nucleus | [[Function Proton], [Function Neutron]] (not a helpful example) element.charge | The overall charge of the element (sum of proton charge, neutron charge and electron charge) | 0 1 element.overallChargeStatus | The overall charge of the element: positive or negative | negative element.stable | A boolean of the overall atom's charge | true

Functions

addHardon

Adds a hardon particle to the nucleus which will change the overall atom's charge, stability and symbol output.

const element = new Oxygen();

console.log(element.symbol); // O
console.log(element.charge); // 0
console.log(element.stable); // true

element.addHardon(new Proton());

console.log(element.symbol); // 9O
console.log(element.charge); // 1
console.log(element.stable); // false

Eventually I want to be able to change the element's atomic name and prototype based on the overall protons/neutrons in the hardon array (nucleus)

Charge

import { Proton, Neutron, Carbon } from 'wave-func';

const proton = new Proton();
const neutron = new Neutron();

console.log(proton.charge); // 1
console.log(neutron.charge); // 0

const carbon = new Carbon();

console.log(carbon.charge); // 0

carbon.addHardon(new Proton());
console.log(carbon.charge); // 1

Anti matter

import { Proton, Electron, oppositeMatter } from 'wave-func';

const antiMatter = oppositeMatter(new Proton()); // AntiProton
const antiMatter = oppositeMatter(new Electron()); // Positron

Idea

import { Oxygen, Neutron, Proton } from 'wave-func';

const element = new Oxygen();

console.log(element.constructor); // [Function Oxygen]
element.addHardon(new Neutron());

console.log(element.contructor, element.symbol); // [Function Oxygen] 9O

element.addHardon(new Proton());
console.log(element.constructor, element.symbol); // [Function Fluorine] F