{"id":15047704,"url":"https://github.com/shlomnissan/raycaster-gl","last_synced_at":"2026-02-11T00:02:31.383Z","repository":{"id":247852985,"uuid":"827020511","full_name":"shlomnissan/raycaster-gl","owner":"shlomnissan","description":"A simple raycasting engine demo using OpenGL and modern C++","archived":false,"fork":false,"pushed_at":"2024-07-24T20:41:42.000Z","size":258,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-23T15:06:04.611Z","etag":null,"topics":["cmake","cpp20","modern-cpp","raycasting","raycasting-engine"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shlomnissan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-07-10T21:25:12.000Z","updated_at":"2025-07-25T16:56:27.000Z","dependencies_parsed_at":"2024-07-24T23:05:59.942Z","dependency_job_id":null,"html_url":"https://github.com/shlomnissan/raycaster-gl","commit_stats":null,"previous_names":["shlomnissan/raycaster-gl"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/shlomnissan/raycaster-gl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shlomnissan%2Fraycaster-gl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shlomnissan%2Fraycaster-gl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shlomnissan%2Fraycaster-gl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shlomnissan%2Fraycaster-gl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shlomnissan","download_url":"https://codeload.github.com/shlomnissan/raycaster-gl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shlomnissan%2Fraycaster-gl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29322733,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T20:44:44.282Z","status":"ssl_error","status_checked_at":"2026-02-10T20:44:43.393Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["cmake","cpp20","modern-cpp","raycasting","raycasting-engine"],"created_at":"2024-09-24T21:03:19.509Z","updated_at":"2026-02-11T00:02:31.358Z","avatar_url":"https://github.com/shlomnissan.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Raycaster\n\nA simple raycasting engine using OpenGL and modern C++.\n\n## Overview\n\nThis project implements a simple raycasting engine using algorithms similar to those in Wolfenstein 3D to generate a pseudo-3D maze with texture mapping and sprites. It uses GLFW to create a window and handle events, and OpenGL as the primary graphics API.\n\nAlthough OpenGL is used for rendering, this project does not utilize traditional geometry to render the maze. Instead, it uses OpenGL to render a single textured quad that covers the screen. All pixel operations are performed on a buffer, which updates the quad's texture every frame.\n\nThe purpose of this project is to refamiliarize myself with ray casting. Even though this is an old technique, building a simple raycasting engine offers valuable lessons for modern graphics programming. Concepts like casting rays, dealing with projection planes, and revisiting basic trigonometry remain relevant.\n\nNote that this project doesn’t follow the popular [Lode’s Raycasting Tutorial](https://lodev.org/cgtutor/raycasting.html). The primary difference is that I’m using polar coordinates to represent some positions and directions, which is more aligned with the original [Wolfenstein3D source-code](https://github.com/id-Software/wolf3d).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshlomnissan%2Fraycaster-gl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshlomnissan%2Fraycaster-gl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshlomnissan%2Fraycaster-gl/lists"}