{
  "schema": "tesign-radar/item/1",
  "generated_at": "2026-09-17T01:56:13.055Z",
  "lang": "en",
  "slug": "halcyon-video",
  "url": "https://tesign.com/en/item/halcyon-video/",
  "alternates": {
    "ko": {
      "html": "https://tesign.com/item/halcyon-video/",
      "json": "https://tesign.com/item/halcyon-video/index.json",
      "markdown": "https://tesign.com/item/halcyon-video/index.md"
    },
    "en": {
      "html": "https://tesign.com/en/item/halcyon-video/",
      "json": "https://tesign.com/en/item/halcyon-video/index.json",
      "markdown": "https://tesign.com/en/item/halcyon-video/index.md"
    }
  },
  "name": "Halcyon Video",
  "use_label": "3D video store for your media server",
  "one_liner": "Turns your Jellyfin, Plex or Emby library into a walkable 3D 1990s video rental store",
  "text": {
    "why": "Picking a film has become endless poster scrolling; Halcyon turns that catalog into a store you walk into. Libraries become aisles, genres become sections, and you pull a case, read the back and check out at the counter, driving it with a keyboard, gamepad, TV remote or phone. The hosted demo opens with no signup, media server or API key, and a local copy starts with start.cmd, start.command or start.sh, or the ghcr.io Docker image.",
    "take": "A one-person project that turns choosing a film back from scrolling a list into browsing a shop.",
    "build": [
      "Set up a living-room HTPC kiosk (install script included) or a 2.5D screen for a Raspberry Pi, and repaint the store with the Brand Editor's name, colours and emblem so it becomes your own household video shop."
    ],
    "who": [
      {
        "role": "Jellyfin, Plex or Emby self-hosters",
        "situation": "a couch-friendly browsing front end for the TV"
      },
      {
        "role": "HTPC and Raspberry Pi owners",
        "situation": "kiosk mode and the 2.5D fallback"
      },
      {
        "role": "Retro game collectors",
        "situation": "a games department fed by RomM"
      }
    ],
    "start": [
      {
        "command": false,
        "text": "git clone https://github.com/halcyon-video/halcyon-video"
      },
      {
        "command": false,
        "text": "cd halcyon-video"
      },
      {
        "command": false,
        "text": "npm install"
      },
      {
        "command": false,
        "text": "npm run dev"
      },
      {
        "command": false,
        "text": "# Or Docker: docker run -d --name halcyon --network host --restart unless-stopped ghcr.io/halcyon-video/halcyon-video"
      }
    ],
    "caveat": [
      "Licence GPL-3.0. The public demo opens with no signup, server or API key but playback is disabled there, and shelving your own files requires Jellyfin, Plex or Emby (there is no folder scanner).",
      "The 3D room renders in the browser; the renderer scales to the hardware, and weak devices can fall back to 2.5D mode or Remote Play. A desktop bundle and the Apple TV client are not shipped, and Roku is unsupported.",
      "A single-owner project that does not accept pull requests (bug reports only), with an optional Ko-fi tip jar inside the store."
    ]
  },
  "cta": {
    "type": "try",
    "label": "TRY",
    "url": "https://halcyon-video.github.io/halcyon-video"
  },
  "ready": "browser",
  "categories": [
    "media"
  ],
  "categories_confirmed": true,
  "tags": [
    "jellyfin",
    "plex",
    "emby",
    "threejs",
    "retro",
    "self-hosted"
  ],
  "platform": [
    "web",
    "windows",
    "macos",
    "linux"
  ],
  "license": {
    "spdx": "GPL-3.0",
    "scope": "copyleft",
    "scope_text": "Use freely. Release your source if you redistribute (copyleft).",
    "url": "https://spdx.org/licenses/GPL-3.0.html",
    "note": null,
    "open_source": true
  },
  "language": "TypeScript",
  "source_urls": {
    "canonical": "https://halcyon-video.github.io/halcyon-video",
    "github": "https://github.com/halcyon-video/halcyon-video",
    "huggingface": null,
    "app_store": null,
    "sightings": [
      {
        "source": "github",
        "url": "https://github.com/halcyon-video/halcyon-video",
        "posted_at": "2026-09-04T15:00:00.000Z",
        "hn_url": null
      }
    ]
  },
  "numbers": {
    "as_of": "2026-09-16T21:00:00.000Z",
    "stars": 861,
    "stars_unit": "GitHub stars",
    "stars_checked_at": "2026-09-15T19:35:03.388Z",
    "stars_observed_since_check": 0,
    "star_delta_24h": null,
    "star_delta_7d": null,
    "star_delta_30d": 27,
    "star_delta_unit": "GitHub stars gained in the window, GH Archive events summed to as_of",
    "spark_14d": [
      null,
      6,
      9,
      12,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      null
    ],
    "hf_likes": null,
    "hf_likes_observed_at": null,
    "hn_points": null,
    "hn_points_observed_at": null,
    "store": null,
    "method": "Star total = the value last checked on GitHub (stars_checked_at) + increases observed via GH Archive since. The 24h · 7d · 30d gains are GH Archive hourly events summed to the reference time (as_of). No score of ours."
  },
  "ranks": null,
  "activity": {
    "pushed_at": "2026-09-15T19:33:42.000Z",
    "owner_type": "Organization",
    "open_issues": 73,
    "contributors": 4,
    "releases_count": 48,
    "latest_release": {
      "tag": "v0.20.0",
      "published_at": "2026-09-15T19:21:49.000Z",
      "prerelease": false
    },
    "checked_at": "2026-09-15T19:35:03.388Z",
    "core_checked_at": "2026-09-15T19:35:03.388Z"
  },
  "signals": [
    {
      "kind": "back",
      "label": "BACK CATALOG",
      "value": null
    }
  ],
  "images": {
    "og": "https://tesign.com/img/halcyon-video-7e3962be22.jpg",
    "cover": "https://tesign.com/img/halcyon-video-7e3962be22.jpg",
    "cover_width": 1920,
    "cover_height": 820,
    "gallery": [
      "https://tesign.com/img/halcyon-video-7e3962be22.jpg",
      "https://tesign.com/img/halcyon-video-053c1556a5.jpg",
      "https://tesign.com/img/halcyon-video-0953ac794f.jpg",
      "https://tesign.com/img/halcyon-video-76a6f9aa47.jpg"
    ],
    "alt": "A 3D view inside a Halcyon Video store: blue-and-white fit-out, MOVIES signs, shelves stocked with video cases, a Previously Viewed rack and a CRT television hanging from the ceiling",
    "tier": 2
  },
  "dates": {
    "first_seen_at": "2026-09-13T09:39:32.403Z",
    "source_created_at": "2026-08-03T22:26:10.000Z",
    "discovery_hours": 971.2228897222222,
    "launch_signal_at": "2026-09-04T15:00:00.000Z",
    "kept_at": "2026-09-14T19:27:43.628Z",
    "first_published_at": "2026-09-14T19:27:43.752Z",
    "updated_at": "2026-09-15T04:36:56.877Z",
    "ingestion_mode": "backfill"
  },
  "notes": [
    "This file was produced by the same build, from the same data, as the tesign.com item page. The text is editorial; the numbers are stored observations.",
    "null in the JSON means not observed — never zero. The Markdown writes [unconfirmed] for it.",
    "Star total = the value last checked on GitHub (stars_checked_at) + increases observed via GH Archive since. The 24h · 7d · 30d gains are GH Archive hourly events summed to the reference time (as_of). No score of ours.",
    "Reconstructed from archive data, not a live discovery.",
    "A summary, not legal advice."
  ]
}
