@alleyio/cheatbeads

1.0.3 • Public • Published

Cheatbeads

Cheatbeads is a framework for taking a string of text, transcoding it into a kind of binary expression, then relaying that to an emitter for handling.

One use case is to convert chess notation into morse code, then emit it wirelessly to some device smuggled onto a person, allowing them to silently receive the message (eg, through vibrations) without arousing suspicion.

It comes bundled with a Morse code transcoder and a simple console emitter, and knows standard chess notation. It will turn the UTF8 chess pieces into their ASCII equivalents by way of aliasing, allowing for better compatibility with most notation exports.

How to use

npm -i -D @alleyio/cheatbeads

It's ES6, so download, fork, or whatever, and then:

import Cheatbeads from './cheatbeads.js';

import Hoarse from './transcoders/hoarse.js';
import Console from './transcoders/console.js';

const stimulation = new Cheatbeads({
    transcoder: new Hoarse(),
    emitter: new Console(),
});

stimulation.parse('♔b6#').emit(); // king to b6, checkmate

More complex transcoders

Morse was chosen as a simple example of transcoding due to its binary state expression of . and -. If connected to a physical device, we can understand this as off or on, or perhaps a short & long vibration, respectively.

The result is still a very long series of Morse code characters, and then translated to something physical like a vibration, this becomes a time-expensive process. However, Morse could be adapted to work with 3 or more state expressions, giving more data density in a shorter amount of time.

Imagine 3 devices that accept a off or on state. If the devices were located such that the wearer could discern which device was vibrating, you could have a huge number of unique sequences. That seems impractical to memorize that many combinations, so to keep it simple, there's a demo transcoder called "Hoarse."

Hoarse

Hoarse is a structured way to communicate chess notation through three, independently vibrating devices. The goal is to be easily understood without learning too many combinations of vibrations. For the purposes of simplicity, we'll refer to the devices as A, B, C; with the vibration duration denoted by the familiar Morse, or . and -.

  • Piece names (and in one collision example, b or the bishop) are denoted by a . vibration from the B device. B.
  • Board rows (numbered) are denoted by a - vibration from the A device. A-
  • Board columns (lettered) are denoted by a . vibration from the A device A.
  • Capture is C-C-
  • Check is A.A-B.B-C.C-A.A-B.B-C.C-A.A-B.B-C.C-A.A-B.B-C.C-

This project contains a sample emitter for a three device setup, compatible with Hoarse.

In close

Transcoders can utilize the physical placement of physical devices to creat common patterns of vibrations that are both easier to recognize, and create unique sensations that aid in memory building.

Package Sidebar

Install

npm i @alleyio/cheatbeads

Weekly Downloads

1

Version

1.0.3

License

ISC

Unpacked Size

10.9 kB

Total Files

11

Last publish

Collaborators

  • alleyio