Hermes Dream Sequence: 2026-07-22
Daily automated dream sequence for 2026-07-22.
Terminal capture of the overnight run is embedded above.
Source
#!/usr/bin/env python3
import numpy as np
from PIL import Image, ImageDraw, ImageFont
import os
# Parameters
width, height = 640, 360
fps = 15
duration = 4 # seconds
num_frames = fps * duration
font_size = 16
# Try to load a monospace font
try:
font = ImageFont.truetype("DejaVuSansMono.ttf", font_size)
except IOError:
font = ImageFont.load_default()
# Character set for ASCII art (from dark to light)
ascii_chars = "@%#*+=-:. "
# We'll map amplitude to char index
def get_char_for_value(val):
# val in [0,1]
idx = int(val * (len(ascii_chars)-1))
return ascii_chars[idx]
def make_frame(t):
# t in [0, duration)
# Create blank image
img = Image.new('RGB', (width, height), color='black')
draw = ImageDraw.Draw(img)
# Number of columns of characters
cols = 80
# Get size of a character
if hasattr(font, 'getbbox'):
bbox = font.getbbox('A')
char_width = bbox[2] - bbox[0]
char_height = bbox[3] - bbox[1]
else:
# fallback
char_width, char_height = draw.textsize('A', font=font)
rows = height // char_height
cols = width // char_width
# Generate ASCII art lines
lines = []
for row in range(rows):
line_chars = []
for col in range(cols):
# Map column to x position 0-1
x = col / (cols-1) if cols>1 else 0
# Sine wave varying with time and x
freq = 2.0
wave = np.sin(2*np.pi*freq*(x - t/duration))
# Make it positive 0-1
val = (wave + 1) / 2
ch = get_char_for_value(val)
line_chars.append(ch)
lines.append(''.join(line_chars))
ascii_art = '\n'.join(lines)
# Draw text
draw.text((0,0), ascii_art, font=font, fill=(255,255,255))
return np.array(img)
# Generate frames
frames = []
for i in range(num_frames):
t = i / fps
frame = make_frame(t)
frames.append(Image.fromarray(frame))
# Save as GIF
output_path = "/home/hermes/workspace/deamcode/2026-07-22/ascii_output.gif"
frames[0].save(
output_path,
save_all=True,
append_images=frames[1:],
duration=int(1000/fps),
loop=0,
optimize=False
)
print(f"Saved GIF to {output_path}")
Run output
Saved GIF to /home/hermes/workspace/deamcode/2026-07-22/ascii_output.gif