Skip to content

A-Frame component implementation of the 3D Gaussian splat viewer (fork with aim to solve sorting issue)

License

Notifications You must be signed in to change notification settings

3DStreet/aframe-gaussian-splatting

Repository files navigation

aframe-gaussian-splatting-component

This component is an A-Frame implementation of real-time rendering for 3D Gaussian Splatting for Real-Time Radiance Field Rendering.
This code is derived from the WebGL implementation developed by antimatter15.

Demo pages

Needs few seconds to load splats.

Properties

Property Description Default Value
src url of splat or ply file train.splat
cutoutEntity selector to a box primitive that uses scale and position to define the bounds of splat points to render
pixelRatio Pixel ratio for rendering. Reducing the value decreases the resolution and improves performance. If a negative value is set, the device's native value will be applied. 1.0
xrPixelRatio Same as pixelRatio. Applied to XR devices. 0.5
depthWrite Force writing to the depth Buffer. This may help fixing occlusion issues false
discardFilter Value from 0 to 1, Discard splats blobs that are under a certain opacity (0 basically means no discarding). This may help fixing occlusion issues with Splats clarity tradeof. 0

Example custom scan to gaussian splat workflow

Usage

Browser Installation

Install and use by directly including the file. About the splat file, please refer antimatter15.

<!DOCTYPE html>
<html>
  <head>
    <script src="https://aframe.io/releases/1.4.2/aframe.min.js"></script>
    <script src="https://quadjr.github.io/aframe-gaussian-splatting/index.js"></script>
  </head>
  <body>
    <a-scene renderer="antialias: false" stats>
      <a-entity position="0 1.6 -2.0" animation="property: rotation; to: 0 360 0; dur: 10000; easing: linear; loop: true">
        <a-sphere position="0 0 0.5" radius="0.5" color="#EF2D5E"></a-sphere>
        <a-sphere position="0 0 -0.5" radius="0.5" color="#EF2D5E"></a-sphere>
      </a-entity>
      <a-entity gaussian_splatting="src: https://huggingface.co/cakewalk/splat-data/resolve/main/train.splat;" rotation="0 0 0" position="0 1.5 -2"></a-entity>
    </a-scene>
  </body>
</html>

NPM Installation

Install via NPM:

npm install aframe-gaussian-splatting-component

Then register and use.

require('aframe');
require('aframe-gaussian-splatting-component');

About

A-Frame component implementation of the 3D Gaussian splat viewer (fork with aim to solve sorting issue)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •