Hypnograph is a memory-forward visual instrument for macOS.
Instead of browsing your archive like a filing cabinet, Hypnograph turns your own photos and videos into an evolving stream of sequences you can watch, steer, compose, and perform. It begins in generative playback, but it is meant to become an instrument for rediscovery, authorship, and live visual use.
The app currently centers on:
- Generative playback and sequencing of local media
- Hypnogram composition through clip selection, timing, layering, blend modes, and effect chains
- Saving hypnograms to reopen, refine, and revisit later
- Rendering hypnograms out to video for playback and sharing
- Live preview and external-display performance workflows
- Optional Effects Composer for authoring and testing effects
If you want to try the current beta build, start at hypnogra.ph, which is the current public-facing entrypoint for the project.
Hypnograph is a macOS app built in Swift with SwiftUI and AppKit, using AVFoundation, Core Image, Metal, and Photos.
Development prerequisites:
- This project uses a local Swift Package reference to
../HypnoPackages. - This project's product/documentation workflow also expects the sibling repo
../product-context-manager. - Product Context Manager:
https://github.com/lorenjohnson/product-context-manager.git - The intended setup is for all three repos to live as siblings:
/path/to/dev/Hypnograph/path/to/dev/HypnoPackages/path/to/dev/product-context-manager
Setup:
- Clone this repository into your preferred development directory.
- Change up one directory so you are in the parent folder that contains
Hypnograph. - Clone
HypnoPackagesinto that same parent folder. - Clone
product-context-managerinto that same parent folder.
Example:
git clone https://github.com/lorenjohnson/Hypnograph.gitcd ..git clone https://github.com/lorenjohnson/HypnoPackages.gitgit clone https://github.com/lorenjohnson/product-context-manager.git
Run:
- Open Hypnograph.xcodeproj in Xcode 15+.
- Select the
Hypnographscheme. - Build and run on macOS.
If your HypnoPackages path differs:
- In Xcode, remove the existing local package reference to
../HypnoPackages. - Re-add it via
File > Add Package Dependencies... > Add Local...and pick yourHypnoPackagesfolder. - Ensure
HypnoCore/HypnoUIare linked on theHypnographtarget.
Website draft/dev preview:
cd websitedocker compose -f docker-compose.dev.yml up -d- Open
http://localhost:8080
- App source: Hypnograph
- App tests: HypnographTests, HypnographUITests
- Project documentation: docs
- Website: website
For app and product work, docs is the main documentation workspace.
Useful entrypoints:
- Current work tracking: docs/queue.md
- Planned, not started: docs/backlog
- Active project docs: docs/active
- Completed project docs: docs/archive
- Reference docs: docs/reference
For website-specific dev work, start with website/README.md.
If you're collaborating on the app, start in docs. Agent-specific routing and load-order rules live in AGENTS.md.