- Rust 98.9%
- WGSL 0.9%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .cargo | ||
| assets | ||
| hotpath | ||
| liuverse | ||
| liuverse-assets | ||
| liuverse-audio | ||
| liuverse-data | ||
| liuverse-fetch-map | ||
| liuverse-frame | ||
| liuverse-movie | ||
| liuverse-music | ||
| liuverse-protocol | ||
| liuverse-render | ||
| liuverse-scene | ||
| liuverse-server | ||
| liuverse-sim | ||
| liuverse-voice | ||
| liuverse-world | ||
| screenshots | ||
| .gitignore | ||
| _typos.toml | ||
| AGENTS.md | ||
| ARCHITECTURE.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| deny.toml | ||
| justfile | ||
| README.md | ||
liuverse
Explorable 3D Campus Valla (Linköping University), in Rust. Walk or fly the campus — buildings and interiors, terrain, trees, bike paths, and the association emblems painted on Märkesbacken — with multiplayer, proximity voice, sound effects, and a fleet of scooters, skateboards, bikes, mopeds, carts and sleds. A tiny FPV drone in the inventory races a course of ring gates above the halls. It runs in a native window and in the browser.
The campus is baked from MazeMap, OpenStreetMap, elevation data and the
student-life association directory. How the code works is in ARCHITECTURE.md.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Run
You need Rust, just,
typos,
cargo-deny, and — for the web
build — trunk with the wasm32-unknown-unknown target.
On Linux the audio stack needs your distro's ALSA/PipeWire development packages.
A web build talks to the server on this machine while developing and to the
deployed one in release; a native build stays on this machine unless --prod.
Movies
liuverse-movie renders short films set on the same campus and encodes them
with ffmpeg. You need ffmpeg on PATH.
cargo run -p liuverse-movie -- list
cargo run -p liuverse-movie -- render flyover --out movies/flyover.mp4
cargo run -p liuverse-movie -- still promenade --time 5 --out movies/still.png
liuverse-movie/README.md explains how a new film is written.
Check
just check
Rebuild the map
The campus in assets/baked/ is generated, so it is only rebuilt when the map
data changes:
cargo run -p liuverse-fetch-map --bin liuverse-fetch-map
cargo run -p liuverse-fetch-map --bin liuverse-fetch-map -- --refresh
Deploy
just deploy # website + server
Docs
ARCHITECTURE.md— design decisions, how the code is put together, and the upstream sources the bake reads.AGENTS.md— conventions for working in the repo.


































