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