Source code for gsplat.cuda._wrapper

-from typing import Callable, Optional, Tuple
+from typing import Callable, Optional, Tuple, Any
 import warnings
+from typing_extensions import Literal
 
 import torch
 from torch import Tensor
@@ -327,6 +328,16 @@ 

Source code for gsplat.cuda._wrapper

     return call_cuda
 
 
+def _make_lazy_cuda_obj(name: str) -> Any:
+    # pylint: disable=import-outside-toplevel
+    from ._backend import _C
+
+    obj = _C
+    for name_split in name.split("."):
+        obj = getattr(_C, name_split)
+    return obj
+
+
 
[docs] def spherical_harmonics( @@ -435,7 +446,7 @@

Source code for gsplat.cuda._wrapper

     Ks: Tensor,  # [C, 3, 3]
     width: int,
     height: int,
-    ortho: bool,
+    camera_model: Literal["pinhole", "ortho", "fisheye"] = "pinhole",
 ) -> Tuple[Tensor, Tensor]:
     """Projection of Gaussians (perspective or orthographic).
 
@@ -459,7 +470,7 @@ 

Source code for gsplat.cuda._wrapper

     means = means.contiguous()
     covars = covars.contiguous()
     Ks = Ks.contiguous()
-    return _Proj.apply(means, covars, Ks, width, height, ortho)
+ return _Proj.apply(means, covars, Ks, width, height, camera_model)
@@ -513,7 +524,7 @@

Source code for gsplat.cuda._wrapper

     packed: bool = False,
     sparse_grad: bool = False,
     calc_compensations: bool = False,
-    ortho: bool = False,
+    camera_model: Literal["pinhole", "ortho", "fisheye"] = "pinhole",
 ) -> Tuple[Tensor, Tensor, Tensor, Tensor, Tensor]:
     """Projects Gaussians to 2D.
 
@@ -615,7 +626,7 @@ 

Source code for gsplat.cuda._wrapper

             radius_clip,
             sparse_grad,
             calc_compensations,
-            ortho,
+            camera_model,
         )
     else:
         return _FullyFusedProjection.apply(
@@ -632,7 +643,7 @@ 

Source code for gsplat.cuda._wrapper

             far_plane,
             radius_clip,
             calc_compensations,
-            ortho,
+            camera_model,
         )
@@ -1005,15 +1016,24 @@

Source code for gsplat.cuda._wrapper

         Ks: Tensor,  # [C, 3, 3]
         width: int,
         height: int,
-        ortho: bool,
+        camera_model: Literal["pinhole", "ortho", "fisheye"] = "pinhole",
     ) -> Tuple[Tensor, Tensor]:
+        camera_model_type = _make_lazy_cuda_obj(
+            f"CameraModelType.{camera_model.upper()}"
+        )
+
         means2d, covars2d = _make_lazy_cuda_func("proj_fwd")(
-            means, covars, Ks, width, height, ortho
+            means,
+            covars,
+            Ks,
+            width,
+            height,
+            camera_model_type,
         )
         ctx.save_for_backward(means, covars, Ks)
         ctx.width = width
         ctx.height = height
-        ctx.ortho = ortho
+        ctx.camera_model_type = camera_model_type
         return means2d, covars2d
 
     @staticmethod
@@ -1021,14 +1041,14 @@ 

Source code for gsplat.cuda._wrapper

         means, covars, Ks = ctx.saved_tensors
         width = ctx.width
         height = ctx.height
-        ortho = ctx.ortho
+        camera_model_type = ctx.camera_model_type
         v_means, v_covars = _make_lazy_cuda_func("proj_bwd")(
             means,
             covars,
             Ks,
             width,
             height,
-            ortho,
+            camera_model_type,
             v_means2d.contiguous(),
             v_covars2d.contiguous(),
         )
@@ -1092,8 +1112,12 @@ 

Source code for gsplat.cuda._wrapper

         far_plane: float,
         radius_clip: float,
         calc_compensations: bool,
-        ortho: bool,
+        camera_model: Literal["pinhole", "ortho", "fisheye"] = "pinhole",
     ) -> Tuple[Tensor, Tensor, Tensor, Tensor, Tensor]:
+        camera_model_type = _make_lazy_cuda_obj(
+            f"CameraModelType.{camera_model.upper()}"
+        )
+
         # "covars" and {"quats", "scales"} are mutually exclusive
         radii, means2d, depths, conics, compensations = _make_lazy_cuda_func(
             "fully_fused_projection_fwd"
@@ -1111,7 +1135,7 @@ 

Source code for gsplat.cuda._wrapper

             far_plane,
             radius_clip,
             calc_compensations,
-            ortho,
+            camera_model_type,
         )
         if not calc_compensations:
             compensations = None
@@ -1121,7 +1145,7 @@ 

Source code for gsplat.cuda._wrapper

         ctx.width = width
         ctx.height = height
         ctx.eps2d = eps2d
-        ctx.ortho = ortho
+        ctx.camera_model_type = camera_model_type
 
         return radii, means2d, depths, conics, compensations
 
@@ -1141,7 +1165,7 @@ 

Source code for gsplat.cuda._wrapper

         width = ctx.width
         height = ctx.height
         eps2d = ctx.eps2d
-        ortho = ctx.ortho
+        camera_model_type = ctx.camera_model_type
         if v_compensations is not None:
             v_compensations = v_compensations.contiguous()
         v_means, v_covars, v_quats, v_scales, v_viewmats = _make_lazy_cuda_func(
@@ -1156,7 +1180,7 @@ 

Source code for gsplat.cuda._wrapper

             width,
             height,
             eps2d,
-            ortho,
+            camera_model_type,
             radii,
             conics,
             compensations,
@@ -1191,6 +1215,7 @@ 

Source code for gsplat.cuda._wrapper

             None,
             None,
             None,
+            None,
         )
 
 
@@ -1344,8 +1369,12 @@ 

Source code for gsplat.cuda._wrapper

         radius_clip: float,
         sparse_grad: bool,
         calc_compensations: bool,
-        ortho: bool,
+        camera_model: Literal["pinhole", "ortho", "fisheye"] = "pinhole",
     ) -> Tuple[Tensor, Tensor, Tensor, Tensor]:
+        camera_model_type = _make_lazy_cuda_obj(
+            f"CameraModelType.{camera_model.upper()}"
+        )
+
         (
             indptr,
             camera_ids,
@@ -1369,7 +1398,7 @@ 

Source code for gsplat.cuda._wrapper

             far_plane,
             radius_clip,
             calc_compensations,
-            ortho,
+            camera_model_type,
         )
         if not calc_compensations:
             compensations = None
@@ -1389,7 +1418,7 @@ 

Source code for gsplat.cuda._wrapper

         ctx.height = height
         ctx.eps2d = eps2d
         ctx.sparse_grad = sparse_grad
-        ctx.ortho = ortho
+        ctx.camera_model_type = camera_model_type
 
         return camera_ids, gaussian_ids, radii, means2d, depths, conics, compensations
 
@@ -1420,7 +1449,7 @@ 

Source code for gsplat.cuda._wrapper

         height = ctx.height
         eps2d = ctx.eps2d
         sparse_grad = ctx.sparse_grad
-        ortho = ctx.ortho
+        camera_model_type = ctx.camera_model_type
 
         if v_compensations is not None:
             v_compensations = v_compensations.contiguous()
@@ -1436,7 +1465,7 @@ 

Source code for gsplat.cuda._wrapper

             width,
             height,
             eps2d,
-            ortho,
+            camera_model_type,
             camera_ids,
             gaussian_ids,
             conics,
diff --git a/main/_modules/gsplat/rendering.html b/main/_modules/gsplat/rendering.html
index b0d501e98..f3f096b05 100644
--- a/main/_modules/gsplat/rendering.html
+++ b/main/_modules/gsplat/rendering.html
@@ -363,7 +363,7 @@ 

Source code for gsplat.rendering

     rasterize_mode: Literal["classic", "antialiased"] = "classic",
     channel_chunk: int = 32,
     distributed: bool = False,
