This topic contains 7 replies, has 3 voices, and was last updated by Keiwan 1 week, 1 day ago.
January 3, 2019 at 6:42 pm #36157
Better late than never! I uploaded the invertible, multi-precision, pseudo-random number generating algorithm behind libraryofbabel.info. I hope you’ll make some weird ass stuff with it, and please share with me what you come up with:January 4, 2019 at 1:36 am #36192
So we don’t have the source code for the library itself, only the image library?January 4, 2019 at 3:20 am #36199
Fantastic work, Jonathan! The math is still a little bit out of my reach, though I have dabbled in the past with some of the resources you used. In particular, the modular inverses. It’s nice to finally see it in practice, though! Might we be able to also have a peek at the algorithms for libraryofbabel.info, despite being less efficient? Aside from just comparison, it would be great to have an offline solution for the Library of Babel 3D (which currently makes requests to the website): https://libraryofbabel.info/LoB3D.htmlJanuary 4, 2019 at 4:13 am #36206
@delengroth when was the 3D added to this site? I’ve never seen it beforeJanuary 4, 2019 at 4:26 am #36209
It’s a fan game by Keiwan (https://keiwan.itch.io/library-of-babel-3d), but re-hosted on this website. It was added around January 2016:
https://libraryofbabel.info/forum/?topic=library-of-babel-3d-beta-8January 4, 2019 at 7:33 pm #36268
have you had the experience in the game where when I’m searching for text, it suddenly says some “out of memory” error and then the game freezes?January 8, 2019 at 12:16 am #36700
Hi Jonathan. I emailed you recently regarding a C# implementation of a ‘similar’ library. It currently runs as a Window program and generates a ‘different’ library from yours basically because I use and encryption/decryption scheme (Rijndael) rather than an invertible RNG. It really doesn’t matter what the data scrambling method is as long as it is invertible and scrambles well.
The C# code actually became quite simple to implement because the ultra large precision numbers and the encryption are already provided as namespaces in the C# framework.
My approach though was a little different. To ‘search’ my code basically scrambles a 3200 character page of characters (base 29) into an array of 3200 bytes which is then encoded into an address: hexagon, wall, shelf, volume, page. The result of this gives a much larger hexagon address than your implementation – around 4,950 base 36 characters! instead of your 3,500 or so.
However, once the string is ‘located’ in the library, it is always in the same place and can be ‘browsed’ to by entering the hexagon,wall,shelf,volume,page.
You may want to read my email as it has some other info there.January 12, 2019 at 10:40 am #37233
The WebGL version of my 3D version hosted here is long outdated. You should download the latest version from the itch.io page (keiwan.itch.io/library-of-babel-3d), the App Store or Google Play Store.
I can’t host the WebGL version myself (or on itch.io) due to cross origin access restrictions and it’s too much of a hassle for both Jonathan and myself to try to debug and update that version remotely via e-mail communication.
I would add the original library algorithm to the 3D version to allow for it to be used offline, if I had the code. I want the 3D version and the website to have the same page locations, since the page generating implementation is still Jonathan’s work.