Skip to content
Liber Primus Translator
Branch: master
Clone or download
Latest commit d622f79 Jul 5, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
data Initial commit. May 9, 2018
lib Add odd(), even(), fib(). Rename`mobius()` => `mob()` Jul 5, 2018
.editorconfig Initial commit. May 9, 2018
.eslintrc.js Relax <new-cap> rule. May 16, 2018
.gitignore Initial commit. May 9, 2018
config.js Clean up. Jul 5, 2018
idkfa Clean up. May 16, 2018
irc Fix spelling. May 16, 2018
license Initial commit. May 9, 2018
package-lock.json Bump to newest versions Jul 5, 2018
package.json Bump to newest versions Jul 5, 2018 Fix typo Jul 5, 2018

Liber Primus Translator

A toolset for working with 3301's Liber Primus.

Quick start

Clone and run the repository to translate the first segment of Liber Primus.

$ git clone .
$ npm install
$ chmod u+x idkfa
$ ./idkfa -s 0.0 -v l -i l

Available Commands

-c, --charAt

Returns latin character(s) at position(s) n.

-c 0 1 2 3
-f, --find

Finds crib candidates and returns source, source path and key

-f the circumference
-i, --invert

Inverts/Reverses source, gematria and key properties

-i f
  • f — Invert gematria column: futhark
  • k — Invert key
  • l — Invert gematria column: latin
  • o — Invert gematria column: offset
  • p — Invert gematria column: prime
  • s — Reverse shift
  • t — Reverse source text
-k, --key

Generates and applies key(s) for decryption. Keys can be denoted as integer, integer csv, latin, futhark or mathematical expression. Multiple keys are seperated by a space.

For details on using mathematical expressions see: MathJS Functions

Expressions must be enclosed in single quotation marks.

Generator functions int(), odd(), even(), prime(), fib() will accept 0, 1 or 2 parameters of type integer .

  • 0 parameters will generate as many consecutive numbers as the selected source has graphs.
  • 1 parameter will generate first n consecutive numbers, and repeat as source has graphs.
  • 2 parameters will generate consecutive numbers from n to n, and repeat as source has graphs.

If first parameter is larger than second, order of numbers will be reversed.

Available transformations: Euler Phi ephi(), Möbius: mob()


Generate key: 1,1,1,1..

-k 1

Generate key: 1,2,3,1,2,3..

-k 1,2,3

Generate key: 23,10,1,10,9,10,16,26,23,10,1,10,9,10,16,26..

-k divinity

Generate key: 0,3,3,17,24,4,0,3,3,17,24,4..

-k ᚠᚩᚩᛒᚪᚱ

Generate key: 1,2,4,6,10,12,16,18,22,28,30,36..

-k '$(ephi(x), x, prime())'

Generate key: 29,23,19,17,13,11,7,5,29,23,19,17,13,11,7,5..

-k '$(x, x, prime(10, 2))'

Generate keys: 1,2,3,1,2,3.. and 23,10,1,10,9,10,16,26,23,10,1,10,9,10,16,26..

-k 1,2,3 divinity
-p, --patch
  • d — Patch the dictionary to match expected output ((I)NG, I(A/O)..)
  • s — Patch chars at specific positions within source. (See config.js)
-p s
-s, --source

Select part(s) of source. Source accepts one or multiple paths, each consisting of one or multiple waypoints, seperated by a dot. Each waypoint denotes an offset within the hierarchical source array.

-s 0.0

Select chapter 0

-s 0

Select section 12 of chapter 0

-s 0.12

Select paragraph 1 of section 13 of chapter 0

-s 0.13.1

Select sentence 1 of paragraph 0 of section 11 of chapter 0


Select word 5 of sentence 4 of paragraph 0 of section 11 of chapter 0


Select graph 1 of word 5 of sentence 4 of paragraph 0 of section 11 of chapter 0

-v, --verbose

Sets the data to return.

-v c w x
  • c — The char (graph) count of the selected source.

  • d — Matches generated latin against a dictionary and returns longest and most matched words.

  • f — The generated latin as futhark.

  • i — The Index of Coincidence for the given source.

  • k — The generated key(s).

  • l — The generated latin text.

  • p — The generated text as primes.

  • s — The selected source

  • w — The word count of the selected source.

  • x — The checksum (sum of gemartia prime values) of the selected source.

-w, --wordAt

Returns latin word(s) at position(s) n.

-w 21 27 42

Known Translations

Segment: 0

./idkfa -s 0.0 -v l -i l

Segment: 1

./idkfa -s 0.1 -v l -p s -k divinity

Segment: 2

./idkfa -s 0.2 -v l

Segment: 3

./idkfa -s 0.3 -v l -i l -k 3

Segment: 4

./idkfa -s 0.4 -v l

Segment: 5

./idkfa -s 0.5 -v l -p s -k firfumferenfe

Segment: 6

./idkfa -s 0.6 -v l

Segment: 16

./idkfa -s 0.16 -v l -p s -k '$(ephi(x), x, prime())'

Segment: 17

./idkfa -s 0.17 -v l
You can’t perform that action at this time.