Initial release: RadiantWave v1.0

This commit is contained in:
NeilClack
2026-03-12 08:05:10 -05:00
commit 403ec4db89
555 changed files with 437856 additions and 0 deletions
+47
View File
@@ -0,0 +1,47 @@
# RhemaWave
A Go-based fullscreen SDL2/OpenGL application for Linux kiosk systems. Displays proclamations with audio playback and animated visual patterns.
## Development
Development uses Nix for a reproducible build environment.
```bash
nix develop # enter dev shell
go build -o bin/rhemawave rhemawave.go # build
./bin/rhemawave # run
./dev_scripts/reset.sh # reset database (if needed)
```
### Prerequisites
- Nix with flakes enabled
- A display server (X11/Wayland) and audio device for running the application
## Architecture
- **Page-based UI** — SDL2/OpenGL 3.3 fullscreen rendering with a page stack for navigation
- **Proclamation player** — scrolling text display with synchronized audio playback
- **Startup validation** — WiFi, TOS acceptance, email, license key checks
- **Singleton managers** — ShaderManager, FontManager, Logger (initialized once via `sync.Once`)
### Key Directories
```
bin/ # build output (gitignored)
share/rhemawave/ # assets (fonts, shaders, proclamations, TOS)
internal/ # Go source packages
packaging/ # deployment configs (kiosk, updater, polkit)
dev_scripts/ # developer utilities
```
### Runtime Data
Stored in `~/.local/share/rhemawave/`:
- `data.db` — SQLite database (config, proclamations, logs)
- `log.txt` — application log
- `license_key` — license key file
## Deployment
Deployed to kiosk hardware via NixOS-Anywhere. See `packaging/` for kiosk system configs.