PitchHut
Log in / Sign up
jaxsplat
24 views
Efficient 3D Gaussian Splatting with JAX.
Pitch

Jaxsplat is a powerful library for 3D Gaussian Splatting, optimized for JAX. Leveraging CUDA acceleration, it offers fully differentiable rendering of 3D data, making it an ideal choice for researchers and developers in the field of graphics and machine learning. Explore its capabilities and integrate it into your projects seamlessly.

Description

Explore the capabilities of jaxsplat, a powerful library that implements 3D Gaussian Splatting using JAX. This cutting-edge, fully differentiable and CUDA-accelerated tool allows you to seamlessly render high-quality 3D visual outputs from Gaussian models, making it an invaluable resource for researchers and developers in the field of computer graphics and machine learning.

Features

  • Differentiable Rendering: The primary function, jaxsplat.render, empowers users to render images while maintaining differentiability with respect to the input parameters, such as means, scales, quaternions, colors, and opacities.
  • Advanced Projection and Rasterization: Additional functionalities like jaxsplat.project and jaxsplat.rasterize provide versatile solutions for projecting 3D Gaussians onto 2D planes and efficiently sorting and rasterizing them.

Quick Usage Example

A quick example of how to utilize the core rendering function is as follows:

img = jaxsplat.render(
    means3d,   # jax.Array (N, 3)
    scales,    # jax.Array (N, 3)
    quats,     # jax.Array (N, 4) normalized
    colors,    # jax.Array (N, 3)
    opacities, # jax.Array (N, 1)
    viewmat=viewmat,         # jax.Array (4, 4)
    background=background,   # jax.Array (3,)
    img_shape=img_shape,     # tuple[int, int] = (H, W)
    f=f,                     # tuple[float, float] = (fx, fy)
    c=c,                     # tuple[int, int] = (cx, cy)
    glob_scale=glob_scale,   # float
    clip_thresh=clip_thresh, # float
    block_size=block_size,   # int <= 16
)

Installation

To get started, make sure you have a working CUDA toolchain. You can easily install jaxsplat using pip directly from the source.

Documentation

For extensive documentation and guidance, check out the official jaxsplat documentation.

Examples

Explore various use cases and examples in the examples folder, which includes snippets to train Gaussians on single images and more, showcasing the library’s potential:

$ python -m examples.single_image input.png

Technical Aspects

jaxsplat leverages enhanced versions of the kernels from the gsplat project, and it adapts techniques from the original INRIA implementation, making it easier to utilize within the JAX/XLA ecosystem.

Dive into jaxsplat to elevate your 3D rendering projects and harness the full potential of Gaussian Splatting in JAX!