A cross-platform Techno Sutra DEMO built with Bevy (Rust) that renders equirectangular 360ยฐ images as immersive first-person experiences.
- ๐ Equirectangular to Cubemap Conversion - Automatic GPU-ready conversion
- ๐ฎ First-Person Controls - Mouse look + keyboard navigation
- ๐ญ 3D Character Integration - GLB/GLTF model support
- ๐ Spatial Audio - 3D positional audio for characters
- ๐ฅ๏ธ Cross-Platform - Desktop (Windows/macOS/Linux) + Web (WASM)
# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Add WASM target (for web builds)
rustup target add wasm32-unknown-unknown
# Install trunk (for web builds)
cargo install --locked trunkcargo run --releasetrunk serve
# Open http://localhost:8080| Input | Action |
|---|---|
| Click | Capture mouse |
| Mouse Move | Look around |
| WASD / Arrows | Look around |
| +/- | Adjust FOV |
| Space | Toggle character audio |
| Escape | Release mouse |
techno-sutra-demo/
โโโ src/
โ โโโ main.rs # Entry point
โ โโโ lib.rs # GamePlugin + states
โ โโโ loading.rs # Asset loading
โ โโโ panorama.rs # EquirectโCubemap conversion
โ โโโ camera_controller.rs # First-person controls
โ โโโ character.rs # GLB + spatial audio
โโโ assets/
โ โโโ panoramas/demo.jpg # 4096x2048 equirectangular
โ โโโ models/character.glb # 3D character
โ โโโ audio/dialogue.ogg # Character audio
โโโ Cargo.toml
โโโ index.html # WASM template
โโโ Trunk.toml # WASM build config
- Place a 2:1 aspect ratio image (e.g., 4096x2048) in
assets/panoramas/ - Update
src/loading.rsto point to your image:#[asset(path = "panoramas/your_panorama.jpg")] pub demo_panorama: Handle<Image>,
- Run
cargo run
MIT / Apache-2.0