A deterministic infinite image library generator inspired by Borges' 'The Library of Babel'
Generate unique, deterministic images based on coordinate systems without storing any data.
Babylonian Image Library is a deterministic infinite image library generator inspired by Borges' 'The Library of Babel'. It generates unique, deterministic images based on a 6-dimensional coordinate system without storing the image data itself.
New Modular Architecture: This version (1.0.1) is a complete rewrite with Multi-Universe Support, a 6D Coordinate System, Home Directory Storage, and a Modular Architecture inspired by the Smart Babylon Library.
Modular Architecture:
babylonian_image_library/ ├── library/ │ ├── config.py # ImageLibraryConfig │ ├── coordinates.py # ImageCoordinates │ ├── core.py # BabylonianImageLibrary, SmartBabylonImageLibrary │ └── generator.py # BabylonianImageGenerator
6D Coordinate System:
floor — Library floor (0-100)room — Room number (0-50)cabinet — Cabinet number (0-20)shelf — Shelf number (0-10)book — Book number (0-1000)page — Page number (0-500)Different universes produce different images for the same coordinates, allowing for isolated image libraries with different configurations.
from babylonian_image_library import SmartBabylonImageLibrary, ImageLibraryConfig # Different universes - different images fantasy_config = ImageLibraryConfig(universe="middle_earth") scifi_config = ImageLibraryConfig(universe="andromeda_galaxy") fantasy_library = SmartBabylonImageLibrary(fantasy_config) scifi_library = SmartBabylonImageLibrary(scifi_config) # Same coordinates, different images fantasy_image = fantasy_library.get_image(1, 1, 1, 1, 1, 1) scifi_image = scifi_library.get_image(1, 1, 1, 1, 1, 1)
Installation
pip install babylonian-image-library
Basic Usage
from babylonian_image_library import SmartBabylonImageLibrary
# Create library instance
library = SmartBabylonImageLibrary()
# Generate a random image
image_path = library.generate_random_image()
print(f"Image saved: {image_path}")
# Get specific image by coordinates
image = library.get_image(floor=1, room=3, cabinet=2, shelf=5, book=42, page=1)
image.save("specific_image.png")
Version 0.1.4 and earlier are no longer supported. The previous monolithic architecture has been completely replaced.
Before (0.1.4):
from babylonian_image_library import BabylonianImageLibrary library = BabylonianImageLibrary() address = library.generate_random_address() # "Room42:Wall3:Shelf7:Volume5:Book23:Page456" library.save_image(address, "image.png")
After (1.0.1):
from babylonian_image_library import SmartBabylonImageLibrary library = SmartBabylonImageLibrary() image_path = library.generate_random_image() # Automatically generates coordinates # Or use specific coordinates: image = library.get_image(floor=1, room=3, cabinet=2, shelf=5, book=42, page=1)
from babylonian_image_library import SmartBabylonImageLibrary, ImageLibraryConfig
# Custom configuration
config = ImageLibraryConfig(
universe="abstract_art", # Universe name
width=800, # Image width
height=600, # Image height
image_format="JPEG", # PNG, JPEG, etc.
quality=90 # JPEG quality (1-100)
)
library = SmartBabylonImageLibrary(config)
| Platform | Path |
|---|---|
| Linux/Mac | ~/babylonian_image_library/{universe}/ |
| Windows | C:\Users\{username}\babylonian_image_library\{universe}\ |
Image generation is deterministic based on coordinates and universe:
# Same coordinates = same image library1 = SmartBabylonImageLibrary(ImageLibraryConfig(universe="test")) library2 = SmartBabylonImageLibrary(ImageLibraryConfig(universe="test")) image1 = library1.get_image(1, 1, 1, 1, 1, 1) image2 = library2.get_image(1, 1, 1, 1, 1, 1) # Images will be identical
SmartBabylonImageLibrary — Main Interface
get_image(floor, room, cabinet, shelf, book, page) — Get image by coordinatesget_abstract_image(floor, room, cabinet, shelf, book, page) — Get abstract imagesave_image(floor, room, cabinet, shelf, book, page, filename) — Save image to filesave_abstract_image(floor, room, cabinet, shelf, book, page, filename) — Save abstract imagegenerate_random_image() — Generate and save random imageget_library_info() — Get library informationImageLibraryConfig — Configuration
universe — Universe name (default: "default")width — Image width (default: 1920)height — Image height (default: 1080)image_format — Image format (default: "PNG")quality — JPEG quality (default: 95)This library implements concepts from our published research:
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.
Full legal disclaimer: See DISCLAIMER.md
License: BSD 3-Clause License