{"id":31778313,"url":"https://github.com/deanthecoder/holoframe","last_synced_at":"2025-10-10T06:44:08.918Z","repository":{"id":316936914,"uuid":"1060301875","full_name":"deanthecoder/HoloFrame","owner":"deanthecoder","description":"A real view into a virtual world.","archived":false,"fork":false,"pushed_at":"2025-09-27T17:06:38.000Z","size":429,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-27T18:29:50.652Z","etag":null,"topics":["3d-graphics","head-tracking","panda3d","virtual-reality","virtual-window"],"latest_commit_sha":null,"homepage":"https://github.com/deanthecoder/HoloFrame","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deanthecoder.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"agents.md","dco":null,"cla":null}},"created_at":"2025-09-19T17:28:10.000Z","updated_at":"2025-09-27T17:06:42.000Z","dependencies_parsed_at":"2025-09-27T18:29:53.992Z","dependency_job_id":null,"html_url":"https://github.com/deanthecoder/HoloFrame","commit_stats":null,"previous_names":["deanthecoder/holoframe"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/deanthecoder/HoloFrame","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deanthecoder%2FHoloFrame","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deanthecoder%2FHoloFrame/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deanthecoder%2FHoloFrame/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deanthecoder%2FHoloFrame/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deanthecoder","download_url":"https://codeload.github.com/deanthecoder/HoloFrame/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deanthecoder%2FHoloFrame/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002972,"owners_count":26083489,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d-graphics","head-tracking","panda3d","virtual-reality","virtual-window"],"created_at":"2025-10-10T06:44:08.007Z","updated_at":"2025-10-10T06:44:08.910Z","avatar_url":"https://github.com/deanthecoder.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Twitter URL](https://img.shields.io/twitter/url/https/twitter.com/deanthecoder.svg?style=social\u0026label=Follow%20%40deanthecoder)](https://twitter.com/deanthecoder)\n\n# HoloFrame\nAn experimental [Panda3D](https://www.panda3d.org/) showcase that turns your monitor into a faux holographic window. HoloFrame combines real-time head tracking, a [Cornell box](https://en.wikipedia.org/wiki/Cornell_box) inspired scene, and configurable room dimensions to keep a 3D model anchored in space as you move.\n\n## Features\n- Head pose tracking (MediaPipe + OpenCV) drives the virtual camera position.\n- Full-screen windowed Panda3D viewport with adjustable room dimensions.\n- Cornell-style lighting with a ceiling panel placeholder for the key light.\n- Minimal HUD with FPS, camera pose readout, and in-app control hints (toggleable).\n\n## Controls\n- `ESC` — Quit the application.\n- `f` — Toggle fullscreen mode.\n- `h` — Toggle HUD visibility.\n- `?` (or `Shift-/`) — Toggle on-screen control help.\n- Arrow keys — Adjust room width/height.\n- `l` / `p` — Pull/push the back wall to tweak room depth.\n- `m` — Cycle the active model.\n\n## Screenshot\n![HoloFrame in action](img/screen.png)\n\n## Getting Started\n1. Install dependencies:\n   ```bash\n   python3 -m pip install --upgrade pip\n   pip install opencv-python mediapipe numpy panda3d\n   ```\n2. Launch the app:\n   ```bash\n   python3 HoloFrame.py\n   ```\n\nMake sure your webcam is accessible; the app will exit if a camera stream cannot be opened.\n\n## How It Works\n1. Read frames from the default webcam using OpenCV.\n2. Run face tracking to estimate the user's head position in each frame.\n3. Convert the detected head pose into the Panda3D coordinate space.\n4. Update the virtual camera transform so the scene matches the user's viewpoint.\n5. Render the Cornell box scene and selected model with the new perspective.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeanthecoder%2Fholoframe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeanthecoder%2Fholoframe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeanthecoder%2Fholoframe/lists"}