{"id":50715195,"url":"https://github.com/nshkrdotcom/prappy","last_synced_at":"2026-06-09T18:32:12.268Z","repository":{"id":358736873,"uuid":"1241922380","full_name":"nshkrdotcom/prappy","owner":"nshkrdotcom","description":"Windows-native C++20 app and reproducible setup for SDL3, bgfx, Dear ImGui, CMake, Ninja, and MSVC.","archived":false,"fork":false,"pushed_at":"2026-05-18T22:57:13.000Z","size":620,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-18T22:57:25.456Z","etag":null,"topics":["bgfx","cmake","cpp","cpp20","dear-imgui","developer-tools","graphics","imgui","msvc","native-app","native-tooling","ninja","nshkr-misc","powershell","sdl3","tool-ui","windows","windows-11","windows-setup"],"latest_commit_sha":null,"homepage":"","language":"C++","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/nshkrdotcom.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":null,"dco":null,"cla":null}},"created_at":"2026-05-18T01:07:31.000Z","updated_at":"2026-05-18T22:57:17.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/nshkrdotcom/prappy","commit_stats":null,"previous_names":["nshkrdotcom/prappy"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/nshkrdotcom/prappy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nshkrdotcom%2Fprappy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nshkrdotcom%2Fprappy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nshkrdotcom%2Fprappy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nshkrdotcom%2Fprappy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nshkrdotcom","download_url":"https://codeload.github.com/nshkrdotcom/prappy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nshkrdotcom%2Fprappy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34121021,"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-09T02:00:06.510Z","response_time":63,"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":["bgfx","cmake","cpp","cpp20","dear-imgui","developer-tools","graphics","imgui","msvc","native-app","native-tooling","ninja","nshkr-misc","powershell","sdl3","tool-ui","windows","windows-11","windows-setup"],"created_at":"2026-06-09T18:32:12.197Z","updated_at":"2026-06-09T18:32:12.257Z","avatar_url":"https://github.com/nshkrdotcom.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/prappy.svg\" alt=\"Prappy - Native GPU Visualization Engine\" width=\"900\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/nshkrdotcom/frappy\"\u003e\n    \u003cimg alt=\"Related repo: nshkrdotcom/frappy\" src=\"https://img.shields.io/badge/github-nshkrdotcom%2Ffrappy-181717?logo=github\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\n    \u003cimg alt=\"License: MIT\" src=\"https://img.shields.io/badge/license-MIT-blue.svg\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n# Prappy\n\nPrappy is a native C++20 GPU visualization workbench. It uses SDL3 for the\nwindow and input layer, bgfx for renderer abstraction, Dear ImGui for the tool\nUI, and CMake/Ninja/MSVC for the Windows build.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/oahu-visualization.png\" alt=\"Oahu flyover visualization running in the normal Prappy workspace\" width=\"720\"/\u003e\n\u003c/p\u003e\n\nThe app lives in:\n\n```text\nC:\\Users\\windo\\projects\\n\\prappy\n```\n\nThe reusable Windows setup and native C++ tooling live in:\n\n```text\nC:\\Users\\windo\\projects\\dotfiles_private\\windows\\bootstrap_windows\\native_cpp\n```\n\nThe scripts in this repo are thin wrappers around that shared tooling, so the\nsame commands should work on a clean Windows 11 machine after cloning the repos\ninto the expected layout.\n\n## Quick Start\n\nOpen PowerShell 7 or Windows Terminal:\n\n```powershell\ncd C:\\Users\\windo\\projects\\n\\prappy\npwsh scripts\\bootstrap.ps1\npwsh scripts\\doctor.ps1\npwsh scripts\\deps.ps1\npwsh scripts\\configure.ps1\npwsh scripts\\build.ps1\npwsh scripts\\run.ps1\n```\n\nIf `bootstrap.ps1` installs or updates tools, close and reopen PowerShell before\ncontinuing with the later commands.\n\n## Daily Loop\n\n```powershell\ncd C:\\Users\\windo\\projects\\n\\prappy\npwsh scripts\\build.ps1\npwsh scripts\\run.ps1\n```\n\nSmoke-test the current build:\n\n```powershell\npwsh scripts\\visual-regression.ps1\n```\n\nThat script also validates the generated Oahu topology header before running\nthe capture checks, including a top-down Oahu diagnostic capture.\n\nScreenshots from the capture path are written below the active build directory:\n\n```text\nbuild\\windows-msvc-release\\captures\\\n```\n\nCreate deterministic presentation captures without opening the workspace UI:\n\n```powershell\npwsh scripts\\present.ps1 -Presentation OahuFlyoverHero\npwsh scripts\\present.ps1 -Presentation OahuTopDownMap\n```\n\nThose commands render fixed-size captures through bgfx, not desktop screen\ngrabs. Defaults are `1280 x 720` for flyover/hero captures and `1024 x 1024`\nfor the top-down Oahu map.\n\nTo watch the same full-window presentation profile interactively instead of\ncapturing and exiting, add `-Live`:\n\n```powershell\npwsh scripts\\present.ps1 -Presentation OahuFlyoverHero -Live\n```\n\nUse the Oahu isolation view when checking coastline shape, mesh fill, or camera\ndistortion:\n\n```powershell\npwsh scripts\\run.ps1 -Preset OahuDebugMesh -Focus -NoOverlay\n```\n\nFor interactive Oahu work, run without `-NoOverlay` so the focus-mode canvas\nshows the `Top Down`, `Coast`, `Centered`, `Mesh`, and `Flyover` controls:\n\n```powershell\npwsh scripts\\run.ps1 -Preset OahuCenteredTopDown -Focus\n```\n\nNamed presentation presets are available from the UI and the run script:\n\n```powershell\npwsh scripts\\run.ps1 -Preset RandomLinesHero\npwsh scripts\\run.ps1 -Preset StarfieldHero\npwsh scripts\\run.ps1 -Preset OahuFlyover\npwsh scripts\\run.ps1 -Preset OahuCenteredTopDown\npwsh scripts\\run.ps1 -Preset OahuDebugMesh\npwsh scripts\\run.ps1 -Preset ParticlesHero\n```\n\n## Guides\n\n- [Setup](guides/setup.md)\n- [Development Workflow](guides/development.md)\n- [Visualization Guide](guides/visualizations.md)\n- [Architecture](guides/architecture.md)\n- [Oahu Topology Data](guides/oahu-topology.md)\n- [Reproducible Windows Tooling](guides/windows-tooling.md)\n- [Troubleshooting](guides/troubleshooting.md)\n\n## Current Visualizations\n\n- Random Lines 2D\n- Infinite Starfield\n- Oahu Flyover\n- GPU Particle Field\n\nThe app has a reusable visualization module contract, named presentation\npresets, shared camera controls for 3D modules, renderer diagnostics, renderer\noverride support, and a bgfx-backed screenshot export path.\n\nThe GPU Particle Field now has a bgfx compute simulation path on renderers that\nsupport compute shaders, plus a portable CPU simulation fallback. Both paths\nrender through retained/updateable bgfx dynamic vertex buffers and dedicated\nparticle shaders, using the shared shader/buffer/pass lifecycle helpers.\n\nThe Oahu visualization is generated from committed topology data: 4,096\ncoastline samples, a 241 x 181 terrain grid, and two smoothing passes over\nUSGS elevation samples. Its filled terrain and ocean are retained bgfx indexed\npasses with dedicated shaders for height ramp coloring, lighting, horizon haze,\nand water atmosphere; coastline, ridge, grid, and landmark layers remain\navailable as diagnostic overlays.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnshkrdotcom%2Fprappy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnshkrdotcom%2Fprappy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnshkrdotcom%2Fprappy/lists"}