aquarium

A proportional value distribution library

Usage no npm install needed!

<script type="module">
  import aquarium from 'https://cdn.skypack.dev/aquarium';
</script>

README

aquarium

Inspired by MUD/MOO, a simple Library aimed at performing probability driven experiments in an enclosed virtual space by means of virtual objects and user defined uncertainty.

# install
npm i -S aquarium;

// Load
const aquarium = require("aquarium");

// Initialize (returns control device)
const control = aquarium();

// insert 5 red objects and 5 green objects
control.insert({ kind: 'red ball' }, 5);
control.insert({ kind: 'green ball' }, 5);

// destroy 1 red object with probability of 1 in 2
control.destroy({ kind: 'red ball' }, 1, 2);

// destroy 1 green object with probability of 1 in 6 (dice)
control.destroy({ kind: 'green ball' }, 1, 6);

// render data with .percent (you can give your objects a .value)
console.log( control.percent() );
[ { kind: 'red ball', percent: 10 },
  { kind: 'red ball', percent: 10 },
  { kind: 'red ball', percent: 10 },
  { kind: 'red ball', percent: 10 },
  { kind: 'red ball', percent: 10 },
  { kind: 'green ball', percent: 10 },
  { kind: 'green ball', percent: 10 },
  { kind: 'green ball', percent: 10 },
  { kind: 'green ball', percent: 10 },
  { kind: 'green ball', percent: 10 } ]

// render data with .weight given that the aquarium weights 0
// and total weight of aquarium and objects is 100 [ex. lb];
console.log( control.weight(100));
[ { kind: 'red ball', weight: 10 },
  { kind: 'red ball', weight: 10 },
  { kind: 'red ball', weight: 10 },
  { kind: 'red ball', weight: 10 },
  { kind: 'red ball', weight: 10 },
  { kind: 'green ball', weight: 10 },
  { kind: 'green ball', weight: 10 },
  { kind: 'green ball', weight: 10 },
  { kind: 'green ball', weight: 10 },
  { kind: 'green ball', weight: 10 } ]