Native renderer
NativeActivity defers window and wgpu initialization until Android supplies a valid native window. Vulkan renders the generated world.
VERIFIEDEgregoria now boots, renders, saves, resumes, and responds to touch as a native Android app. No WebView. No streamed desktop. Just Rust, winit, wgpu, Vulkan—and a frankly unreasonable amount of lifecycle debugging.
Each card represents observed emulator behavior or inspected Android state—not a hopeful checkbox copied from a roadmap.
NativeActivity defers window and wgpu initialization until Android supplies a valid native window. Vulkan renders the generated world.
VERIFIEDOne-finger pan plus real two-contact pinch and rotation are latched across slow frames instead of evaporating between events.
VERIFIEDHome and resume retain gameplay state while recreating the wgpu surface around Android's replacement native window.
VERIFIEDworld.zip, replay, camera, settings, and bindings live under app-private storage and survive a force-stop/cold-load cycle.
AudioFlinger reports an active 44.1 kHz stereo track owned by Egregoria with zero underruns at capture.
MIXER VERIFIEDAndroid starts with shadows, fog, SSAO, and MSAA disabled to reduce pressure on less-forgiving mobile drivers.
VERIFIEDReal API-35 emulator frames from renderer, UI, save/load, and camera-control tests.



The ARM64 optimized build is for modern physical phones. It is debug-signed for testing and will not update a future production-signed release.
Use the stable button. Most current Android phones—including Pixel devices—use ARM64.
Android may ask your browser or file manager for permission to install unknown apps. Disable it afterward if desired.
The app extracts its embedded desktop asset and base-mod trees into private storage before initializing the game.
All artifacts are test builds. SHA-256 entries were verified after packaging.
The matching snapshot includes the Android bootstrap, app-private asset extraction, touch gesture state, mobile graphics defaults, lifecycle surface recreation, and the vendored android-activity saved-state fix.
# SDK 35 · NDK 27.2 · stable Rust
$ cargo apk check -p native_app \
--target aarch64-linux-android
$ cargo apk build -p native_app --lib \
--target aarch64-linux-android
Finished dev profile
# target/debug/apk/Egregoria-Android.apk
5f39c5f31a492abc1526ad980bc2d3b06cca98ba9afe74c15951bc25c935194d8505162ef6b7b224ad997901201993a7db9b6ded1e44401f48344c7d21af4db8Before calling it a release
Run on a real mobile GPU, including sustained play, lifecycle recreation, Back, and soft keyboard behavior.
The Android mixer stream is active; speaker output still needs a device with actual audio enabled.
Separate rights or credits were not found for bundled font, sounds, music, and models. Public release remains blocked.
These APKs use the standard debug certificate. A real release requires a protected production key and versioning policy.