{"id":25666096,"url":"https://github.com/functionally/opengl-dlp-stereo","last_synced_at":"2026-06-17T17:33:27.914Z","repository":{"id":184737778,"uuid":"564175029","full_name":"functionally/opengl-dlp-stereo","owner":"functionally","description":null,"archived":false,"fork":false,"pushed_at":"2022-11-10T06:59:37.000Z","size":278,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-24T08:18:16.385Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Haskell","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/functionally.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}},"created_at":"2022-11-10T06:31:51.000Z","updated_at":"2022-11-10T17:51:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"dc1cc7c1-bfcf-4098-ba14-a608407aaa57","html_url":"https://github.com/functionally/opengl-dlp-stereo","commit_stats":null,"previous_names":["functionally/opengl-dlp-stereo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/functionally/opengl-dlp-stereo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/functionally%2Fopengl-dlp-stereo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/functionally%2Fopengl-dlp-stereo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/functionally%2Fopengl-dlp-stereo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/functionally%2Fopengl-dlp-stereo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/functionally","download_url":"https://codeload.github.com/functionally/opengl-dlp-stereo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/functionally%2Fopengl-dlp-stereo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34459608,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-17T02:00:05.408Z","response_time":127,"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":[],"created_at":"2025-02-24T08:18:17.345Z","updated_at":"2026-06-17T17:33:27.883Z","avatar_url":"https://github.com/functionally.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"Functions for using DLP stereo with 3-D Ready Sync projectors and OpenGL\n========================================================================\n\nThis Haskell package contains functions for rendering 3D stereo using DLP 3-D Ready Sync projectors and active-shutter stereo glasses.  It also includes [a sample application](https://youtu.be/l3rZbMB2XjM) and notes regarding hardware setup for DLP.  In particular, note that this technique does not require a graphics card that supports `GL_STEREO`.\n\nThe code conforms to the specification \u003c\u003chttp://lists.gnu.org/archive/html/bino-list/2013-03/pdfz6rW7jUrgI.pdf\u003e\u003e and is based on the implementation for the stereo movie viewer Bino \u003c\u003chttp://git.savannah.gnu.org/cgit/bino.git/tree/src/video_output.cpp?id=bino-1.6.1#n1389\u003e\u003e.\n\nPlease report issues at \u003c\u003chttps://bwbush.atlassian.net/projects/HOGLDLP/issues/\u003e\u003e.\n\n\nSkeletal example illustrating the use of frame-sequential DLP\n-------------------------------------------------------------\n\n```haskell\nmain :: IO ()\nmain = do\n  _ \u003c- getArgsAndInitialize\n  initialDisplayMode $= [WithDepthBuffer, DoubleBuffered]\n  _ \u003c- createWindow \\\"DLP Stereo OpenGL Example\\\"\n  depthFunc $= Just Less \n  idleCallback $= Just (postRedisplay Nothing)\n  -- Use frame-sequential DLP encoding.\n  dlpDisplayCallback $= def {dlpEncoding = FrameSequential, doDisplay = display}\n  mainLoop\n\ndisplay :: DlpDisplayCallback\ndisplay eye = do\n  -- Shift the view slightly, depending on for which eye to draw.\n  translate $ Vector3 (if eye == LeftDlp then -0.05 else 0.05 :: GLfloat) 0 0 \n  -- All of the rendering actions go here.\n  renderPrimitive . . .\n```\n\n\nNotes on hardware and software\n------------------------------\n\nThis code has been validated with the following configuration of hardware and software:\n\n*   Optoma ML550 WXGA 500 Lumen 3D Ready Portable DLP LED Projector, running 120 Hz at 1024x768 resolution\n*   Optoma ZD302 DLP Link Active Shutter 3D Glasses\n*   Ubuntu 15.04, 64-bit\n*   NVIDIA Driver Version 340.93, with `xorg.conf` option `Stereo` set to `8`\n*   GHC 7.6.3\n*   OpenGL == 2.8.0.0\n*   GLUT == 2.4.0.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffunctionally%2Fopengl-dlp-stereo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffunctionally%2Fopengl-dlp-stereo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffunctionally%2Fopengl-dlp-stereo/lists"}