An open-source, photorealistic whitewater rafting simulator built with Unreal Engine 5.8 and a first-party shallow-water physics stack. You are the river guide: read the rapid, set the angle, call the strokes, keep your crew in the boat.
Status (July 2026): pre-release, in active development. The physics/validation foundation and environment-authoring pipeline are mature; the playable game layer is being built now. The 1.0 release targets one complete river — the South Fork American, Chili Bar to Salmon Falls — with all 20 named rapids at three real flow levels. See docs/game-completion-plan.md for the active milestone plan and CHANGELOG.md for progress.
| Area | Contents |
|---|---|
physics/ |
The raftsim Python package: deterministic simulation kernel, 2.5D scenario system, GeoClaw/PyClaw reference solvers, dual-solver validation harness, flexible-raft reference physics, and real-world river corridor pipeline. Plus the C++ finite-volume shallow-water runtime solver (physics/cpp). |
unreal/ |
The UE 5.8 project: RaftSim plugin (runtime modules + a large procedural environment-authoring editor toolkit), project content, and packaging scripts. |
docs/ |
Design docs, production plans, source/rights policies, and hash-locked review evidence. |
Physics package (Python ≥ 3.11, uv):
cd physics
uv run pytest -q # run the test suiteC++ water solver (CMake + a C++17 compiler):
cd physics/cpp && cmake -B build && cmake --build buildUnreal project: open unreal/SmokeEmIfYouGotEm.uproject with Unreal Engine 5.8 (the editor build compiles the RaftSim plugin). Packaging scripts live in unreal/Scripts/.
This project keeps an explicit, hash-locked audit trail. Reference-solution playback and visual conditioning are always labeled as such and are compiled out of shipping builds; diagnostic captures are never presented as gameplay screenshots. Simulated river behavior is approximate and must never be used for real-world trip planning or safety decisions.
- Code: MIT
- First-party content: CC BY 4.0
- Third-party assets/data: per-item intake manifests; summarized in CREDITS.md. See also NOTICE.md.
Contributions are welcome as issues and pull requests. This is primarily a solo project; expect review latency.