Halcyon Video – a 3D video store for your media server
📼 Halcyon Video: A Nostalgic 3D Gateway for Your Media Server
Halcyon Video transforms your digital Jellyfin collection into a fully immersive, walkable 1990s-style video rental store. Instead of scrolling through a grid of posters, you can now physically stroll through aisles under the hum of warm fluorescent lights, pluck a movie from the shelf, and examine the box art before "renting" it.
"It's not just a piece of software; it's a time machine for your movie night."
🕹️ Experience the Demo
You can test the experience immediately without any setup or account: 👉 Live Demo
Warning: The demo loads a synthetic library of titles. This requires significant GPU resources and several GBs of RAM. It is highly recommended to use a plugged-in computer rather than a battery-powered laptop.
🛠️ The Technical Architecture
At its core, Halcyon Video is a high-performance web application built with a modern stack:
Vite + TypeScript + three.js (with an optional Tauri wrapper for desktop installation).
How it Works
The app connects to your Jellyfin server and procedurally generates a store layout based on your metadata:
- Libraries Store Aisles
- Genres Signposted Sections
- Low Ratings The "Bargain Bin"
- Duplicates Stacked copies behind the primary face
🎨 Total Customization: One Library, Four Dimensions
The store isn't a static preset. You can mix and match the following independent settings to create your perfect rental atmosphere:
| Feature | Options | Details |
|---|---|---|
| Era | 1990, 1993, 2000, 2010 | From board signage/VHS to wire-black DVD racks. |
| Lighting | Day, Sunset, Night | 8 distinct HDR skies affecting the front glass light. |
| Floor Plan | Straight, Diagonal, Herringbone | Different shelf arrangements to fit the room. |
| Media Format | VHS or DVD | Entire store re-cased with period-accurate shells. |
Additional Capabilities
- RomM Integration: Create a gaming department with platform-specific bays and jewel cases.
- Remote Play: Stream the 3D store to any browser via a dedicated TURN relay.
- Deep Branding: Change logos, colors, and fixtures via simple data folders (no coding required).
- Leaner Demo: (Planned) A lightweight version of the web demo.
- More Adapters: (Roadmap #32) Expanding the media layer.
🚶 Walking the Store
You can navigate the store in two ways:
- Cursor Mode: Jump from shelf to shelf with automatic duplicate skipping.
- First-Person Mode: Press
Fto enter. UseWASDto move, the mouse to look around, and click to interact.
The Atmosphere
- The New Releases Wall: Your latest additions are displayed face-out under a classic "2-EVENING NEW RELEASE RENTAL $3" sign.
- Audio-Visuals: Ceiling-mounted CRTs play family-safe clips from your library, featuring positional audio that shifts as you walk.
- Visual Cues: 4K titles feature a distinct
4K sticker, and popular movies show multiple copies deep on the shelf.
📦 The "Physical" Interaction
When you find a movie, press Enter to lift the case. You can rotate the box to see:
- The Front: Your custom retail art.
- The Back: A detailed rental sleeve containing:
- Synopsis, Director, Cast, Year, and Runtime.
- Genre-specific "hype" quotes (e.g., "AN EXPLOSIVE SCI-FI SPECTACLE!").
- A technical specifications table:
| Spec | Detail |
|---|---|
| Aspect Ratio | 2.39:1 |
| Dynamic Range | HDR10 / Dolby Vision |
| Audio | DTS-HD Master Audio |
| Subtitles | English, Spanish, French |
Note: TV series appear as 3D season boxsets; rotate to the side panel to select specific episodes.
🖥️ The Search Terminal & Checkout
Need something specific? Press / to teleport behind the counter to the clerk's station.
- Interface: An amber phosphor CRT monitor.
- Function: Search by title, director, or genre. Pressing
Enterwill fly the camera directly to that movie's location on the shelf.
The Rental Process
Once you've picked your movies, they form a hand-fanned stack at the bottom of your view. Press C to walk to the counter and complete the "rental."
⚡ Performance & Efficiency
While the demo is heavy, the app is designed for a dedicated HTPC (Home Theater PC).
This is just a tech demo This is a functional daily-driver for movie selection. When no one is interacting with the store, it stops rendering entirely to save power.
Example of the procedural shelf generation and lighting.