Skip to content

Browser viewer for GaussianAvatars based on Brush

License

Notifications You must be signed in to change notification settings

felixtaubner/brush_avatar

 
 

Repository files navigation

Embedded GaussianAvatars Viewer based on Brush

This repo will include a live viewer for dynamic Gaussian avatars (or any mesh-rigged Gaussian splats) on your project page with as little effort as possible.

interactive_viewer.mp4

Running the website template

To run the webpage, simply open sample-webpage/index.html. The webpage contains sample files, but the images, videos, and splat files can be adjusted to your needs. The live viewer only runs on Chrome (Desktop). You might need to enable the Unsafe WegGPU support chrome://flags/#enable-unsafe-webgpu flag in Chrome. You can sign up for the subgroups origin trial with your published website so that this is not needed anymore.

Exporting your animations

This viewer is based on importing pre-animated mesh animations from your avatar training pipeline. The animation files are in the .ply format and contain the triangle mesh (faces and initial vertices), the local splats (attached to a face in the triangle mesh through bindings), and a sequence of vertex offsets (can be quantized).

By storing the mesh animations instead of the per-frame splat transforms, our animation format is significantly more space efficient and can store hundreds of frames in a few MB (assuming the number of vertices is significantly lower than the number of splats).

The webpage contains examples of exported avatar animation files. Use the Python function in export/export_ply.py to convert your mesh-rigged GaussianAvatars into viewer-compatible .ply files. NOTE: This viewer does not support regular splats! If you wish to use the regular splat viewer, please build the original Brush repo and use their corresponding .wasm and .js build files (see below).

Building Brush

The sample webpage (sample-webpage/index.html) includes prebuilt binaries for the Brush viewer. To rebuild the binaries, follow the instructions in the original Brush repo. Then, copy the build files in trunk_dist/ (.wasm and .js) to sample-webpage/brush-build/

Acknowledgements

Arthur Brussee and others, for the amazing live viewer Brush.

Shenhan Qian and others, for their fantastic GaussianAvatars project.

Rundi Wu and others, for their inspirational website for CAT4D.

Citation

If this viewer was helpful for your project, please consider citing our work:

@article{taubner2024cap4d,
  title={{CAP4D}: Creating Animatable {4D} Portrait Avatars with Morphable Multi-View Diffusion Models}, 
  author={Felix Taubner and Ruihang Zhang and Mathieu Tuli and David B. Lindell},
  booktitle={arxiv},
  year={2024}
}

About

Browser viewer for GaussianAvatars based on Brush

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 49.7%
  • JavaScript 29.2%
  • WGSL 10.9%
  • Jupyter Notebook 4.2%
  • HTML 4.0%
  • Python 0.9%
  • Other 1.1%