https://github.com/nshkrdotcom/prappy
Windows-native C++20 app and reproducible setup for SDL3, bgfx, Dear ImGui, CMake, Ninja, and MSVC.
https://github.com/nshkrdotcom/prappy
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
Last synced: 18 days ago
JSON representation
Windows-native C++20 app and reproducible setup for SDL3, bgfx, Dear ImGui, CMake, Ninja, and MSVC.
- Host: GitHub
- URL: https://github.com/nshkrdotcom/prappy
- Owner: nshkrdotcom
- License: mit
- Created: 2026-05-18T01:07:31.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-05-18T22:57:13.000Z (about 1 month ago)
- Last Synced: 2026-05-18T22:57:25.456Z (about 1 month ago)
- 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
- Language: C++
- Homepage:
- Size: 605 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Prappy
Prappy is a native C++20 GPU visualization workbench. It uses SDL3 for the
window and input layer, bgfx for renderer abstraction, Dear ImGui for the tool
UI, and CMake/Ninja/MSVC for the Windows build.
The app lives in:
```text
C:\Users\windo\projects\n\prappy
```
The reusable Windows setup and native C++ tooling live in:
```text
C:\Users\windo\projects\dotfiles_private\windows\bootstrap_windows\native_cpp
```
The scripts in this repo are thin wrappers around that shared tooling, so the
same commands should work on a clean Windows 11 machine after cloning the repos
into the expected layout.
## Quick Start
Open PowerShell 7 or Windows Terminal:
```powershell
cd C:\Users\windo\projects\n\prappy
pwsh scripts\bootstrap.ps1
pwsh scripts\doctor.ps1
pwsh scripts\deps.ps1
pwsh scripts\configure.ps1
pwsh scripts\build.ps1
pwsh scripts\run.ps1
```
If `bootstrap.ps1` installs or updates tools, close and reopen PowerShell before
continuing with the later commands.
## Daily Loop
```powershell
cd C:\Users\windo\projects\n\prappy
pwsh scripts\build.ps1
pwsh scripts\run.ps1
```
Smoke-test the current build:
```powershell
pwsh scripts\visual-regression.ps1
```
That script also validates the generated Oahu topology header before running
the capture checks, including a top-down Oahu diagnostic capture.
Screenshots from the capture path are written below the active build directory:
```text
build\windows-msvc-release\captures\
```
Create deterministic presentation captures without opening the workspace UI:
```powershell
pwsh scripts\present.ps1 -Presentation OahuFlyoverHero
pwsh scripts\present.ps1 -Presentation OahuTopDownMap
```
Those commands render fixed-size captures through bgfx, not desktop screen
grabs. Defaults are `1280 x 720` for flyover/hero captures and `1024 x 1024`
for the top-down Oahu map.
To watch the same full-window presentation profile interactively instead of
capturing and exiting, add `-Live`:
```powershell
pwsh scripts\present.ps1 -Presentation OahuFlyoverHero -Live
```
Use the Oahu isolation view when checking coastline shape, mesh fill, or camera
distortion:
```powershell
pwsh scripts\run.ps1 -Preset OahuDebugMesh -Focus -NoOverlay
```
For interactive Oahu work, run without `-NoOverlay` so the focus-mode canvas
shows the `Top Down`, `Coast`, `Centered`, `Mesh`, and `Flyover` controls:
```powershell
pwsh scripts\run.ps1 -Preset OahuCenteredTopDown -Focus
```
Named presentation presets are available from the UI and the run script:
```powershell
pwsh scripts\run.ps1 -Preset RandomLinesHero
pwsh scripts\run.ps1 -Preset StarfieldHero
pwsh scripts\run.ps1 -Preset OahuFlyover
pwsh scripts\run.ps1 -Preset OahuCenteredTopDown
pwsh scripts\run.ps1 -Preset OahuDebugMesh
pwsh scripts\run.ps1 -Preset ParticlesHero
```
## Guides
- [Setup](guides/setup.md)
- [Development Workflow](guides/development.md)
- [Visualization Guide](guides/visualizations.md)
- [Architecture](guides/architecture.md)
- [Oahu Topology Data](guides/oahu-topology.md)
- [Reproducible Windows Tooling](guides/windows-tooling.md)
- [Troubleshooting](guides/troubleshooting.md)
## Current Visualizations
- Random Lines 2D
- Infinite Starfield
- Oahu Flyover
- GPU Particle Field
The app has a reusable visualization module contract, named presentation
presets, shared camera controls for 3D modules, renderer diagnostics, renderer
override support, and a bgfx-backed screenshot export path.
The GPU Particle Field now has a bgfx compute simulation path on renderers that
support compute shaders, plus a portable CPU simulation fallback. Both paths
render through retained/updateable bgfx dynamic vertex buffers and dedicated
particle shaders, using the shared shader/buffer/pass lifecycle helpers.
The Oahu visualization is generated from committed topology data: 4,096
coastline samples, a 241 x 181 terrain grid, and two smoothing passes over
USGS elevation samples. Its filled terrain and ocean are retained bgfx indexed
passes with dedicated shaders for height ramp coloring, lighting, horizon haze,
and water atmosphere; coastline, ridge, grid, and landmark layers remain
available as diagnostic overlays.