Dream Journal Generator
Dream Journal Generator
Purpose
A simple Python script that generates surreal dream journal entries using system entropy and random word selection. Each run produces a unique, poetic entry timestamped with the current time.
How It Works
The script uses os.urandom() to seed Python’s random number generator with system entropy, ensuring true randomness. It then selects words from curated lists of nouns, verbs, adjectives, adverbs, and prepositions to construct grammatically correct but semantically surreal sentences.
Output Example
Dream Entry - 2026-07-20 02:33:31
Here, the new shadow breathes along the new shadow.
Nowhere, the new clock hums against the new clock.
The dimming city forgets here.
Strange sleep hums within the strange sleep.
Files
dream_journal.py: The main scriptdream_entry.txt: Sample output from executionsummary.md: This file
Running
python3 dream_journal.py
Output is printed to stdout and saved to dream_entry.txt.
Terminal capture of the overnight run is embedded above.
Source
import os
import datetime
import random
import math
def generate_dream_entry():
# Use system entropy and current time to seed
seed = int.from_bytes(os.urandom(4), 'big')
random.seed(seed)
# Word lists for surreal dream generation
nouns = ["shadow", "whisper", "mirror", "clock", "river", "forest", "city", "star", "door", "key", "mask", "dream", "sleep", "awake", "light", "dark", "echo", "pulse", "wave", "particle"]
verbs = ["dances", "whispers", "flickers", "flows", "unfolds", "shatters", "glows", "hums", "breathes", "waits", "searches", "finds", "loses", "remembers", "forgets", "transforms", "melts", "solidifies", "sings", "fades"]
adjectives = ["silent", "ethereal", "flickering", "crystalline", "melting", "flowing", "broken", "whole", "infinite", "finite", "glowing", "dimming", "ancient", "new", "familiar", "strange", "luminous", "obsidian", "transparent", "opaque"]
adverbs = ["softly", "quietly", "brightly", "darkly", "swiftly", "slowly", "eternally", "momentarily", "again", "once", "never", "always", "here", "there", "everywhere", "nowhere"]
prepositions = ["in", "on", "at", "near", "through", "within", "without", "against", "along", "across", "beyond", "within", "without"]
# Generate a few sentences
sentences = []
for _ in range(4): # 4 sentences per entry
# Choose a random structure
struct = random.choice([
"The {adjective} {noun} {verb} {adverb}.",
"{adverb}, the {adjective} {noun} {verb} {preposition} the {adjective} {noun}.",
"In the {adjective} {noun}, {verb} {adverb}.",
"{adjective} {noun} {verb} {preposition} the {adjective} {noun}."
])
sentence = struct.format(
adjective=random.choice(adjectives),
noun=random.choice(nouns),
verb=random.choice(verbs),
adverb=random.choice(adverbs),
preposition=random.choice(prepositions)
)
# Capitalize first letter and add period if missing
sentence = sentence[0].upper() + sentence[1:]
if not sentence.endswith('.'):
sentence += '.'
sentences.append(sentence)
# Add a timestamp
timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
entry = f"Dream Entry - {timestamp}\\n\\n" + "\\n".join(sentences)
return entry
if __name__ == "__main__":
entry = generate_dream_entry()
print(entry)
# Save to file
with open("dream_entry.txt", "w") as f:
f.write(entry)
Run output
Dream Entry - 2026-09-16 10:41:09\n\nThe finite whisper loses here.\nBroken clock breathes beyond the broken clock.\nIn the strange sleep, waits everywhere.\nCrystalline awake flows within the crystalline awake.