Deterministic infinite library generator inspired by Borges' "The Library of Babel"
Generate unique, deterministic books and pages based on coordinate systems without storing any data.
smart-babylon-library — a deterministic infinite library generator inspired by Borges' "The Library of Babel". Generate unique, deterministic books and pages based on coordinate systems without storing any data.
⚠️ Project Status: Research & Development
IMPORTANT DISCLAIMER: This project is currently in active research and development phase. It is provided as-is for academic and experimental purposes only. No guarantees of stability, security, or fitness for any particular purpose are provided. Users assume all risks associated with usage.
Current Version: 1.1.1 (Multi-Universe Support)
Version 1.0.1 (New Architecture):
Legacy Version: 0.6.5 (Deprecated)
Version 0.6.5 and earlier are no longer supported. Users of older versions should migrate to 1.0.0+.
This library implements concepts from our published research:
pip install smart-babylon-library
from smart_babylon_library import SmartBabylonLibrary
# Create library instance
library = SmartBabylonLibrary()
# Get a book by coordinates
book = library.get_book(floor=1, room=3, cabinet=2, shelf=5, book_number=42)
print(f"Book: {book}")
print(f"Title: {book.title}")
print(f"Pages: {book.max_pages}")
# Access specific page
page = book.get_page(0)
print(f"Page content: {page.content}")
Library now supports multiple parallel universes - each with its own deterministic content:
from smart_babylon_library import SmartBabylonLibrary, LibraryConfig # Different universes - different content fantasy_config = LibraryConfig(universe="middle_earth") scifi_config = LibraryConfig(universe="andromeda_galaxy") fantasy_library = SmartBabylonLibrary(fantasy_config) scifi_library = SmartBabylonLibrary(scifi_config) # Same coordinates, different content fantasy_book = fantasy_library.get_book(1, 1, 1, 1, 1) scifi_book = scifi_library.get_book(1, 1, 1, 1, 1) print(fantasy_book.title != scifi_book.title) # True # Universe is included in JSON serialization print(fantasy_book.to_json()) # Includes 'universe' field
Each item is located using 6-dimensional coordinates:
floor — Library floorroom — Room numbercabinet — Cabinet numbershelf — Shelf numberbook — Book numberpage — Page number
from smart_babylon_library import SmartBabylonLibrary, LibraryConfig
from smart_babylon_library.character_sets.alphabets import LatinAlphabet, CyrillicAlphabet
from smart_babylon_library.character_sets.digits import Digits
# Basic configuration
config = LibraryConfig(
universe="my_library", # Universe name
title_length_range=(10, 100), # Title length range
content_length_range=(500, 2000), # Page content length range
pages_per_book_range=(5, 50) # Pages per book range
)
# Custom character sets (only Latin and digits)
custom_config = LibraryConfig(
universe="numeric_world",
title_length_range=(10, 50),
content_length_range=(200, 1000),
pages_per_book_range=(5, 20),
character_sets=[LatinAlphabet(), Digits()]
)
library = SmartBabylonLibrary(config)
SmartBabylonLibrary:
get_book(floor, room, cabinet, shelf, book_number) — Get book by coordinatesget_book_from_dict(coordinates_dict) — Get book from dictionaryget_book_json(coordinates_dict) — Get book as JSON stringget_page(floor, room, cabinet, shelf, book_number, page) — Get page by coordinatesget_page_from_dict(coordinates_dict) — Get page from dictionaryget_page_json(coordinates_dict) — Get page as JSON stringLibraryBook:
title — Book title (generated)max_pages — Total pages in bookcoordinates — Book coordinatesconfig — Library configuration with universeget_page(page_number) — Get specific pageto_dict() — Convert to dictionary (includes universe)to_json() — Convert to JSON (includes universe)LibraryPage:
content — Page content (generated)page_number — Page numbercoordinates — Page coordinatesconfig — Library configuration with universeto_dict() — Convert to dictionary (includes universe)to_json() — Convert to JSON (includes universe)Library supports configurable character sets. By default, includes all sets, but can be customized:
Built-in Character Sets:
CyrillicAlphabet() — Russian alphabet (upper and lower case)LatinAlphabet() — English alphabet (upper and lower case)Digits() — Numbers (0-9)Punctuation() — Punctuation and symbolsCustom Character Sets:
from smart_babylon_library.character_sets.core import CharacterSet
from smart_babylon_library.library.config import LibraryConfig
class MyCharset(CharacterSet):
@property
def characters(self):
chars = list("ABC123!@#")
return sorted(chars)
@property
def name(self) -> str:
return "My Custom Charset"
config = LibraryConfig(universe="custom_universe", character_sets=[MyCharset()])
Content generation is deterministic based on coordinates and universe:
# Same coordinates = same content book1 = library.get_book(1, 1, 1, 1, 1) book2 = library.get_book(1, 1, 1, 1, 1) assert book1.title == book2.title assert book1.get_page(0).content == book2.get_page(0).content # Different universe = different content (even with same coordinates) other_library = SmartBabylonLibrary(LibraryConfig(universe="other")) book3 = other_library.get_book(1, 1, 1, 1, 1) assert book1.title != book3.title # Different universes
🚀 SMART BABYLON LIBRARY - COMPREHENSIVE DEMO ============================================================ 🔹 1. BASIC LIBRARY USAGE ================================================== 📖 Book: Book '8g^Н,ВD|y7Тша|t`хGПхдя7Ъx"Ххg1...' (Universe: default) 📝 Title: 8g^Н,ВD|y7Тша|t`хGПхдя7Ъx"Ххg1AЪ32?#9бRW6Ия9фЪYQЪШaЁ.ЪЛe;4Hн... 📄 Total pages: 9782 📍 Coordinates: Floor1/Room3/Cabinet2/Shelf5/Book42/Page0 🌌 Universe: default 🔹 2. JSON SERIALIZATION WITH UNIVERSE ================================================== 📖 Book JSON includes 'universe' field 📃 Page JSON includes 'universe' field 🔹 3. MULTIPLE UNIVERSES ================================================== Same coordinates across different universes: 🧙 Fantasy World: Middle Earth 🚀 Sci-Fi Galaxy: Andromeda 🤖 Cyberpunk: Neo Tokyo 🐫 Ancient Egypt: Pharaohs ✅ All titles are unique across universes 🔹 4. CUSTOM CHARACTER SETS ================================================== 🔢 Digits Only: '02795259743711' 🔤 Latin Only: 'RsjAstelGJw' 😊 Emoji Only: '🙂😯🥸🤪☹🤮' 🔹 5. DETERMINISTIC BEHAVIOR ================================================== ✅ Same coordinates = same content ✅ Different coordinates = different content ✅ Different universes = different content 🎉 DEMONSTRATION COMPLETE!
By using this software, you agree to the full disclaimer terms.
Software provided "AS IS" without warranty. You assume all risks.
Full legal disclaimer: See DISCLAIMER.md
License: BSD 3-Clause License