One Open Source Project a Day (Part 59): Dream Recorder - Turn Dreams into AI Videos with a Physical Device

Deep dive into Dream Recorder, Modem's open-source dream recording device — speak your dreams into a mic, generate AI videos via OpenAI and LumaLabs, build with Raspberry Pi 5 and 3D-printed enclosure for ~€285

·5 min read·Hardware & Creativity

Introduction

"Record your dreams. Wake up. Speak. Watch them come to life."

This is Part 59 of the "One Open Source Project a Day" series. Today's project is Dream Recorder (GitHub).

Want to turn your dreams into replayable videos? Dream Recorder is Modem's open-source physical dream recording device: wake up, speak your dream into the microphone, and the system uses OpenAI for text/prompt generation and LumaLabs for AI video, displayed on a 7.9" ultrawide screen. Built with Raspberry Pi 5, capacitive touch, and a 3D-printed enclosure, ~€285 to build, ~$0.15 per dream.

What You'll Learn

  • Dream Recorder hardware and workflow
  • Single-tap and double-tap interaction
  • Hardware BOM and 3D-printed enclosure
  • Local development and dreamctl
  • Comparison with software-only solutions

Prerequisites

  • Basic familiarity with Raspberry Pi and Docker
  • 3D printer (optional, for enclosure)

Project Background

Project Overview

Dream Recorder is Modem's open-source dream recording and AI video generation device. After waking, users speak their dreams into a microphone; the system transcribes speech, generates video prompts, and calls LumaLabs to produce 5-second 21:9 ultrawide videos for playback on the device. Hardware: Raspberry Pi 5, 7.9" 1280×400 ultrawide display, capacitive touch, USB microphone; enclosure is 3D-printable in translucent PLA.

Team

  • Team: Modem (modemworks.com)
  • Collaborators: Mark Hinch (software & hardware), Ben Levinas & Joe Tsao (industrial design), Alexis Jamet (illustrations)

Project Data

  • GitHub Stars: 1.5k+
  • 🍴 Forks: 115+
  • 📄 License: MIT
  • 🌐 Website: modemworks.com/projects/dreamrecorder
  • 💰 Hardware cost: ~€285 (May 2025)
  • 💰 Per-dream cost: OpenAI < 0.01+LumaLabs 0.01 + LumaLabs ~0.14

Core Features

Workflow

  1. Speak your dream: Double-tap to start recording → speak into mic → single-tap to finish
  2. AI processing: OpenAI speech-to-text + video prompt → LumaLabs generates 5s 540p 21:9 video (ray-flash-2)
  3. Playback: Single-tap plays latest dream; single-tap during playback = previous dream; double-tap = back to clock mode

Interaction Logic

ActionStateResult
Single tapIdlePlay latest dream
Single tapPlayingPlay previous dream
Double tapPlayingReturn to clock mode
Double tapIdleStart recording
Single tapRecordingEnd recording and generate dream

Use Cases

  1. Personal dream journal: Speak right after waking, save as replayable video
  2. Creative inspiration: Visualize ideas from sleep or waking
  3. Hardware + AI: Full example of Raspberry Pi + touch + mic + cloud AI

Quick Start

Hardware BOM (~€285):

  • Raspberry Pi 5 8GB
  • Waveshare 7.9" ultrawide 1280×400 (touch)
  • USB microphone
  • TTP223B capacitive touch sensor
  • Power, cables, cooler, MicroSD, etc.

See README shopping list.

Install & configure:

  1. Flash Raspberry Pi OS (64-bit) with Pi Imager, hostname dreamer, enable SSH
  2. SSH in, run raspi-config to enable VNC and set timezone
  3. Connect with RealVNC, set screen orientation
  4. Get OpenAI and LumaLabs API keys
  5. git clone./pi_installer.sh → enter keys → sudo reboot

Local development:

git clone https://github.com/modem-works/dream-recorder
cd dream-recorder
cp .env.example .env
cp config.example.json config.json
# Edit .env with API keys
docker compose -f docker-compose.dev.yml build
docker compose -f docker-compose.dev.yml up -d
# Visit http://localhost:5000

3D-Printed Enclosure

  • Files: 3DAssets/dream-recorder_front.stl, dream-recorder_back.stl, pre-sliced G-code
  • Material: Translucent PLA recommended
  • Settings: 0.2mm layer height, 0.4mm nozzle, 15% infill, tree supports
  • Assembly: Press-fit front and back, no glue or screws

Project Advantages

ComparisonDream RecorderSoftware-onlyText diary
FormPhysical device, bedsidePhone/PC appPen/notes
OutputAI videoVariesText
InteractionTouch + voiceTouch + voiceHandwrite/type
Cost~€285 build + APISubscription/freeMinimal
Open sourceMIT, full HW+SWVariesN/A

Deep Dive

Tech Stack

  • Languages: Python, JavaScript, Shell, HTML, CSS
  • Runtime: Docker Compose, Raspberry Pi OS
  • AI: OpenAI (speech-to-text, prompts), LumaLabs (video)
  • Hardware: Raspberry Pi 5, GPIO, TTP223B, USB mic

dreamctl Commands

CommandDescription
./dreamctl configEdit config
./dreamctl testRun unit tests
./dreamctl test-covTest coverage
./dreamctl gpio-logsView GPIO logs
./dreamctl helpHelp

Management UI

Visit http://dreamer:5000/dreams to view and manage generated dreams.

Cost & APIs

  • OpenAI: Speech-to-text + video prompts, < $0.01/dream
  • LumaLabs: 540p 21:9 5s video (ray-flash-2), ~$0.14/dream
  • Suggested: ~5OpenAIcredits, 5 OpenAI credits, ~20 LumaLabs credits

Official Resources

Target Audience

  • Creatives who want to visualize dreams
  • Raspberry Pi and hardware DIY enthusiasts
  • Developers learning AI video + hardware integration
  • Users with 3D printers for the enclosure

Visit my homepage for more useful knowledge and interesting products