-    ortho: bool = False,
+    camera_model: Literal["pinhole", "ortho", "fisheye"] = "pinhole",
     covars: Optional[Tensor] = None,
 ) -> Tuple[Tensor, Tensor, Dict]:
     """Rasterize a set of 3D Gaussians (N) to a batch of image planes (C).
@@ -624,7 +624,7 @@ 

Source code for gsplat.rendering

         radius_clip=radius_clip,
         sparse_grad=sparse_grad,
         calc_compensations=(rasterize_mode == "antialiased"),
-        ortho=ortho,
+        camera_model=camera_model,
     )
 
     if packed:
diff --git a/main/apis/rasterization.html b/main/apis/rasterization.html
index 51e20d319..fa1efe4d4 100644
--- a/main/apis/rasterization.html
+++ b/main/apis/rasterization.html
@@ -353,7 +353,7 @@ 

3DGSΒΆ
-rasterization(means: Tensor, quats: Tensor, scales: Tensor, opacities: Tensor, colors: Tensor, viewmats: Tensor, Ks: Tensor, width: int, height: int, near_plane: float = 0.01, far_plane: float = 10000000000.0, radius_clip: float = 0.0, eps2d: float = 0.3, sh_degree: int | None = None, packed: bool = True, tile_size: int = 16, backgrounds: Tensor | None = None, render_mode: typing_extensions.Literal[RGB, D, ED, RGB + D, RGB + ED] = 'RGB', sparse_grad: bool = False, absgrad: bool = False, rasterize_mode: typing_extensions.Literal[classic, antialiased] = 'classic', channel_chunk: int = 32, distributed: bool = False, ortho: bool = False, covars: Tensor | None = None) Tuple[Tensor, Tensor, Dict][source]ΒΆ
+rasterization(means: Tensor, quats: Tensor, scales: Tensor, opacities: Tensor, colors: Tensor, viewmats: Tensor, Ks: Tensor, width: int, height: int, near_plane: float = 0.01, far_plane: float = 10000000000.0, radius_clip: float = 0.0, eps2d: float = 0.3, sh_degree: int | None = None, packed: bool = True, tile_size: int = 16, backgrounds: Tensor | None = None, render_mode: typing_extensions.Literal[RGB, D, ED, RGB + D, RGB + ED] = 'RGB', sparse_grad: bool = False, absgrad: bool = False, rasterize_mode: typing_extensions.Literal[classic, antialiased] = 'classic', channel_chunk: int = 32, distributed: bool = False, camera_model: typing_extensions.Literal[pinhole, ortho, fisheye] = 'pinhole', covars: Tensor | None = None) Tuple[Tensor, Tensor, Dict][source]ΒΆ

Rasterize a set of 3D Gaussians (N) to a batch of image planes (C).

This function provides a handful features for 3D Gaussian rasterization, which we detail in the following notes. A complete profiling of the these features diff --git a/main/apis/utils.html b/main/apis/utils.html index 05c1bab3e..6b0533e41 100644 --- a/main/apis/utils.html +++ b/main/apis/utils.html @@ -371,7 +371,7 @@

3DGSΒΆ
-proj(means: Tensor, covars: Tensor, Ks: Tensor, width: int, height: int, ortho: bool) Tuple[Tensor, Tensor][source]ΒΆ
+proj(means: Tensor, covars: Tensor, Ks: Tensor, width: int, height: int, camera_model: typing_extensions.Literal[pinhole, ortho, fisheye] = 'pinhole') Tuple[Tensor, Tensor][source]ΒΆ

Projection of Gaussians (perspective or orthographic).

Parameters:
@@ -398,7 +398,7 @@

3DGSΒΆ
-fully_fused_projection(means: Tensor, covars: Tensor | None, quats: Tensor | None, scales: Tensor | None, viewmats: Tensor, Ks: Tensor, width: int, height: int, eps2d: float = 0.3, near_plane: float = 0.01, far_plane: float = 10000000000.0, radius_clip: float = 0.0, packed: bool = False, sparse_grad: bool = False, calc_compensations: bool = False, ortho: bool = False) Tuple[Tensor, Tensor, Tensor, Tensor, Tensor][source]ΒΆ
+fully_fused_projection(means: Tensor, covars: Tensor | None, quats: Tensor | None, scales: Tensor | None, viewmats: Tensor, Ks: Tensor, width: int, height: int, eps2d: float = 0.3, near_plane: float = 0.01, far_plane: float = 10000000000.0, radius_clip: float = 0.0, packed: bool = False, sparse_grad: bool = False, calc_compensations: bool = False, camera_model: typing_extensions.Literal[pinhole, ortho, fisheye] = 'pinhole') Tuple[Tensor, Tensor, Tensor, Tensor, Tensor][source]ΒΆ

Projects Gaussians to 2D.

This function fuse the process of computing covariances (quat_scale_to_covar_preci()), transforming to camera space (world_to_cam()), diff --git a/main/searchindex.js b/main/searchindex.js index 55c9d9140..2e88c4cc0 100644 --- a/main/searchindex.js +++ b/main/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"2DGS": [[1, "id1"], [3, "id1"], [11, "id1"]], "3DGS": [[1, "dgs"], [3, "dgs"], [11, "dgs"]], "Basic Usage": [[10, "basic-usage"]], "Citations": [[8, "citations"]], "Color as Spherical Harmonics": [[10, "color-as-spherical-harmonics"]], "Compression": [[0, null]], "Contributing": [[8, "contributing"]], "Conventions": [[8, null]], "Data Conventions": [[4, null]], "Densification": [[2, null]], "Depth Rendering": [[10, "depth-rendering"]], "Evaluation": [[11, null]], "Examples": [[8, null]], "Feature Ablation": [[11, "feature-ablation"]], "Fit a COLMAP Capture": [[5, null]], "Fit a Single Image": [[6, null]], "Installation": [[8, "installation"]], "Links": [[8, "links"]], "Migrate from diff-gaussian-rasterization": [[9, null]], "Migrate from gsplat v0.1.11": [[10, null]], "Migration": [[8, null]], "No Regularization": [[11, "no-regularization"]], "Overview": [[8, "overview"]], "Performance on Mip-NeRF 360 Captures (Averaged Over 7 Scenes)": [[11, "id4"]], "Profiling": [[12, null]], "Python API": [[8, null]], "Rasterization": [[1, null]], "Render Feature Maps: 32 Channel": [[12, "render-feature-maps-32-channel"]], "Render RGB Images": [[12, "render-rgb-images"]], "Render a Large Scene": [[7, null], [12, "render-a-large-scene"]], "Reproduced Metrics": [[11, "reproduced-metrics"], [11, "id2"]], "Rotation Convention": [[4, "rotation-convention"]], "Runtime and GPU Memory": [[11, "runtime-and-gpu-memory"]], "Testing and verifying CUDA implementations": [[13, "testing-and-verifying-cuda-implementations"]], "Tests": [[8, null], [13, null]], "Trains Faster with Less GPU Memory": [[11, "trains-faster-with-less-gpu-memory"]], "Utils": [[3, null]], "View Matrix": [[4, "view-matrix"]], "With Normal Consistency and Distortion Regularization": [[11, "with-normal-consistency-and-distortion-regularization"]], "gsplat": [[8, null]]}, "docnames": ["apis/compression", "apis/rasterization", "apis/strategy", "apis/utils", "conventions/data_conventions", "examples/colmap", "examples/image", "examples/large_scale", "index", "migration/migration_inria", "migration/migration_legacy", "tests/eval", "tests/profile", "tests/tests"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1, "sphinxcontrib.bibtex": 9}, "filenames": ["apis/compression.rst", "apis/rasterization.rst", "apis/strategy.rst", "apis/utils.rst", "conventions/data_conventions.rst", "examples/colmap.rst", "examples/image.rst", "examples/large_scale.rst", "index.rst", "migration/migration_inria.rst", "migration/migration_legacy.rst", "tests/eval.rst", "tests/profile.rst", "tests/tests.rst"], "indexentries": {"accumulate() (in module gsplat)": [[3, "gsplat.accumulate", false]], "accumulate_2dgs() (in module gsplat)": [[3, "gsplat.accumulate_2dgs", false]], "check_sanity() (defaultstrategy method)": [[2, "gsplat.DefaultStrategy.check_sanity", false]], "check_sanity() (mcmcstrategy method)": [[2, "gsplat.MCMCStrategy.check_sanity", false]], "compress() (pngcompression method)": [[0, "gsplat.PngCompression.compress", false]], "decompress() (pngcompression method)": [[0, "gsplat.PngCompression.decompress", false]], "defaultstrategy (class in gsplat)": [[2, "gsplat.DefaultStrategy", false]], "fully_fused_projection() (in module gsplat)": [[3, "gsplat.fully_fused_projection", false]], "fully_fused_projection_2dgs() (in module gsplat)": [[3, "gsplat.fully_fused_projection_2dgs", false]], "initialize_state() (defaultstrategy method)": [[2, "gsplat.DefaultStrategy.initialize_state", false]], "initialize_state() (mcmcstrategy method)": [[2, "gsplat.MCMCStrategy.initialize_state", false]], "isect_offset_encode() (in module gsplat)": [[3, "gsplat.isect_offset_encode", false]], "isect_tiles() (in module gsplat)": [[3, "gsplat.isect_tiles", false]], "mcmcstrategy (class in gsplat)": [[2, "gsplat.MCMCStrategy", false]], "pngcompression (class in gsplat)": [[0, "gsplat.PngCompression", false]], "proj() (in module gsplat)": [[3, "gsplat.proj", false]], "quat_scale_to_covar_preci() (in module gsplat)": [[3, "gsplat.quat_scale_to_covar_preci", false]], "rasterization() (in module gsplat)": [[1, "gsplat.rasterization", false]], "rasterization_2dgs() (in module gsplat)": [[1, "gsplat.rasterization_2dgs", false]], "rasterization_2dgs_inria_wrapper() (in module gsplat)": [[3, "gsplat.rasterization_2dgs_inria_wrapper", false]], "rasterization_inria_wrapper() (in module gsplat)": [[3, "gsplat.rasterization_inria_wrapper", false]], "rasterize_to_indices_in_range() (in module gsplat)": [[3, "gsplat.rasterize_to_indices_in_range", false]], "rasterize_to_indices_in_range_2dgs() (in module gsplat)": [[3, "gsplat.rasterize_to_indices_in_range_2dgs", false]], "rasterize_to_pixels() (in module gsplat)": [[3, "gsplat.rasterize_to_pixels", false]], "rasterize_to_pixels_2dgs() (in module gsplat)": [[3, "gsplat.rasterize_to_pixels_2dgs", false]], "spherical_harmonics() (in module gsplat)": [[3, "gsplat.spherical_harmonics", false]], "step_post_backward() (defaultstrategy method)": [[2, "gsplat.DefaultStrategy.step_post_backward", false]], "step_post_backward() (mcmcstrategy method)": [[2, "gsplat.MCMCStrategy.step_post_backward", false]], "step_pre_backward() (defaultstrategy method)": [[2, "gsplat.DefaultStrategy.step_pre_backward", false]], "world_to_cam() (in module gsplat)": [[3, "gsplat.world_to_cam", false]]}, "objects": {"gsplat": [[2, 0, 1, "", "DefaultStrategy"], [2, 0, 1, "", "MCMCStrategy"], [0, 0, 1, "", "PngCompression"], [3, 2, 1, "", "accumulate"], [3, 2, 1, "", "accumulate_2dgs"], [3, 2, 1, "", "fully_fused_projection"], [3, 2, 1, "", "fully_fused_projection_2dgs"], [3, 2, 1, "", "isect_offset_encode"], [3, 2, 1, "", "isect_tiles"], [3, 2, 1, "", "proj"], [3, 2, 1, "", "quat_scale_to_covar_preci"], [1, 2, 1, "", "rasterization"], [1, 2, 1, "", "rasterization_2dgs"], [3, 2, 1, "", "rasterization_2dgs_inria_wrapper"], [3, 2, 1, "", "rasterization_inria_wrapper"], [3, 2, 1, "", "rasterize_to_indices_in_range"], [3, 2, 1, "", "rasterize_to_indices_in_range_2dgs"], [3, 2, 1, "", "rasterize_to_pixels"], [3, 2, 1, "", "rasterize_to_pixels_2dgs"], [3, 2, 1, "", "spherical_harmonics"], [3, 2, 1, "", "world_to_cam"]], "gsplat.DefaultStrategy": [[2, 1, 1, "", "check_sanity"], [2, 1, 1, "", "initialize_state"], [2, 1, 1, "", "step_post_backward"], [2, 1, 1, "", "step_pre_backward"]], "gsplat.MCMCStrategy": [[2, 1, 1, "", "check_sanity"], [2, 1, 1, "", "initialize_state"], [2, 1, 1, "", "step_post_backward"]], "gsplat.PngCompression": [[0, 1, 1, "", "compress"], [0, 1, 1, "", "decompress"]]}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "function", "Python function"]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:function"}, "terms": {"": [1, 3, 7, 11], "0": [0, 1, 2, 3, 5, 7, 8, 9, 10, 11, 12], "00": [11, 12], "0002": 2, "0006": 11, "0008": 2, "005": 2, "01": [1, 2, 3], "01m": 11, "02": 11, "02m": 11, "03": 11, "03m": 11, "04": 11, "05": [2, 11, 12], "06": 11, "06109": 2, "06m": 11, "07": 11, "075": 11, "078": 11, "08": [11, 12], "091": 11, "093": 11, "094": 11, "096": 11, "1": [0, 1, 2, 3, 4, 8, 11, 12], "10": [10, 11, 12], "100": [1, 2, 3, 9], "1000": 2, "1000000": [2, 11], "10000000000": [1, 3], "101": 11, "1057": 11, "107m": 12, "11": [8, 9, 11, 12], "11gb": 9, "11m": 11, "11m28": 11, "12": [11, 12], "123": 11, "1231": 11, "1237": 11, "124": 12, "125": 11, "1252": 11, "127": 11, "128": [0, 2], "129": 12, "1298": 11, "13": 11, "130": 11, "1314": 11, "1318": 11, "132": [11, 12], "133": 11, "134": 11, "135": 11, "136": 11, "138": 11, "14": [11, 12], "1422": 11, "145": 11, "1463": 11, "148": 11, "15": [2, 8, 11], "150": 1, "15000": 2, "153": 11, "154": 11, "155": 11, "1552": 11, "157": [11, 12], "15_000": 2, "15m44": 11, "16": [0, 1, 11], "160": 12, "162": 11, "1621": 11, "163": 9, "164": [11, 12], "166": [9, 11], "168": [11, 12], "169": 11, "16m": 11, "16m44": 11, "17": [11, 12], "1708": 11, "171": 12, "172": 11, "1725": 11, "177": 11, "1773": 11, "17m": 11, "18": [9, 11, 12], "186": 11, "189": 11, "18db": 0, "19": 11, "199": 11, "19m": 11, "1_000_000": 2, "1e": [2, 10], "1e10": [1, 3], "2": [1, 3, 4, 10, 11, 12], "20": [9, 11], "200": [1, 3], "2000": 6, "2000000": 11, "202": 11, "2020": 11, "2023": 8, "204": 11, "206": 11, "207": 11, "21": [11, 12], "2144": 11, "217": 11, "219": 11, "21m": 11, "22": 11, "2299": 11, "22m06": 11, "22m16": 11, "23": [11, 12], "236": 0, "2366": 11, "24": [0, 11, 12], "2404": 2, "2465986": 11, "24gb": 12, "24m": 11, "25": [2, 11, 12], "25000": 2, "253": 11, "254": 11, "256": 6, "2563156": 11, "25_000": 2, "25m": 11, "26": [9, 11], "26m": 11, "27": 11, "27m": 11, "28": [0, 11, 12], "28c928a": 11, "29": [0, 11], "2964": 11, "2980": 11, "299": 11, "2d": [1, 2, 3], "2dg": 2, "3": [0, 1, 2, 3, 4, 7, 10, 11, 12], "30": 11, "300": 1, "3000": 2, "3000000": 11, "301": 11, "3013": 11, "304": 11, "3092": 11, "30k": 11, "30m": 7, "31": [11, 12], "318": 11, "319": 11, "32": [1, 3, 11], "321": 11, "3237318": 11, "324": 11, "329": 11, "33": 11, "336": 11, "3377807": 11, "33m": 11, "34": 12, "340": 11, "35": 12, "35m49": 11, "36": [11, 12], "360": 8, "360_v2": [5, 7], "364": 11, "36546ce": 11, "37": [11, 12], "37m13": 11, "38": 12, "389": 11, "39": [11, 12], "398": 9, "3d": [0, 1, 2, 4, 5, 8], "3dg": [2, 7, 8], "3gb": 11, "3x3": 4, "4": [0, 1, 2, 3, 5, 7, 10, 11, 12], "40": [11, 12], "4090": 11, "40m": 11, "41": 12, "415": 11, "42": [11, 12], "427": 11, "43": [11, 12], "436": 11, "44": 12, "45": 12, "46": 12, "47": [11, 12], "48": [11, 12], "482": 9, "48abf70": 11, "48m": 11, "49m": [11, 12], "4x": [8, 11], "5": [0, 7, 11, 12], "50": 11, "500": 2, "500000": 2, "52": [11, 12], "53": [11, 12], "55m": 11, "56": 11, "57": 11, "57m": 11, "58": 11, "59": [11, 12], "59m": 11, "5db": 0, "5e5": 2, "5m35": 11, "6": [3, 11, 12], "61": [11, 12], "62": [11, 12], "62m": 11, "63": 11, "63m": 11, "64": [0, 2, 3, 11], "65": 11, "65db": 0, "66": [11, 12], "662": 11, "668": 11, "67": 12, "6acdce4": 11, "6m05": 11, "7": 12, "70": 11, "71": 11, "71m": 11, "720": 11, "721": 11, "72m": 11, "73": 11, "73m": 11, "74": 11, "741": 11, "75": 11, "75m": 11, "76": 11, "760": 11, "761": 11, "763": 11, "764": 11, "768": 11, "771": 11, "78": 11, "788": 11, "789": 11, "78gb": 9, "78m": 11, "79": 11, "79m": 11, "7k": 11, "8": [9, 11, 12], "80": 11, "803": 11, "81m": 11, "82": 11, "8237": 9, "824": 11, "828": 11, "829": 11, "82m": 11, "83": 12, "831": 11, "833": 11, "8366": 9, "84": 12, "842": 11, "847": 11, "848": 11, "849": 11, "84m": 11, "85m": 11, "86": [11, 12], "860": 11, "863": 11, "865": 11, "867": 11, "87": 11, "870": 11, "871": 11, "877": 11, "878": 11, "87m": 11, "88": [11, 12], "88m": 11, "89": 11, "893": 11, "899": 11, "8ea2ea3": 12, "9": [3, 9, 11, 12], "902": 11, "906": 11, "907": 11, "91": [11, 12], "914": 11, "915": 11, "918": 11, "91m": 11, "92": 11, "921": 11, "922": 11, "925": 11, "926": 11, "92m": 11, "93": 11, "937": 11, "94": 11, "941": 11, "95": 11, "97": [11, 12], "97m": 11, "98": 11, "985": 11, "99": 11, "9x9": 7, "A": [1, 2, 3], "And": [8, 12], "As": 1, "But": [1, 3, 12], "For": [0, 1, 2, 7, 9], "If": [1, 2, 3, 12], "In": [1, 2, 3, 9, 10], "It": [0, 1, 2, 3, 5, 8, 12], "Near": 3, "No": 3, "On": [0, 1, 2, 9], "Or": 7, "The": [0, 1, 2, 3, 5, 6, 7, 10, 11, 12, 13], "Then": 1, "These": [3, 11], "To": 8, "With": 7, "_": [1, 4, 10], "a100": 11, "aalto": 8, "abl": 5, "abov": [2, 12], "absg": [1, 2], "absgrad": [1, 2, 3, 8, 11], "absolut": [1, 2], "abstract": 2, "acceler": 8, "access": [1, 10], "accquir": 3, "accumul": [1, 3, 10], "accumulate_2dg": 3, "accumulated_depth": 10, "achiev": [1, 10], "acm": 8, "activ": [0, 1, 10], "ad": [0, 1, 3], "adam": 2, "addit": 12, "addition": 9, "advisor": 8, "affect": 12, "after": [2, 12], "agre": 13, "ai": 8, "alia": 1, "alias": [3, 8], "align": 9, "all": [1, 2, 3], "alloc": 12, "allow": [1, 5, 6, 7], "along": [1, 2, 12], "alpah": 3, "alpha": [1, 3, 10], "also": [0, 1, 2, 5, 6, 8, 9, 12, 13], "amazon": 8, "amount": [10, 12], "an": [0, 1, 2, 3, 8, 11], "angjoo": 8, "ani": [2, 8, 13], "annot": 3, "anti": [3, 8], "antialias": [1, 3, 11], "api": [0, 7, 9, 10], "appli": [1, 7], "approach": 0, "approxim": 1, "ar": [0, 1, 2, 3, 7, 8, 9, 10, 11, 12, 13], "arbitrari": [0, 2], "argument": [1, 10, 12], "arxiv": 2, "assertionerror": 2, "attribut": [0, 2, 3, 12], "autograd": 3, "automat": [7, 10, 13], "avail": [8, 10], "averag": 2, "awai": [0, 1, 7], "back": 1, "backend": [3, 7, 8, 9, 12], "background": [1, 3, 10], "backpropag": 3, "backward": [1, 2, 3, 12], "balanc": 1, "band": [1, 10], "base": [1, 2, 3, 5, 9], "bash": 11, "basic": [3, 6, 11], "basic_2dg": 11, "batch": [1, 3, 8, 9, 12], "batch_siz": 12, "becom": 1, "befor": [0, 2, 10, 12], "begin": [1, 4], "below": [0, 1, 2, 3, 6, 10], "benchmar": 11, "benchmark": 11, "berkelei": 8, "bernhard": 8, "besid": 2, "better": [1, 2, 5, 9], "between": [1, 3, 9, 12], "bicycl": 11, "bind": 8, "bit": 3, "block_width": 10, "blow": 7, "bmatrix": [1, 4], "bonsai": 11, "bool": [0, 1, 2, 3], "boolen": 3, "born": 8, "both": 1, "bound": [1, 3], "box": 3, "branch": 13, "brent": 8, "browser": 5, "bug": 8, "bwd": 12, "bwtween": 1, "c": [1, 3], "calc_compens": 3, "calcul": 12, "call": [2, 3, 10], "callback": 2, "cam": [1, 4], "camera": [1, 3, 4, 7, 12], "camera_id": [1, 3], "camtoworld": 10, "can": [0, 1, 2, 3, 6, 7, 8, 10, 11], "cap_max": 2, "capabl": 8, "captur": 8, "care": 12, "carlo": 2, "case": [1, 3, 10, 12], "cd": 11, "center": [1, 4], "chain": 2, "chang": [9, 10, 11], "channel": [1, 3], "channel_chunk": 1, "check": 2, "check_san": 2, "choos": 1, "chunk": 1, "ckpt": 7, "ckpt_6999": 7, "clamp_min": 10, "class": [0, 2], "classic": 1, "clip": 1, "clip_thresh": 10, "close": 1, "cluster": 0, "code": [0, 7, 9, 10], "coeff": 3, "coeffic": 0, "coeffici": [1, 3, 10], "collabor": 1, "collect": 3, "colmap": 8, "color": [1, 2, 3], "column": [1, 3], "com": [3, 8], "come": [8, 11], "command": [3, 11], "commit": [9, 11, 12], "compact": 0, "compar": 8, "comparison": [3, 5], "compat": 9, "compens": [1, 3], "complet": 1, "composit": [1, 3], "compress": 8, "compress_dir": 0, "compression_method": 0, "comput": [1, 2, 3], "compute_covar": 3, "compute_preci": 3, "comsum": 3, "condit": 2, "conduct": [11, 12], "config": 11, "configur": 7, "conic": [1, 3, 10], "consid": 1, "consum": 1, "consumpt": 12, "contain": 0, "contributor": 8, "control": 1, "convens": 1, "convent": 2, "converg": 11, "convers": 10, "convert": [1, 3, 10], "coo": [1, 3, 12], "coordin": [1, 3], "core": 8, "correspond": [1, 2, 3], "cost": 0, "could": [1, 3, 10, 12], "counter": 11, "coupl": 10, "covar": [1, 3], "covari": [1, 3], "credit": 3, "cuda": [3, 7, 8, 9, 11, 12], "cuda_visible_devic": [5, 7], "curios": 8, "current": [1, 2, 3, 12], "custom": 6, "cx": [1, 10], "cy": [1, 10], "d": [1, 3, 8, 10], "data": [5, 7, 8, 12], "data_dir": [5, 7], "data_factor": [5, 7], "debug": 3, "decompress": 0, "default": [0, 1, 2, 3, 5, 7, 11], "defaultstrategi": 2, "defin": [0, 1, 2, 3, 4], "degre": [1, 3], "degrees_to_us": 3, "demonstr": 10, "denot": 12, "densif": [0, 3, 8, 11], "densifi": 3, "depend": [1, 3], "deprec": 10, "depth": [1, 3, 4, 8], "depth_mod": 1, "depth_ratio": 3, "design": [0, 2, 7, 8], "desir": 3, "det": 1, "detail": [1, 2, 5, 8, 12], "develop": [8, 12], "devic": [1, 10], "diag": 1, "dict": [0, 1, 2, 3], "dict_kei": 1, "dictionari": [0, 1], "diff": [3, 7, 8, 12], "differ": [1, 3, 11, 12], "differenti": [1, 6, 8], "dimension": 4, "dir": 3, "direct": [1, 3], "directori": 0, "disabl": 1, "disregard": 7, "distanc": 3, "distloss": [1, 3], "distort": [1, 3], "distribut": [1, 2, 8], "do": 1, "document": 10, "doe": 5, "done": 1, "drettaki": 8, "dummi": 3, "duplic": 2, "dure": [1, 2, 3], "e": [2, 3, 7, 10], "each": [1, 2, 3, 12], "ed": [1, 10], "effect": [1, 3, 12], "effici": [1, 3, 7, 8, 11, 12], "egienvalu": 1, "either": [0, 2, 3], "element": 3, "els": 1, "embed": 1, "enabl": [2, 3, 8], "encod": 3, "end": [1, 3, 4], "enforc": 1, "enjoi": 10, "ensur": 2, "eps2d": [1, 3], "epsilon": [1, 3], "equal": 1, "equat": [1, 3], "equip": 8, "equival": 10, "especi": 1, "essenti": 3, "etc": [2, 8, 9], "evalu": [5, 8, 12], "evaul": 11, "even": 8, "everi": 2, "exact": 5, "exactli": [2, 11], "exampl": [0, 1, 2, 3, 5, 6, 7, 9, 11], "exclud": 12, "exclus": 3, "execut": 2, "exist": 3, "expand": 8, "expect": [0, 1, 2, 3, 10], "expected_depth": 10, "experiment": [1, 2, 3], "explain": 4, "explicitli": 10, "expos": 3, "extra": [0, 2, 8], "extrem": [1, 8], "ey": 1, "f_": 1, "factor": [1, 3], "fall": 1, "fals": [1, 2, 3, 12], "far": [1, 3, 7], "far_plan": [1, 3], "fast": 1, "faster": [1, 8], "featur": [1, 2, 3, 8], "features1": [0, 2], "features2": [0, 2], "feedback": 8, "few": [0, 12], "field": [0, 1, 2, 8], "file": [0, 6], "fine": [1, 2], "finish": 11, "first": [1, 7], "fit": 8, "flag": 6, "flatten": 3, "flatten_id": [1, 3], "flattend": 3, "float": [1, 2, 3], "flow": 1, "focal": 1, "folder": 13, "follow": [0, 1, 2, 3, 5, 8], "footprint": [1, 5, 8], "fork": [9, 11], "format": [0, 2, 3], "forward": [2, 12], "found": [1, 7], "four": 4, "fp": 12, "fr": 8, "frac": 1, "frame": [1, 3, 4], "free": [1, 9], "from": [0, 1, 2, 3, 7, 8, 11], "frustum": [3, 12], "full": 3, "full_eval_m360": 11, "fulli": [3, 9], "fully_fused_project": [3, 10], "fully_fused_projection_2dg": 3, "function": [1, 2, 3, 9, 12], "fungraph": 8, "further": 12, "fuse": 3, "futur": 10, "fwd": 12, "fx": [1, 10], "fy": [1, 10], "g": [1, 2, 3, 7, 10], "garden": [5, 7, 11], "gaussian": [0, 1, 2, 3, 5, 6, 7, 8, 11, 12], "gaussian_id": [1, 3], "gb": [11, 12], "geometri": 1, "georg": 8, "georgio": 8, "get": [1, 6, 8, 9], "git": 8, "github": [3, 8, 13], "given": 1, "glob_scal": 10, "global": 3, "go": 1, "gpu": [1, 3, 7, 8, 12], "grad": 12, "gradient": [1, 2, 3, 8, 9, 12], "gradient_2dg": [1, 2], "graphdeco": 3, "graphic": 8, "greatest": [8, 10], "greatli": 12, "grid": [0, 7], "group": 1, "grow": 8, "grow_grad2d": [2, 11], "grow_scale2d": 2, "grow_scale3d": 2, "gsplat": [0, 2, 3, 7, 9, 11, 12], "gss": [2, 11], "guassian": 2, "h": 1, "h_": 1, "ha": [0, 2, 3, 12], "hand": 1, "handi": 0, "handl": 10, "happen": 1, "harmon": [0, 3], "have": [1, 2, 3, 5], "hbb1": 3, "height": [1, 3, 6, 10], "help": [1, 8, 10], "here": [4, 7, 10, 11, 12], "heurist": 2, "high": 2, "higher": 2, "highli": 2, "hler": 8, "how": [0, 2], "http": [3, 8], "hu": 3, "huge": 10, "i": [0, 1, 2, 3, 4, 7, 8, 9, 10, 11, 12], "id": 3, "idea": 3, "ignor": [1, 3], "imag": [1, 2, 3, 8, 11], "image_fit": 6, "image_height": 3, "image_width": 3, "imageio": 0, "img_height": 10, "img_path": 6, "img_width": 10, "impact": 12, "implement": [1, 2, 3, 5, 8, 11], "import": [0, 2, 10, 11], "improv": [8, 9], "includ": [8, 9, 10, 12, 13], "inclus": 3, "increas": 1, "indic": 3, "info": 2, "inform": [0, 2, 3], "initi": 2, "initialize_st": 2, "inplac": 2, "input": [1, 3, 12], "inria": [3, 7, 8, 11, 12], "inspir": 8, "instal": [0, 3], "instead": 2, "insteal": 7, "int": [1, 2, 3, 10], "int32": 3, "int64": 3, "integ": 3, "intermedi": [1, 10], "intermid": 12, "intern": 3, "intersect": [1, 3], "intrins": [1, 3], "introduc": [2, 12], "invalid": 3, "invers": [1, 3], "isect_id": [1, 3], "isect_offset": [1, 3], "isect_offset_encod": 3, "isect_til": 3, "iter": [1, 2, 3], "its": 3, "j": 1, "jacobian": 1, "jefequien": 3, "jeffrei": 3, "jianbo": 8, "juli": 8, "justin": 8, "k": [0, 1, 2, 3, 10], "kanazawa": 8, "keep": 3, "kei": [0, 1, 2], "kerbl": 8, "kernel": 3, "kerr": 8, "key_for_gradi": 2, "kind": 8, "kitchen": 11, "kopana": 8, "kwarg": 3, "l1": 1, "l2": 1, "larg": [1, 2, 3, 8], "larger": [1, 8, 9], "last": 1, "latest": [8, 10], "layout": [1, 3, 12], "lead": [1, 2, 8], "learn": 2, "learnabl": 2, "learnedperceptualimagepatchsimilar": 11, "least": [0, 2], "left": 4, "legaci": 12, "leimk": 8, "length": 1, "leq": 1, "less": [8, 9], "li": 8, "librari": 8, "licens": 3, "like": 2, "line": 9, "list": [3, 8], "liter": [1, 2], "live": 1, "local": [1, 3], "locat": 2, "logic": 5, "loop": 2, "loopli": 1, "loss": [0, 2], "low": [2, 7], "lower": 2, "lowest": 0, "lpip": [9, 11], "lpipspytorch": 11, "lr": 2, "luma": 8, "m": 3, "made": 8, "magic": 7, "magnitud": 8, "main": [7, 12, 13], "major": [3, 10], "make": [0, 1], "mani": 8, "map": [3, 4, 10], "markov": 2, "mask": 3, "mathbb": 1, "mathbf": 1, "mathcal": 1, "matia": 8, "matric": [1, 3], "matrix": 1, "matthew": 8, "max_memory_alloc": 12, "maximum": [2, 3], "mb": 0, "mcmc": [2, 8, 11], "mcmcstrategi": 2, "mean": [0, 1, 2, 3, 10], "means2d": [1, 2, 3, 10], "means3d": 10, "median": [1, 3], "median_depth": 1, "mem": [11, 12], "memori": [1, 3, 5, 7, 8, 9, 12], "met": 2, "meta": [1, 10], "method": 11, "metric": 5, "might": [0, 1, 2, 7], "mill": 11, "million": 0, "mimic": 7, "min": 11, "min_opac": 2, "mind": [7, 8, 12], "minim": [1, 9], "mip": [1, 8], "mode": [1, 11], "model": [5, 7], "model_typ": 11, "moment": 1, "mont": 2, "more": [0, 1, 3, 5, 8, 9, 12], "most": 12, "mu": 1, "much": [3, 5, 9], "multi": [1, 8], "n": [0, 1, 2, 3, 8, 10, 12], "n_camera": [1, 3], "n_isect": 3, "nativ": 13, "nd": 3, "near_plan": [1, 3, 10], "need": [3, 10, 11], "nerf": 8, "nerfacc": 3, "nerfstudio": [7, 8], "nerfview": 5, "new": [2, 3, 8], "next": 3, "nn": 2, "nnz": 3, "nois": 2, "noise_lr": 2, "none": [0, 1, 3, 10], "normal": [1, 2, 3], "note": [1, 7, 9, 10, 11, 12], "notic": 9, "novel": 5, "npz": 0, "num": 11, "num_point": 6, "num_tiles_hit": 10, "number": [0, 1, 2, 3, 11], "numer": [3, 12], "nvidia": [11, 12], "o": 1, "obtain": 11, "off": [1, 9, 12], "offer": 8, "offici": [5, 8, 9, 11], "offset": [1, 3], "old": 10, "one": [1, 2, 3, 6], "ones": 13, "onli": [0, 1, 2, 3, 10, 12], "oom": 12, "opac": [0, 1, 2, 3, 10], "open": 8, "oper": 12, "optim": [1, 2, 12], "option": [0, 1, 3], "organ": 0, "origin": [2, 3, 11], "ortho": [1, 3], "orthograph": [1, 3], "other": 1, "otherwis": 3, "our": [0, 2, 3, 4, 7, 9, 11, 13], "out": 2, "output": [1, 3], "outsid": 3, "overhead": 12, "own": [3, 6], "p": [1, 2], "pack": [1, 2, 3, 12], "packag": [0, 3], "page": 1, "pair": 3, "pan": 8, "paper": [1, 2, 3, 5, 8, 11], "param": 2, "param_group": 2, "paramet": [0, 1, 2, 3], "parameterdict": 2, "parametr": 1, "part": 12, "pass": [1, 2, 3, 10], "path": 6, "path_to_img": 6, "paus": 2, "pause_refine_after_reset": 2, "peopl": 8, "per": 3, "perform": [3, 9, 12], "period": 2, "perspect": [1, 3], "perturb": 2, "pip": [3, 8], "pixel": [1, 3, 7], "pixel_id": 3, "pla": 0, "place": 2, "plane": [1, 2, 3], "playground": 3, "pleas": [1, 3], "png": 0, "pngcompress": 0, "point": [1, 4], "portion": [1, 12], "posit": 2, "post": [1, 2], "potenti": 8, "power": [5, 11], "practic": 1, "pre": [0, 2], "precis": 3, "prepar": 3, "present": 2, "prevent": 1, "princip": 1, "print": [0, 1, 2], "process": [2, 3, 5, 6, 12], "profil": [1, 8], "proj": 3, "project": [1, 3, 7, 8, 10], "project_gaussian": 10, "propos": 1, "provid": [0, 1, 3, 6, 9, 11, 12, 13], "prune": 2, "prune_opa": 2, "prune_scale2d": 2, "prune_scale3d": 2, "psnr": [0, 9, 11], "pt": 7, "pull": 13, "pure": 3, "purpos": 3, "py": [5, 6, 7, 11, 12, 13], "pypi": 8, "python": [5, 6, 7, 11, 12], "pytorch": [3, 13], "q": [1, 4], "quantiz": 0, "quat": [0, 1, 2, 3, 10], "quat_scale_to_covar_preci": 3, "quaternion": [1, 3], "r": [1, 4], "radianc": [2, 8], "radii": [1, 3, 10], "radiu": [1, 3, 7], "radius_clip": [1, 3, 7], "rai": [1, 3], "rais": 2, "ran": 13, "rand": 1, "randn": 1, "random": 6, "rang": 2, "range_end": 3, "range_start": 3, "rank": 1, "rare": 1, "raster": [2, 3, 6, 7, 8, 10, 12], "rasterization_2dg": 1, "rasterization_2dgs_inria_wrapp": 3, "rasterization_inria_wrapp": [3, 9], "rasterize_gaussian": 10, "rasterize_mod": 1, "rasterize_to_indices_in_rang": 3, "rasterize_to_indices_in_range_2dg": 3, "rasterize_to_pixel": 3, "rasterize_to_pixels_2dg": 3, "rate": 2, "ray_transform": [1, 3], "real": [2, 5, 7, 8], "realli": 3, "recommend": [1, 2, 12], "recov": [1, 2], "reduc": [0, 12], "reduct": 9, "refer": [0, 1, 4], "refin": 2, "refine_everi": 2, "refine_scale2d_stop_it": 2, "refine_start_it": 2, "refine_stop_it": 2, "regular": 1, "rel": [4, 12], "releas": 10, "reli": 3, "remov": 10, "render": [1, 2, 3, 5, 8], "render_alpha": [1, 2], "render_color": 1, "render_distort": 1, "render_imag": 2, "render_median": 1, "render_mod": [1, 10], "render_norm": 1, "reparametr": 1, "replac": 9, "replic": 7, "repo": [4, 8, 11], "report": [8, 11], "repositori": [8, 13], "repres": [1, 3, 4], "represent": 0, "reproduc": 5, "request": 13, "requir": [0, 1, 2, 3, 7], "reset": 2, "reset_everi": 2, "resolut": [2, 7], "respect": [1, 3], "result": [1, 2, 5, 6, 7, 10, 11, 12], "result_dir": [5, 7], "return": [0, 1, 2, 3], "return_alpha": 10, "revis": 2, "revised_opac": 2, "rgb": [1, 10], "rgbd": 10, "rho": 1, "right": 4, "room": 11, "rotat": 1, "row": 3, "rss": 1, "rtx": [11, 12], "ruilong": 8, "run": [0, 2, 5, 6, 11], "runtim": [1, 12], "sam": 8, "same": [1, 2, 5, 11], "samp": 2, "sampl": 2, "saniti": 2, "save": [0, 1], "save_img": 6, "scale": [0, 1, 2, 3, 10], "scenario": 1, "scene": [0, 1, 8, 9], "scene_grid": [7, 12], "scene_scal": 2, "script": [5, 6, 11, 13], "see": [1, 5, 8, 12], "seen": 1, "self": 0, "serv": 3, "set": [1, 2, 3, 6, 11, 12], "sh": [1, 10, 11], "sh0": 0, "sh_coeff": 10, "sh_degre": [1, 3, 10], "shanghaitech": 8, "shape": [1, 3], "shn": 0, "should": [1, 2, 3, 12], "shown": 1, "siggraph": 8, "sigma": 1, "signific": 9, "significantli": [0, 12], "similar": [0, 1, 2, 6, 7], "simpl": 7, "simple_train": [5, 7, 11], "simple_view": 7, "simpli": [5, 6], "simplifi": 10, "simplli": 1, "singl": [8, 10], "size": [1, 3, 12], "skip": [1, 3], "slightli": [1, 9], "slow": [1, 7], "slower": [1, 3], "small": [1, 2, 7, 12], "smaller": [0, 1, 3], "snippet": 0, "so": [2, 3, 4, 7, 10], "softwar": 8, "solut": 1, "some": [3, 4, 9], "sort": [0, 1, 3], "sourc": [0, 1, 2, 3, 4, 8], "space": [1, 3], "spars": [1, 3, 8, 9, 12], "sparse_grad": [1, 3, 12], "sparseadam": [1, 12], "specif": [0, 2], "speed": [1, 5, 9, 12], "speedup": 9, "spheric": [0, 3], "spherical_harmon": [3, 10], "splat": [0, 1, 2, 3, 5, 8, 9, 11], "splats_c": 0, "split": [1, 2], "sqrt": 1, "squar": 0, "squeez": 10, "ssim": [9, 11], "stabil": 3, "standalon": 11, "start": [2, 3], "state": 2, "step": [2, 3], "step_post_backward": 2, "step_pre_backward": 2, "still": [7, 10], "stop": 2, "storag": 0, "store": [0, 1, 2], "str": [0, 2], "strategi": [2, 11], "strategy_st": 2, "stream": 0, "stump": 11, "subset": 1, "suitabl": 7, "sum_i": 1, "support": [0, 1, 2, 3, 5, 8, 9, 12], "surf_norm": 1, "surfac": 1, "surfel": 3, "switch": 7, "synthesi": 5, "system": 3, "t": [1, 3], "t_": 1, "tag": 5, "take": 11, "tancik": 8, "tangent": 1, "tangenti": 1, "team": 8, "techniqu": 8, "teleport": 2, "tensor": [0, 1, 2, 3, 10, 12], "test": [1, 6], "test_bas": 13, "text": 1, "textit": 1, "than": [1, 3, 8, 9, 11], "thei": [0, 1, 10, 13], "thi": [0, 1, 2, 3, 5, 7, 8, 9, 10, 11, 12], "thoma": 8, "threshold": [1, 7], "throw": 0, "tile": [1, 3], "tile_height": [1, 3], "tile_id": 3, "tile_s": [1, 3, 10], "tile_width": [1, 3], "tiles_per_gauss": 1, "time": [1, 2, 5, 7, 8, 9, 11], "times3": 1, "times4": 1, "titan": [11, 12], "togeth": 12, "too": 1, "top": [0, 2, 9], "torch": [0, 1, 2, 10, 12], "torchmetr": 11, "torchpq": 0, "total": [1, 7], "track": 3, "trade": [1, 9, 12], "train": [1, 2, 5, 6, 7, 8, 9, 12], "transact": 8, "transform": [1, 3, 4], "transmitt": 3, "triangl": 3, "triangular": 3, "trick": 7, "triu": 3, "true": [0, 1, 2, 3, 10, 12], "try": 8, "tupl": [1, 3], "turkulainen": 8, "two": 1, "type": [0, 1, 3], "typic": 2, "typing_extens": [1, 2], "u": 1, "uc": 8, "under": [5, 6, 7], "understand": 8, "unit": [1, 3], "univers": 8, "unord": 8, "until": 2, "up": [1, 7, 8, 11], "updat": 2, "upper": 3, "url": 8, "us": [0, 1, 2, 3, 4, 6, 10, 11, 12], "usag": 12, "use_sort": 0, "user": [2, 10], "usual": [1, 12], "util": 8, "v": 1, "v0": [8, 12], "v1": [8, 9, 10, 12], "valid": [2, 3], "valu": [0, 1, 2, 3], "variabl": [2, 3], "variou": 4, "ve": 8, "vector": [1, 4], "verbos": [0, 2], "veri": 7, "verifi": 5, "version": 1, "via": [0, 1, 10], "vicki": 8, "video": 5, "view": [1, 3, 5, 7], "viewdir": 10, "viewer": [5, 7], "viewmat": [1, 3, 10], "viser": 5, "w": [1, 4], "w2c": 4, "w_i": 1, "wa": 8, "wai": 12, "want": 2, "warn": [1, 7], "we": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12], "weight": 1, "welcom": 8, "well": 2, "wersion": 11, "wh": [1, 3], "what": 11, "when": [1, 3, 12], "where": [1, 4], "whether": [0, 1, 2, 3], "which": [0, 1, 2, 3, 7, 8, 11, 12], "while": [7, 12], "width": [1, 3, 6, 10], "within": [1, 11], "wonder": 8, "work": [0, 1, 2], "workflow": [2, 10], "world": [1, 3, 4], "world_to_cam": 3, "would": [3, 12], "wrapper": [3, 9], "wxyz": 1, "x": [1, 4, 11, 12], "xc": 3, "xt": 3, "xy": [3, 10], "y": [1, 4], "ye": 8, "yi": 8, "you": [5, 6, 10, 11], "your": [5, 6, 7], "z": [1, 3, 4], "z_": 4, "z_i": 1, "zero": 3, "zhuoyang": 8, "\u00fc": 8}, "titles": ["Compression", "Rasterization", "Densification", "Utils", "Data Conventions", "Fit a COLMAP Capture", "Fit a Single Image", "Render a Large Scene", "gsplat", "Migrate from diff-gaussian-rasterization", "Migrate from gsplat v0.1.11", "Evaluation", "Profiling", "Tests"], "titleterms": {"1": 10, "11": 10, "2dg": [1, 3, 11], "32": 12, "360": 11, "3dg": [1, 3, 11], "7": 11, "No": 11, "With": 11, "ablat": 11, "api": 8, "averag": 11, "basic": 10, "captur": [5, 11], "channel": 12, "citat": 8, "colmap": 5, "color": 10, "compress": 0, "consist": 11, "contribut": 8, "convent": [4, 8], "cuda": 13, "data": 4, "densif": 2, "depth": 10, "diff": 9, "distort": 11, "evalu": 11, "exampl": 8, "faster": 11, "featur": [11, 12], "fit": [5, 6], "from": [9, 10], "gaussian": 9, "gpu": 11, "gsplat": [8, 10], "harmon": 10, "imag": [6, 12], "implement": 13, "instal": 8, "larg": [7, 12], "less": 11, "link": 8, "map": 12, "matrix": 4, "memori": 11, "metric": 11, "migrat": [8, 9, 10], "mip": 11, "nerf": 11, "normal": 11, "over": 11, "overview": 8, "perform": 11, "profil": 12, "python": 8, "raster": [1, 9], "regular": 11, "render": [7, 10, 12], "reproduc": 11, "rgb": 12, "rotat": 4, "runtim": 11, "scene": [7, 11, 12], "singl": 6, "spheric": 10, "test": [8, 13], "train": 11, "usag": 10, "util": 3, "v0": 10, "verifi": 13, "view": 4}}) \ No newline at end of file +Search.setIndex({"alltitles": {"2DGS": [[1, "id1"], [3, "id1"], [11, "id1"]], "3DGS": [[1, "dgs"], [3, "dgs"], [11, "dgs"]], "Basic Usage": [[10, "basic-usage"]], "Citations": [[8, "citations"]], "Color as Spherical Harmonics": [[10, "color-as-spherical-harmonics"]], "Compression": [[0, null]], "Contributing": [[8, "contributing"]], "Conventions": [[8, null]], "Data Conventions": [[4, null]], "Densification": [[2, null]], "Depth Rendering": [[10, "depth-rendering"]], "Evaluation": [[11, null]], "Examples": [[8, null]], "Feature Ablation": [[11, "feature-ablation"]], "Fit a COLMAP Capture": [[5, null]], "Fit a Single Image": [[6, null]], "Installation": [[8, "installation"]], "Links": [[8, "links"]], "Migrate from diff-gaussian-rasterization": [[9, null]], "Migrate from gsplat v0.1.11": [[10, null]], "Migration": [[8, null]], "No Regularization": [[11, "no-regularization"]], "Overview": [[8, "overview"]], "Performance on Mip-NeRF 360 Captures (Averaged Over 7 Scenes)": [[11, "id4"]], "Profiling": [[12, null]], "Python API": [[8, null]], "Rasterization": [[1, null]], "Render Feature Maps: 32 Channel": [[12, "render-feature-maps-32-channel"]], "Render RGB Images": [[12, "render-rgb-images"]], "Render a Large Scene": [[7, null], [12, "render-a-large-scene"]], "Reproduced Metrics": [[11, "reproduced-metrics"], [11, "id2"]], "Rotation Convention": [[4, "rotation-convention"]], "Runtime and GPU Memory": [[11, "runtime-and-gpu-memory"]], "Testing and verifying CUDA implementations": [[13, "testing-and-verifying-cuda-implementations"]], "Tests": [[8, null], [13, null]], "Trains Faster with Less GPU Memory": [[11, "trains-faster-with-less-gpu-memory"]], "Utils": [[3, null]], "View Matrix": [[4, "view-matrix"]], "With Normal Consistency and Distortion Regularization": [[11, "with-normal-consistency-and-distortion-regularization"]], "gsplat": [[8, null]]}, "docnames": ["apis/compression", "apis/rasterization", "apis/strategy", "apis/utils", "conventions/data_conventions", "examples/colmap", "examples/image", "examples/large_scale", "index", "migration/migration_inria", "migration/migration_legacy", "tests/eval", "tests/profile", "tests/tests"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1, "sphinxcontrib.bibtex": 9}, "filenames": ["apis/compression.rst", "apis/rasterization.rst", "apis/strategy.rst", "apis/utils.rst", "conventions/data_conventions.rst", "examples/colmap.rst", "examples/image.rst", "examples/large_scale.rst", "index.rst", "migration/migration_inria.rst", "migration/migration_legacy.rst", "tests/eval.rst", "tests/profile.rst", "tests/tests.rst"], "indexentries": {"accumulate() (in module gsplat)": [[3, "gsplat.accumulate", false]], "accumulate_2dgs() (in module gsplat)": [[3, "gsplat.accumulate_2dgs", false]], "check_sanity() (defaultstrategy method)": [[2, "gsplat.DefaultStrategy.check_sanity", false]], "check_sanity() (mcmcstrategy method)": [[2, "gsplat.MCMCStrategy.check_sanity", false]], "compress() (pngcompression method)": [[0, "gsplat.PngCompression.compress", false]], "decompress() (pngcompression method)": [[0, "gsplat.PngCompression.decompress", false]], "defaultstrategy (class in gsplat)": [[2, "gsplat.DefaultStrategy", false]], "fully_fused_projection() (in module gsplat)": [[3, "gsplat.fully_fused_projection", false]], "fully_fused_projection_2dgs() (in module gsplat)": [[3, "gsplat.fully_fused_projection_2dgs", false]], "initialize_state() (defaultstrategy method)": [[2, "gsplat.DefaultStrategy.initialize_state", false]], "initialize_state() (mcmcstrategy method)": [[2, "gsplat.MCMCStrategy.initialize_state", false]], "isect_offset_encode() (in module gsplat)": [[3, "gsplat.isect_offset_encode", false]], "isect_tiles() (in module gsplat)": [[3, "gsplat.isect_tiles", false]], "mcmcstrategy (class in gsplat)": [[2, "gsplat.MCMCStrategy", false]], "pngcompression (class in gsplat)": [[0, "gsplat.PngCompression", false]], "proj() (in module gsplat)": [[3, "gsplat.proj", false]], "quat_scale_to_covar_preci() (in module gsplat)": [[3, "gsplat.quat_scale_to_covar_preci", false]], "rasterization() (in module gsplat)": [[1, "gsplat.rasterization", false]], "rasterization_2dgs() (in module gsplat)": [[1, "gsplat.rasterization_2dgs", false]], "rasterization_2dgs_inria_wrapper() (in module gsplat)": [[3, "gsplat.rasterization_2dgs_inria_wrapper", false]], "rasterization_inria_wrapper() (in module gsplat)": [[3, "gsplat.rasterization_inria_wrapper", false]], "rasterize_to_indices_in_range() (in module gsplat)": [[3, "gsplat.rasterize_to_indices_in_range", false]], "rasterize_to_indices_in_range_2dgs() (in module gsplat)": [[3, "gsplat.rasterize_to_indices_in_range_2dgs", false]], "rasterize_to_pixels() (in module gsplat)": [[3, "gsplat.rasterize_to_pixels", false]], "rasterize_to_pixels_2dgs() (in module gsplat)": [[3, "gsplat.rasterize_to_pixels_2dgs", false]], "spherical_harmonics() (in module gsplat)": [[3, "gsplat.spherical_harmonics", false]], "step_post_backward() (defaultstrategy method)": [[2, "gsplat.DefaultStrategy.step_post_backward", false]], "step_post_backward() (mcmcstrategy method)": [[2, "gsplat.MCMCStrategy.step_post_backward", false]], "step_pre_backward() (defaultstrategy method)": [[2, "gsplat.DefaultStrategy.step_pre_backward", false]], "world_to_cam() (in module gsplat)": [[3, "gsplat.world_to_cam", false]]}, "objects": {"gsplat": [[2, 0, 1, "", "DefaultStrategy"], [2, 0, 1, "", "MCMCStrategy"], [0, 0, 1, "", "PngCompression"], [3, 2, 1, "", "accumulate"], [3, 2, 1, "", "accumulate_2dgs"], [3, 2, 1, "", "fully_fused_projection"], [3, 2, 1, "", "fully_fused_projection_2dgs"], [3, 2, 1, "", "isect_offset_encode"], [3, 2, 1, "", "isect_tiles"], [3, 2, 1, "", "proj"], [3, 2, 1, "", "quat_scale_to_covar_preci"], [1, 2, 1, "", "rasterization"], [1, 2, 1, "", "rasterization_2dgs"], [3, 2, 1, "", "rasterization_2dgs_inria_wrapper"], [3, 2, 1, "", "rasterization_inria_wrapper"], [3, 2, 1, "", "rasterize_to_indices_in_range"], [3, 2, 1, "", "rasterize_to_indices_in_range_2dgs"], [3, 2, 1, "", "rasterize_to_pixels"], [3, 2, 1, "", "rasterize_to_pixels_2dgs"], [3, 2, 1, "", "spherical_harmonics"], [3, 2, 1, "", "world_to_cam"]], "gsplat.DefaultStrategy": [[2, 1, 1, "", "check_sanity"], [2, 1, 1, "", "initialize_state"], [2, 1, 1, "", "step_post_backward"], [2, 1, 1, "", "step_pre_backward"]], "gsplat.MCMCStrategy": [[2, 1, 1, "", "check_sanity"], [2, 1, 1, "", "initialize_state"], [2, 1, 1, "", "step_post_backward"]], "gsplat.PngCompression": [[0, 1, 1, "", "compress"], [0, 1, 1, "", "decompress"]]}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "function", "Python function"]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:function"}, "terms": {"": [1, 3, 7, 11], "0": [0, 1, 2, 3, 5, 7, 8, 9, 10, 11, 12], "00": [11, 12], "0002": 2, "0006": 11, "0008": 2, "005": 2, "01": [1, 2, 3], "01m": 11, "02": 11, "02m": 11, "03": 11, "03m": 11, "04": 11, "05": [2, 11, 12], "06": 11, "06109": 2, "06m": 11, "07": 11, "075": 11, "078": 11, "08": [11, 12], "091": 11, "093": 11, "094": 11, "096": 11, "1": [0, 1, 2, 3, 4, 8, 11, 12], "10": [10, 11, 12], "100": [1, 2, 3, 9], "1000": 2, "1000000": [2, 11], "10000000000": [1, 3], "101": 11, "1057": 11, "107m": 12, "11": [8, 9, 11, 12], "11gb": 9, "11m": 11, "11m28": 11, "12": [11, 12], "123": 11, "1231": 11, "1237": 11, "124": 12, "125": 11, "1252": 11, "127": 11, "128": [0, 2], "129": 12, "1298": 11, "13": 11, "130": 11, "1314": 11, "1318": 11, "132": [11, 12], "133": 11, "134": 11, "135": 11, "136": 11, "138": 11, "14": [11, 12], "1422": 11, "145": 11, "1463": 11, "148": 11, "15": [2, 8, 11], "150": 1, "15000": 2, "153": 11, "154": 11, "155": 11, "1552": 11, "157": [11, 12], "15_000": 2, "15m44": 11, "16": [0, 1, 11], "160": 12, "162": 11, "1621": 11, "163": 9, "164": [11, 12], "166": [9, 11], "168": [11, 12], "169": 11, "16m": 11, "16m44": 11, "17": [11, 12], "1708": 11, "171": 12, "172": 11, "1725": 11, "177": 11, "1773": 11, "17m": 11, "18": [9, 11, 12], "186": 11, "189": 11, "18db": 0, "19": 11, "199": 11, "19m": 11, "1_000_000": 2, "1e": [2, 10], "1e10": [1, 3], "2": [1, 3, 4, 10, 11, 12], "20": [9, 11], "200": [1, 3], "2000": 6, "2000000": 11, "202": 11, "2020": 11, "2023": 8, "204": 11, "206": 11, "207": 11, "21": [11, 12], "2144": 11, "217": 11, "219": 11, "21m": 11, "22": 11, "2299": 11, "22m06": 11, "22m16": 11, "23": [11, 12], "236": 0, "2366": 11, "24": [0, 11, 12], "2404": 2, "2465986": 11, "24gb": 12, "24m": 11, "25": [2, 11, 12], "25000": 2, "253": 11, "254": 11, "256": 6, "2563156": 11, "25_000": 2, "25m": 11, "26": [9, 11], "26m": 11, "27": 11, "27m": 11, "28": [0, 11, 12], "28c928a": 11, "29": [0, 11], "2964": 11, "2980": 11, "299": 11, "2d": [1, 2, 3], "2dg": 2, "3": [0, 1, 2, 3, 4, 7, 10, 11, 12], "30": 11, "300": 1, "3000": 2, "3000000": 11, "301": 11, "3013": 11, "304": 11, "3092": 11, "30k": 11, "30m": 7, "31": [11, 12], "318": 11, "319": 11, "32": [1, 3, 11], "321": 11, "3237318": 11, "324": 11, "329": 11, "33": 11, "336": 11, "3377807": 11, "33m": 11, "34": 12, "340": 11, "35": 12, "35m49": 11, "36": [11, 12], "360": 8, "360_v2": [5, 7], "364": 11, "36546ce": 11, "37": [11, 12], "37m13": 11, "38": 12, "389": 11, "39": [11, 12], "398": 9, "3d": [0, 1, 2, 4, 5, 8], "3dg": [2, 7, 8], "3gb": 11, "3x3": 4, "4": [0, 1, 2, 3, 5, 7, 10, 11, 12], "40": [11, 12], "4090": 11, "40m": 11, "41": 12, "415": 11, "42": [11, 12], "427": 11, "43": [11, 12], "436": 11, "44": 12, "45": 12, "46": 12, "47": [11, 12], "48": [11, 12], "482": 9, "48abf70": 11, "48m": 11, "49m": [11, 12], "4x": [8, 11], "5": [0, 7, 11, 12], "50": 11, "500": 2, "500000": 2, "52": [11, 12], "53": [11, 12], "55m": 11, "56": 11, "57": 11, "57m": 11, "58": 11, "59": [11, 12], "59m": 11, "5db": 0, "5e5": 2, "5m35": 11, "6": [3, 11, 12], "61": [11, 12], "62": [11, 12], "62m": 11, "63": 11, "63m": 11, "64": [0, 2, 3, 11], "65": 11, "65db": 0, "66": [11, 12], "662": 11, "668": 11, "67": 12, "6acdce4": 11, "6m05": 11, "7": 12, "70": 11, "71": 11, "71m": 11, "720": 11, "721": 11, "72m": 11, "73": 11, "73m": 11, "74": 11, "741": 11, "75": 11, "75m": 11, "76": 11, "760": 11, "761": 11, "763": 11, "764": 11, "768": 11, "771": 11, "78": 11, "788": 11, "789": 11, "78gb": 9, "78m": 11, "79": 11, "79m": 11, "7k": 11, "8": [9, 11, 12], "80": 11, "803": 11, "81m": 11, "82": 11, "8237": 9, "824": 11, "828": 11, "829": 11, "82m": 11, "83": 12, "831": 11, "833": 11, "8366": 9, "84": 12, "842": 11, "847": 11, "848": 11, "849": 11, "84m": 11, "85m": 11, "86": [11, 12], "860": 11, "863": 11, "865": 11, "867": 11, "87": 11, "870": 11, "871": 11, "877": 11, "878": 11, "87m": 11, "88": [11, 12], "88m": 11, "89": 11, "893": 11, "899": 11, "8ea2ea3": 12, "9": [3, 9, 11, 12], "902": 11, "906": 11, "907": 11, "91": [11, 12], "914": 11, "915": 11, "918": 11, "91m": 11, "92": 11, "921": 11, "922": 11, "925": 11, "926": 11, "92m": 11, "93": 11, "937": 11, "94": 11, "941": 11, "95": 11, "97": [11, 12], "97m": 11, "98": 11, "985": 11, "99": 11, "9x9": 7, "A": [1, 2, 3], "And": [8, 12], "As": 1, "But": [1, 3, 12], "For": [0, 1, 2, 7, 9], "If": [1, 2, 3, 12], "In": [1, 2, 3, 9, 10], "It": [0, 1, 2, 3, 5, 8, 12], "Near": 3, "No": 3, "On": [0, 1, 2, 9], "Or": 7, "The": [0, 1, 2, 3, 5, 6, 7, 10, 11, 12, 13], "Then": 1, "These": [3, 11], "To": 8, "With": 7, "_": [1, 4, 10], "a100": 11, "aalto": 8, "abl": 5, "abov": [2, 12], "absg": [1, 2], "absgrad": [1, 2, 3, 8, 11], "absolut": [1, 2], "abstract": 2, "acceler": 8, "access": [1, 10], "accquir": 3, "accumul": [1, 3, 10], "accumulate_2dg": 3, "accumulated_depth": 10, "achiev": [1, 10], "acm": 8, "activ": [0, 1, 10], "ad": [0, 1, 3], "adam": 2, "addit": 12, "addition": 9, "advisor": 8, "affect": 12, "after": [2, 12], "agre": 13, "ai": 8, "alia": 1, "alias": [3, 8], "align": 9, "all": [1, 2, 3], "alloc": 12, "allow": [1, 5, 6, 7], "along": [1, 2, 12], "alpah": 3, "alpha": [1, 3, 10], "also": [0, 1, 2, 5, 6, 8, 9, 12, 13], "amazon": 8, "amount": [10, 12], "an": [0, 1, 2, 3, 8, 11], "angjoo": 8, "ani": [2, 8, 13], "annot": 3, "anti": [3, 8], "antialias": [1, 3, 11], "api": [0, 7, 9, 10], "appli": [1, 7], "approach": 0, "approxim": 1, "ar": [0, 1, 2, 3, 7, 8, 9, 10, 11, 12, 13], "arbitrari": [0, 2], "argument": [1, 10, 12], "arxiv": 2, "assertionerror": 2, "attribut": [0, 2, 3, 12], "autograd": 3, "automat": [7, 10, 13], "avail": [8, 10], "averag": 2, "awai": [0, 1, 7], "back": 1, "backend": [3, 7, 8, 9, 12], "background": [1, 3, 10], "backpropag": 3, "backward": [1, 2, 3, 12], "balanc": 1, "band": [1, 10], "base": [1, 2, 3, 5, 9], "bash": 11, "basic": [3, 6, 11], "basic_2dg": 11, "batch": [1, 3, 8, 9, 12], "batch_siz": 12, "becom": 1, "befor": [0, 2, 10, 12], "begin": [1, 4], "below": [0, 1, 2, 3, 6, 10], "benchmar": 11, "benchmark": 11, "berkelei": 8, "bernhard": 8, "besid": 2, "better": [1, 2, 5, 9], "between": [1, 3, 9, 12], "bicycl": 11, "bind": 8, "bit": 3, "block_width": 10, "blow": 7, "bmatrix": [1, 4], "bonsai": 11, "bool": [0, 1, 2, 3], "boolen": 3, "born": 8, "both": 1, "bound": [1, 3], "box": 3, "branch": 13, "brent": 8, "browser": 5, "bug": 8, "bwd": 12, "bwtween": 1, "c": [1, 3], "calc_compens": 3, "calcul": 12, "call": [2, 3, 10], "callback": 2, "cam": [1, 4], "camera": [1, 3, 4, 7, 12], "camera_id": [1, 3], "camera_model": [1, 3], "camtoworld": 10, "can": [0, 1, 2, 3, 6, 7, 8, 10, 11], "cap_max": 2, "capabl": 8, "captur": 8, "care": 12, "carlo": 2, "case": [1, 3, 10, 12], "cd": 11, "center": [1, 4], "chain": 2, "chang": [9, 10, 11], "channel": [1, 3], "channel_chunk": 1, "check": 2, "check_san": 2, "choos": 1, "chunk": 1, "ckpt": 7, "ckpt_6999": 7, "clamp_min": 10, "class": [0, 2], "classic": 1, "clip": 1, "clip_thresh": 10, "close": 1, "cluster": 0, "code": [0, 7, 9, 10], "coeff": 3, "coeffic": 0, "coeffici": [1, 3, 10], "collabor": 1, "collect": 3, "colmap": 8, "color": [1, 2, 3], "column": [1, 3], "com": [3, 8], "come": [8, 11], "command": [3, 11], "commit": [9, 11, 12], "compact": 0, "compar": 8, "comparison": [3, 5], "compat": 9, "compens": [1, 3], "complet": 1, "composit": [1, 3], "compress": 8, "compress_dir": 0, "compression_method": 0, "comput": [1, 2, 3], "compute_covar": 3, "compute_preci": 3, "comsum": 3, "condit": 2, "conduct": [11, 12], "config": 11, "configur": 7, "conic": [1, 3, 10], "consid": 1, "consum": 1, "consumpt": 12, "contain": 0, "contributor": 8, "control": 1, "convens": 1, "convent": 2, "converg": 11, "convers": 10, "convert": [1, 3, 10], "coo": [1, 3, 12], "coordin": [1, 3], "core": 8, "correspond": [1, 2, 3], "cost": 0, "could": [1, 3, 10, 12], "counter": 11, "coupl": 10, "covar": [1, 3], "covari": [1, 3], "credit": 3, "cuda": [3, 7, 8, 9, 11, 12], "cuda_visible_devic": [5, 7], "curios": 8, "current": [1, 2, 3, 12], "custom": 6, "cx": [1, 10], "cy": [1, 10], "d": [1, 3, 8, 10], "data": [5, 7, 8, 12], "data_dir": [5, 7], "data_factor": [5, 7], "debug": 3, "decompress": 0, "default": [0, 1, 2, 3, 5, 7, 11], "defaultstrategi": 2, "defin": [0, 1, 2, 3, 4], "degre": [1, 3], "degrees_to_us": 3, "demonstr": 10, "denot": 12, "densif": [0, 3, 8, 11], "densifi": 3, "depend": [1, 3], "deprec": 10, "depth": [1, 3, 4, 8], "depth_mod": 1, "depth_ratio": 3, "design": [0, 2, 7, 8], "desir": 3, "det": 1, "detail": [1, 2, 5, 8, 12], "develop": [8, 12], "devic": [1, 10], "diag": 1, "dict": [0, 1, 2, 3], "dict_kei": 1, "dictionari": [0, 1], "diff": [3, 7, 8, 12], "differ": [1, 3, 11, 12], "differenti": [1, 6, 8], "dimension": 4, "dir": 3, "direct": [1, 3], "directori": 0, "disabl": 1, "disregard": 7, "distanc": 3, "distloss": [1, 3], "distort": [1, 3], "distribut": [1, 2, 8], "do": 1, "document": 10, "doe": 5, "done": 1, "drettaki": 8, "dummi": 3, "duplic": 2, "dure": [1, 2, 3], "e": [2, 3, 7, 10], "each": [1, 2, 3, 12], "ed": [1, 10], "effect": [1, 3, 12], "effici": [1, 3, 7, 8, 11, 12], "egienvalu": 1, "either": [0, 2, 3], "element": 3, "els": 1, "embed": 1, "enabl": [2, 3, 8], "encod": 3, "end": [1, 3, 4], "enforc": 1, "enjoi": 10, "ensur": 2, "eps2d": [1, 3], "epsilon": [1, 3], "equal": 1, "equat": [1, 3], "equip": 8, "equival": 10, "especi": 1, "essenti": 3, "etc": [2, 8, 9], "evalu": [5, 8, 12], "evaul": 11, "even": 8, "everi": 2, "exact": 5, "exactli": [2, 11], "exampl": [0, 1, 2, 3, 5, 6, 7, 9, 11], "exclud": 12, "exclus": 3, "execut": 2, "exist": 3, "expand": 8, "expect": [0, 1, 2, 3, 10], "expected_depth": 10, "experiment": [1, 2, 3], "explain": 4, "explicitli": 10, "expos": 3, "extra": [0, 2, 8], "extrem": [1, 8], "ey": 1, "f_": 1, "factor": [1, 3], "fall": 1, "fals": [1, 2, 3, 12], "far": [1, 3, 7], "far_plan": [1, 3], "fast": 1, "faster": [1, 8], "featur": [1, 2, 3, 8], "features1": [0, 2], "features2": [0, 2], "feedback": 8, "few": [0, 12], "field": [0, 1, 2, 8], "file": [0, 6], "fine": [1, 2], "finish": 11, "first": [1, 7], "fishey": [1, 3], "fit": 8, "flag": 6, "flatten": 3, "flatten_id": [1, 3], "flattend": 3, "float": [1, 2, 3], "flow": 1, "focal": 1, "folder": 13, "follow": [0, 1, 2, 3, 5, 8], "footprint": [1, 5, 8], "fork": [9, 11], "format": [0, 2, 3], "forward": [2, 12], "found": [1, 7], "four": 4, "fp": 12, "fr": 8, "frac": 1, "frame": [1, 3, 4], "free": [1, 9], "from": [0, 1, 2, 3, 7, 8, 11], "frustum": [3, 12], "full": 3, "full_eval_m360": 11, "fulli": [3, 9], "fully_fused_project": [3, 10], "fully_fused_projection_2dg": 3, "function": [1, 2, 3, 9, 12], "fungraph": 8, "further": 12, "fuse": 3, "futur": 10, "fwd": 12, "fx": [1, 10], "fy": [1, 10], "g": [1, 2, 3, 7, 10], "garden": [5, 7, 11], "gaussian": [0, 1, 2, 3, 5, 6, 7, 8, 11, 12], "gaussian_id": [1, 3], "gb": [11, 12], "geometri": 1, "georg": 8, "georgio": 8, "get": [1, 6, 8, 9], "git": 8, "github": [3, 8, 13], "given": 1, "glob_scal": 10, "global": 3, "go": 1, "gpu": [1, 3, 7, 8, 12], "grad": 12, "gradient": [1, 2, 3, 8, 9, 12], "gradient_2dg": [1, 2], "graphdeco": 3, "graphic": 8, "greatest": [8, 10], "greatli": 12, "grid": [0, 7], "group": 1, "grow": 8, "grow_grad2d": [2, 11], "grow_scale2d": 2, "grow_scale3d": 2, "gsplat": [0, 2, 3, 7, 9, 11, 12], "gss": [2, 11], "guassian": 2, "h": 1, "h_": 1, "ha": [0, 2, 3, 12], "hand": 1, "handi": 0, "handl": 10, "happen": 1, "harmon": [0, 3], "have": [1, 2, 3, 5], "hbb1": 3, "height": [1, 3, 6, 10], "help": [1, 8, 10], "here": [4, 7, 10, 11, 12], "heurist": 2, "high": 2, "higher": 2, "highli": 2, "hler": 8, "how": [0, 2], "http": [3, 8], "hu": 3, "huge": 10, "i": [0, 1, 2, 3, 4, 7, 8, 9, 10, 11, 12], "id": 3, "idea": 3, "ignor": [1, 3], "imag": [1, 2, 3, 8, 11], "image_fit": 6, "image_height": 3, "image_width": 3, "imageio": 0, "img_height": 10, "img_path": 6, "img_width": 10, "impact": 12, "implement": [1, 2, 3, 5, 8, 11], "import": [0, 2, 10, 11], "improv": [8, 9], "includ": [8, 9, 10, 12, 13], "inclus": 3, "increas": 1, "indic": 3, "info": 2, "inform": [0, 2, 3], "initi": 2, "initialize_st": 2, "inplac": 2, "input": [1, 3, 12], "inria": [3, 7, 8, 11, 12], "inspir": 8, "instal": [0, 3], "instead": 2, "insteal": 7, "int": [1, 2, 3, 10], "int32": 3, "int64": 3, "integ": 3, "intermedi": [1, 10], "intermid": 12, "intern": 3, "intersect": [1, 3], "intrins": [1, 3], "introduc": [2, 12], "invalid": 3, "invers": [1, 3], "isect_id": [1, 3], "isect_offset": [1, 3], "isect_offset_encod": 3, "isect_til": 3, "iter": [1, 2, 3], "its": 3, "j": 1, "jacobian": 1, "jefequien": 3, "jeffrei": 3, "jianbo": 8, "juli": 8, "justin": 8, "k": [0, 1, 2, 3, 10], "kanazawa": 8, "keep": 3, "kei": [0, 1, 2], "kerbl": 8, "kernel": 3, "kerr": 8, "key_for_gradi": 2, "kind": 8, "kitchen": 11, "kopana": 8, "kwarg": 3, "l1": 1, "l2": 1, "larg": [1, 2, 3, 8], "larger": [1, 8, 9], "last": 1, "latest": [8, 10], "layout": [1, 3, 12], "lead": [1, 2, 8], "learn": 2, "learnabl": 2, "learnedperceptualimagepatchsimilar": 11, "least": [0, 2], "left": 4, "legaci": 12, "leimk": 8, "length": 1, "leq": 1, "less": [8, 9], "li": 8, "librari": 8, "licens": 3, "like": 2, "line": 9, "list": [3, 8], "liter": [1, 2, 3], "live": 1, "local": [1, 3], "locat": 2, "logic": 5, "loop": 2, "loopli": 1, "loss": [0, 2], "low": [2, 7], "lower": 2, "lowest": 0, "lpip": [9, 11], "lpipspytorch": 11, "lr": 2, "luma": 8, "m": 3, "made": 8, "magic": 7, "magnitud": 8, "main": [7, 12, 13], "major": [3, 10], "make": [0, 1], "mani": 8, "map": [3, 4, 10], "markov": 2, "mask": 3, "mathbb": 1, "mathbf": 1, "mathcal": 1, "matia": 8, "matric": [1, 3], "matrix": 1, "matthew": 8, "max_memory_alloc": 12, "maximum": [2, 3], "mb": 0, "mcmc": [2, 8, 11], "mcmcstrategi": 2, "mean": [0, 1, 2, 3, 10], "means2d": [1, 2, 3, 10], "means3d": 10, "median": [1, 3], "median_depth": 1, "mem": [11, 12], "memori": [1, 3, 5, 7, 8, 9, 12], "met": 2, "meta": [1, 10], "method": 11, "metric": 5, "might": [0, 1, 2, 7], "mill": 11, "million": 0, "mimic": 7, "min": 11, "min_opac": 2, "mind": [7, 8, 12], "minim": [1, 9], "mip": [1, 8], "mode": [1, 11], "model": [5, 7], "model_typ": 11, "moment": 1, "mont": 2, "more": [0, 1, 3, 5, 8, 9, 12], "most": 12, "mu": 1, "much": [3, 5, 9], "multi": [1, 8], "n": [0, 1, 2, 3, 8, 10, 12], "n_camera": [1, 3], "n_isect": 3, "nativ": 13, "nd": 3, "near_plan": [1, 3, 10], "need": [3, 10, 11], "nerf": 8, "nerfacc": 3, "nerfstudio": [7, 8], "nerfview": 5, "new": [2, 3, 8], "next": 3, "nn": 2, "nnz": 3, "nois": 2, "noise_lr": 2, "none": [0, 1, 3, 10], "normal": [1, 2, 3], "note": [1, 7, 9, 10, 11, 12], "notic": 9, "novel": 5, "npz": 0, "num": 11, "num_point": 6, "num_tiles_hit": 10, "number": [0, 1, 2, 3, 11], "numer": [3, 12], "nvidia": [11, 12], "o": 1, "obtain": 11, "off": [1, 9, 12], "offer": 8, "offici": [5, 8, 9, 11], "offset": [1, 3], "old": 10, "one": [1, 2, 3, 6], "ones": 13, "onli": [0, 1, 2, 3, 10, 12], "oom": 12, "opac": [0, 1, 2, 3, 10], "open": 8, "oper": 12, "optim": [1, 2, 12], "option": [0, 1, 3], "organ": 0, "origin": [2, 3, 11], "ortho": [1, 3], "orthograph": [1, 3], "other": 1, "otherwis": 3, "our": [0, 2, 3, 4, 7, 9, 11, 13], "out": 2, "output": [1, 3], "outsid": 3, "overhead": 12, "own": [3, 6], "p": [1, 2], "pack": [1, 2, 3, 12], "packag": [0, 3], "page": 1, "pair": 3, "pan": 8, "paper": [1, 2, 3, 5, 8, 11], "param": 2, "param_group": 2, "paramet": [0, 1, 2, 3], "parameterdict": 2, "parametr": 1, "part": 12, "pass": [1, 2, 3, 10], "path": 6, "path_to_img": 6, "paus": 2, "pause_refine_after_reset": 2, "peopl": 8, "per": 3, "perform": [3, 9, 12], "period": 2, "perspect": [1, 3], "perturb": 2, "pinhol": [1, 3], "pip": [3, 8], "pixel": [1, 3, 7], "pixel_id": 3, "pla": 0, "place": 2, "plane": [1, 2, 3], "playground": 3, "pleas": [1, 3], "png": 0, "pngcompress": 0, "point": [1, 4], "portion": [1, 12], "posit": 2, "post": [1, 2], "potenti": 8, "power": [5, 11], "practic": 1, "pre": [0, 2], "precis": 3, "prepar": 3, "present": 2, "prevent": 1, "princip": 1, "print": [0, 1, 2], "process": [2, 3, 5, 6, 12], "profil": [1, 8], "proj": 3, "project": [1, 3, 7, 8, 10], "project_gaussian": 10, "propos": 1, "provid": [0, 1, 3, 6, 9, 11, 12, 13], "prune": 2, "prune_opa": 2, "prune_scale2d": 2, "prune_scale3d": 2, "psnr": [0, 9, 11], "pt": 7, "pull": 13, "pure": 3, "purpos": 3, "py": [5, 6, 7, 11, 12, 13], "pypi": 8, "python": [5, 6, 7, 11, 12], "pytorch": [3, 13], "q": [1, 4], "quantiz": 0, "quat": [0, 1, 2, 3, 10], "quat_scale_to_covar_preci": 3, "quaternion": [1, 3], "r": [1, 4], "radianc": [2, 8], "radii": [1, 3, 10], "radiu": [1, 3, 7], "radius_clip": [1, 3, 7], "rai": [1, 3], "rais": 2, "ran": 13, "rand": 1, "randn": 1, "random": 6, "rang": 2, "range_end": 3, "range_start": 3, "rank": 1, "rare": 1, "raster": [2, 3, 6, 7, 8, 10, 12], "rasterization_2dg": 1, "rasterization_2dgs_inria_wrapp": 3, "rasterization_inria_wrapp": [3, 9], "rasterize_gaussian": 10, "rasterize_mod": 1, "rasterize_to_indices_in_rang": 3, "rasterize_to_indices_in_range_2dg": 3, "rasterize_to_pixel": 3, "rasterize_to_pixels_2dg": 3, "rate": 2, "ray_transform": [1, 3], "real": [2, 5, 7, 8], "realli": 3, "recommend": [1, 2, 12], "recov": [1, 2], "reduc": [0, 12], "reduct": 9, "refer": [0, 1, 4], "refin": 2, "refine_everi": 2, "refine_scale2d_stop_it": 2, "refine_start_it": 2, "refine_stop_it": 2, "regular": 1, "rel": [4, 12], "releas": 10, "reli": 3, "remov": 10, "render": [1, 2, 3, 5, 8], "render_alpha": [1, 2], "render_color": 1, "render_distort": 1, "render_imag": 2, "render_median": 1, "render_mod": [1, 10], "render_norm": 1, "reparametr": 1, "replac": 9, "replic": 7, "repo": [4, 8, 11], "report": [8, 11], "repositori": [8, 13], "repres": [1, 3, 4], "represent": 0, "reproduc": 5, "request": 13, "requir": [0, 1, 2, 3, 7], "reset": 2, "reset_everi": 2, "resolut": [2, 7], "respect": [1, 3], "result": [1, 2, 5, 6, 7, 10, 11, 12], "result_dir": [5, 7], "return": [0, 1, 2, 3], "return_alpha": 10, "revis": 2, "revised_opac": 2, "rgb": [1, 10], "rgbd": 10, "rho": 1, "right": 4, "room": 11, "rotat": 1, "row": 3, "rss": 1, "rtx": [11, 12], "ruilong": 8, "run": [0, 2, 5, 6, 11], "runtim": [1, 12], "sam": 8, "same": [1, 2, 5, 11], "samp": 2, "sampl": 2, "saniti": 2, "save": [0, 1], "save_img": 6, "scale": [0, 1, 2, 3, 10], "scenario": 1, "scene": [0, 1, 8, 9], "scene_grid": [7, 12], "scene_scal": 2, "script": [5, 6, 11, 13], "see": [1, 5, 8, 12], "seen": 1, "self": 0, "serv": 3, "set": [1, 2, 3, 6, 11, 12], "sh": [1, 10, 11], "sh0": 0, "sh_coeff": 10, "sh_degre": [1, 3, 10], "shanghaitech": 8, "shape": [1, 3], "shn": 0, "should": [1, 2, 3, 12], "shown": 1, "siggraph": 8, "sigma": 1, "signific": 9, "significantli": [0, 12], "similar": [0, 1, 2, 6, 7], "simpl": 7, "simple_train": [5, 7, 11], "simple_view": 7, "simpli": [5, 6], "simplifi": 10, "simplli": 1, "singl": [8, 10], "size": [1, 3, 12], "skip": [1, 3], "slightli": [1, 9], "slow": [1, 7], "slower": [1, 3], "small": [1, 2, 7, 12], "smaller": [0, 1, 3], "snippet": 0, "so": [2, 3, 4, 7, 10], "softwar": 8, "solut": 1, "some": [3, 4, 9], "sort": [0, 1, 3], "sourc": [0, 1, 2, 3, 4, 8], "space": [1, 3], "spars": [1, 3, 8, 9, 12], "sparse_grad": [1, 3, 12], "sparseadam": [1, 12], "specif": [0, 2], "speed": [1, 5, 9, 12], "speedup": 9, "spheric": [0, 3], "spherical_harmon": [3, 10], "splat": [0, 1, 2, 3, 5, 8, 9, 11], "splats_c": 0, "split": [1, 2], "sqrt": 1, "squar": 0, "squeez": 10, "ssim": [9, 11], "stabil": 3, "standalon": 11, "start": [2, 3], "state": 2, "step": [2, 3], "step_post_backward": 2, "step_pre_backward": 2, "still": [7, 10], "stop": 2, "storag": 0, "store": [0, 1, 2], "str": [0, 2], "strategi": [2, 11], "strategy_st": 2, "stream": 0, "stump": 11, "subset": 1, "suitabl": 7, "sum_i": 1, "support": [0, 1, 2, 3, 5, 8, 9, 12], "surf_norm": 1, "surfac": 1, "surfel": 3, "switch": 7, "synthesi": 5, "system": 3, "t": [1, 3], "t_": 1, "tag": 5, "take": 11, "tancik": 8, "tangent": 1, "tangenti": 1, "team": 8, "techniqu": 8, "teleport": 2, "tensor": [0, 1, 2, 3, 10, 12], "test": [1, 6], "test_bas": 13, "text": 1, "textit": 1, "than": [1, 3, 8, 9, 11], "thei": [0, 1, 10, 13], "thi": [0, 1, 2, 3, 5, 7, 8, 9, 10, 11, 12], "thoma": 8, "threshold": [1, 7], "throw": 0, "tile": [1, 3], "tile_height": [1, 3], "tile_id": 3, "tile_s": [1, 3, 10], "tile_width": [1, 3], "tiles_per_gauss": 1, "time": [1, 2, 5, 7, 8, 9, 11], "times3": 1, "times4": 1, "titan": [11, 12], "togeth": 12, "too": 1, "top": [0, 2, 9], "torch": [0, 1, 2, 10, 12], "torchmetr": 11, "torchpq": 0, "total": [1, 7], "track": 3, "trade": [1, 9, 12], "train": [1, 2, 5, 6, 7, 8, 9, 12], "transact": 8, "transform": [1, 3, 4], "transmitt": 3, "triangl": 3, "triangular": 3, "trick": 7, "triu": 3, "true": [0, 1, 2, 3, 10, 12], "try": 8, "tupl": [1, 3], "turkulainen": 8, "two": 1, "type": [0, 1, 3], "typic": 2, "typing_extens": [1, 2, 3], "u": 1, "uc": 8, "under": [5, 6, 7], "understand": 8, "unit": [1, 3], "univers": 8, "unord": 8, "until": 2, "up": [1, 7, 8, 11], "updat": 2, "upper": 3, "url": 8, "us": [0, 1, 2, 3, 4, 6, 10, 11, 12], "usag": 12, "use_sort": 0, "user": [2, 10], "usual": [1, 12], "util": 8, "v": 1, "v0": [8, 12], "v1": [8, 9, 10, 12], "valid": [2, 3], "valu": [0, 1, 2, 3], "variabl": [2, 3], "variou": 4, "ve": 8, "vector": [1, 4], "verbos": [0, 2], "veri": 7, "verifi": 5, "version": 1, "via": [0, 1, 10], "vicki": 8, "video": 5, "view": [1, 3, 5, 7], "viewdir": 10, "viewer": [5, 7], "viewmat": [1, 3, 10], "viser": 5, "w": [1, 4], "w2c": 4, "w_i": 1, "wa": 8, "wai": 12, "want": 2, "warn": [1, 7], "we": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12], "weight": 1, "welcom": 8, "well": 2, "wersion": 11, "wh": [1, 3], "what": 11, "when": [1, 3, 12], "where": [1, 4], "whether": [0, 1, 2, 3], "which": [0, 1, 2, 3, 7, 8, 11, 12], "while": [7, 12], "width": [1, 3, 6, 10], "within": [1, 11], "wonder": 8, "work": [0, 1, 2], "workflow": [2, 10], "world": [1, 3, 4], "world_to_cam": 3, "would": [3, 12], "wrapper": [3, 9], "wxyz": 1, "x": [1, 4, 11, 12], "xc": 3, "xt": 3, "xy": [3, 10], "y": [1, 4], "ye": 8, "yi": 8, "you": [5, 6, 10, 11], "your": [5, 6, 7], "z": [1, 3, 4], "z_": 4, "z_i": 1, "zero": 3, "zhuoyang": 8, "\u00fc": 8}, "titles": ["Compression", "Rasterization", "Densification", "Utils", "Data Conventions", "Fit a COLMAP Capture", "Fit a Single Image", "Render a Large Scene", "gsplat", "Migrate from diff-gaussian-rasterization", "Migrate from gsplat v0.1.11", "Evaluation", "Profiling", "Tests"], "titleterms": {"1": 10, "11": 10, "2dg": [1, 3, 11], "32": 12, "360": 11, "3dg": [1, 3, 11], "7": 11, "No": 11, "With": 11, "ablat": 11, "api": 8, "averag": 11, "basic": 10, "captur": [5, 11], "channel": 12, "citat": 8, "colmap": 5, "color": 10, "compress": 0, "consist": 11, "contribut": 8, "convent": [4, 8], "cuda": 13, "data": 4, "densif": 2, "depth": 10, "diff": 9, "distort": 11, "evalu": 11, "exampl": 8, "faster": 11, "featur": [11, 12], "fit": [5, 6], "from": [9, 10], "gaussian": 9, "gpu": 11, "gsplat": [8, 10], "harmon": 10, "imag": [6, 12], "implement": 13, "instal": 8, "larg": [7, 12], "less": 11, "link": 8, "map": 12, "matrix": 4, "memori": 11, "metric": 11, "migrat": [8, 9, 10], "mip": 11, "nerf": 11, "normal": 11, "over": 11, "overview": 8, "perform": 11, "profil": 12, "python": 8, "raster": [1, 9], "regular": 11, "render": [7, 10, 12], "reproduc": 11, "rgb": 12, "rotat": 4, "runtim": 11, "scene": [7, 11, 12], "singl": 6, "spheric": 10, "test": [8, 13], "train": 11, "usag": 10, "util": 3, "v0": 10, "verifi": 13, "view": 4}}) \ No newline at end of file