Skip to content

This repo contains the official authors implementation associated with the MeshSplats paper

License

Notifications You must be signed in to change notification settings

gwilczynski95/meshsplats

Repository files navigation

MeshSplats

Rafał Tobiasz*, Grzegorz Wilczyński*, Marcin Mazur, Sławomir Tadeja, Przemysław Spurek (* indicates equal contribution)

This repository contains the official authors implementation associated with the paper "MeshSplats: Mesh-Based Rendering with Gaussian Splatting Initialization".

Abstract: * Recently, a range of neural network-based methods for image rendering have been introduced. Gaussian Splatting (GS) is a recent and pivotal technique in 3D computer graphics. GS-based algorithms almost always bypass classical methods such as ray tracing, which offers numerous inherent advantages for rendering. For example, ray tracing is able to handle incoherent rays for advanced lighting effects, including shadows and reflections. To address this limitation, we introduce MeshSplats, a method which converts GS to a mesh-like format. Following the completion of training, MeshSplats transforms Gaussian elements into mesh faces, enabling rendering using ray tracing methods with all their associated benefits. Our model can be utilized immediately following transformation, yielding a mesh of slightly reduced quality without additional training. Furthermore, we can enhance the reconstruction quality through the application of a dedicated optimization algorithm that operates on mesh faces rather than Gaussian components. The efficacy of our method is substantiated by experimental results, underscoring its extensive applications in computer graphics and image processing*

Check out this code if you just want to convert GS to a mesh and benefit from the advantages of both representations!

Note: If videos aren't visible you can find them in demo directory.

Run our demo in Google Colab!!!

We have prepared for you a demo (to run as quickly as possible) of the MeshSplats method.

Optimization pipeline demo

Here's the Colab!

First of all, all of the data you need is here. Download it as it contains full data of one of the experiments we performed (lego scene from the NeRF Synthetic dataset with white background).

This data structure is as follows:

examples/
|- lego_white_background/
|  |- checkpoints/
|  |  |- best_model
|  |  |- best_model.npz
|  |- point_cloud/
|  |  |- iteration_30000/
|  |  |- point_cloud.ply
|  |- pseudomeshes/
|  |- scene_2.70_pts_8.npz
|  |- cameras.json
|  |- config.yaml
|  |- colab_config.yaml
|- lego.zip

Where:

  • checkpoints contains the best model from our optimization pipeline as torch checkpoint and numpy checkpoint,
  • point_cloud contains the point cloud of the scene from the 30000 iteration of the GaMeS algorithm,
  • pseudomeshes contains the raw pseudomesh of the scene generated from the available point_cloud.ply file,
  • cameras.json contains the camera poses,
  • config.yaml contains the config of the experiment.
  • colab_config.yaml contains the config of the experiment for the colab demo,
  • lego.zip contains the data of the lego scene from the NeRF Synthetic dataset.

Installation

pip install -r requirements.txt

Also this work depends on output of the following repositories:

Therefore, you need to install them first.

Usage

You can find the scripts for running the experiments in the sh_scripts folder. Remember to change all paths to the correct ones in the scripts. We provided configs for the experiments in the sh_scripts/configs folder (once again remember to change the paths).

Each script is designed to run on a single GPU.

For example, to run the experiments for the DeepBlending dataset with the GaMeS algorithm, you can use the following command:

./sh_scripts/run_games_gs-flat_sh0_db.sh

Datasets

This repository is prepared to work with the following datasets (as you can see in the sh_scripts scripts):

  • NeRF-Synthetic
  • Tanks and Temples
  • MiP NeRF
  • DeepBlending

BibTeX

MeshSplats

@Article{tobiasz2025meshsplats,
        author={Rafał Tobiasz and Grzegorz Wilczyński and Marcin Mazur and Sławomir Tadeja and Przemysław Spurek},
        year={2025},
        eprint={2502.07754},
        archivePrefix={arXiv},
        primaryClass={cs.GR},
}

Gaussian Splatting

@Article{kerbl3Dgaussians,
      author         = {Kerbl, Bernhard and Kopanas, Georgios and Leimk{\"u}hler, Thomas and Drettakis, George},
      title          = {3D Gaussian Splatting for Real-Time Radiance Field Rendering},
      journal        = {ACM Transactions on Graphics},
      number         = {4},
      volume         = {42},
      month          = {July},
      year           = {2023},
      url            = {https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/}
}

NVDiffrast

@Article{laine2020modularprimitiveshighperformancedifferentiabl,
      author         = {Kerbl, Bernhard and Kopanas, Georgios and Leimk{\"u}hler, Thomas and Drettakis, George},
      title={Modular Primitives for High-Performance Differentiable Rendering}, 
      author={Samuli Laine and Janne Hellsten and Tero Karras and Yeongho Seol and Jaakko Lehtinen and Timo Aila},
      year={2020},
      eprint={2011.03277},
      archivePrefix={arXiv},
      primaryClass={cs.GR},
}

About

This repo contains the official authors implementation associated with the MeshSplats paper

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published