Skip to content

Commit

Permalink
Update README.md (#2)
Browse files Browse the repository at this point in the history
* Update README.md

* Update README.md
  • Loading branch information
TheButlah authored Aug 28, 2023
1 parent 089326d commit a561bef
Showing 1 changed file with 61 additions and 14 deletions.
75 changes: 61 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,76 @@

A collection of experiments and demos for building social VR with bevy and wgpu.

Rome wasn't built in a day - likewise a Rust social VR game will take some time
and ecosystem maturity to build. This repo can be used to track Rust and bevy's
"skilltree" in social VR. We will provide a collection of example and demo code
that will serve to demonstrate what is and isn't possible right now in the
ecosystem.

Eventually when the skilltree is fleshed out enough, we will take this exporatory
work and translate it into a full fledged game.

## Repo Structure

Social VR requires many things - on top of all the regular 3D game programming,
it has additional requirements unique to social VR. Rome wasn't built in a day,
and neither can a Social VR game.
- **Skills**: Single isolated example of a specific technical feat - like doing
IK, or loading a VRM. See [`skills`](/skills).
- **Demos**: Integrates multiple skills into a larger cohesive tech demo. See
[`demos`](/demos).

Both demos and skills are presented as binary crates that you can actually run
and try out yourself.

## Project Status

Legend:
- ✅ = Finished
- 🚧 = Active WIP
- 💩 = Outdated/Broken
- 📋 = Planned
- ❌ = Blocked

Feel free to add to the following lists:

### Skill List

The repository consistes of "skills" which represent a single isolated example
for achieving a specifc technical goal - like doing IK, or loading a VRM. These
aree located in the `skills` folder. These try to do exactly 1 thing.
- 📋 [Single textured 3d cube](skills/cube)
- 📋 Flycam camera controller
- 📋 First person camera controller (for desktop users)
- 📋 Entity inspector
- 📋 Loading a GLTF model (standard shader)
- 📋 Loading a VRM model (standard shader)
- 📋 Animating a skinned mesh with IK and FK
- 📋 MToon shader implemented in WGSL + bevy
- 📋 Side by side render to texture
- 📋 Spatial audio
- 📋 Animating a skinned mesh with blendshapes/morph targets
- 📋 Non-deformable physics
- 📋 Jiggle physics/Dynamic bones
- 📋 Cloth or hair physics
- 📋 Hot reloading of shaders
- 📋 Hot reloading of skinned meshes
- 📋 Hot reloading of scene
- 📋 Dynamic scaling of resolution
- 📋 Touch controls for flat in-game surfaces
- 📋 Dynamic foveated rendering
- 📋 Get tracked positions from SlimeVR/SolarXR
- ❌ OpenXR render to headset (0dof)
- ❌ OpenXR 6dof headset and controller tracking
- ❌ OpenXR Vive trackers (`XR_HTCX_vive_tracker_interaction`)

There are also `demos`, which integrate multiple of these skills into a larger
unified tech demo.
Note: The OpenXR stuff should be unblocked soon, there are community
crates being developed to add openxr to bevy right now. See also

Eventually when the skilltree is fleshed out enough, we will create a new
monorepo specifically for building a full fledged game.
### Demo List

### Skills
- 📋 Comparison of different bevy networking libraries for shared state
- 📋 Create a VOIP API, abstract it over transport, and compare latency
of different web-compatible transports (probably WebRTC, WebTransport, WebSocket)
- 📋 Auto atlasing, shader registry, and shader merging across all avatars in the
world

* 🚧 [Basic textured cube](skills/cube)

### Demos

* Nothing yet

## License

Expand Down

0 comments on commit a561bef

Please sign in to comment.