Egregoria for Android
A native Rust/winit/wgpu port of the open-source city builder. No WebView wrapper: the city simulation, Vulkan renderer, touch camera, menus, saves, and RustPython mod runtime run directly on Android.
Download stable ARM64 APKPython Mod APICorresponding source
Package: org.egregoria.android · Android 8.0+ · 64-bit ARM · Vulkan required
Android-native controls
- Tap-driven native main menu and in-game HUD
- One-finger camera pan, two-finger pinch zoom, and two-finger twist rotation; gesture modes are locked so they cannot trigger one another
- Android Back navigation and lifecycle-safe surface recreation
- App-private city saves and extracted bundled assets
Python ZIP mods
- Import through Android's system document picker
- Archives copied into controlled app-private storage
- Explicit approval bound to mod ID + archive SHA-256
- Deterministic dependencies, persistent state, isolated diagnostics
Install
- Download the stable ARM64 APK above.
- Allow your browser/files app to install unknown apps when Android asks.
- Open the APK and install Egregoria.
- On the first launch, allow roughly 10–20 seconds for asset extraction and graphics initialization; the screen may remain black during that one-time startup.
- Use Main Menu → Python Mods → Import ZIP for mods.
First production signature: older debug/test APKs used a different certificate. If Android reports an incompatible update, uninstall the old test build first. That removes its app-private cities/mod state, so back up anything important before uninstalling.
Stable release notes
- Disambiguated Android camera controls: one-finger drag pans, two-finger pinch zooms, and two-finger twist rotates; parallel two-finger drift does nothing.
- Multitouch classification uses deterministic pointer ordering, movement thresholds, mode locking, wrapped angular deltas, and baseline resets when the active pair changes.
- A brief third contact no longer resets the locked two-finger gesture, and Android edge scrolling is disabled while any touch is active.
- Native Android main menu and reliable menu/gameplay navigation.
- Real embedded RustPython 0.5 mod execution with persistent per-mod state.
- Storage Access Framework ZIP import—no ADB or broad storage permission required.
- Defensive ZIP validation with actual decompressed-byte limits, immutable load snapshots, duplicate-ID rejection, path/case collision checks, and atomic cache/install transactions.
- Hash-bound enablement prevents replaced code from inheriting execution approval.
- Required dependency failure now prevents dependent code/actions from running.
- Optimized release build, zip-aligned and signed with the dedicated AnimeFu Egregoria key.
Downloads and verification
- Versioned stable ARM64 APK
- Current stable ARM64 APK
- GPL corresponding source ZIP
- SHA-256 checksums
- Release notes
- Release signing certificate
- Hello Egregoria sample mod
- Starter Funds sample mod
Signing certificate SHA-256:
1A:C3:78:D2:EB:5F:6A:6D:A9:24:B5:8B:55:31:B7:51:AA:30:83:C5:28:0B:2D:08:C4:BB:B3:08:8B:96:59:38
Scope and limitations
- The ARM64 APK is built from the same source as the emulator-tested x86_64 release and its ABI/signature are verified, but sustained testing on a physical ARM64 device is still pending.
- Python mods are trusted in-process code, not a security sandbox. There is no hard CPU or memory quota; install only mods you trust.
- Native CPython extension modules are unsupported.
- Production Play Store signing/publication and broad physical-device audio/keyboard testing are not part of this release.
- Code is distributed under GPL-3.0. Bundled asset provenance is inherited from the upstream repository and has not received an independent asset-by-asset legal audit.