Releases: nerfstudio-project/gsplat
v1.5.3
Highlights
gsplat.rasterization now supports render a batch of scenes in one pass. [In addition to its original support of rendering a batch of cameras per scene]
What's Changed
- Link Jonathan's Tutorial by @liruilong940607 in #688
- Fix format README.md by @liruilong940607 in #689
- Update README.md by @liruilong940607 in #690
- Batchify all APIs by @JunchenLiu77 in #670
- fix bug in gsplat-batch.mp4 by @JunchenLiu77 in #695
- Update LICENSE by @liruilong940607 in #699
- Update Cameras.cuh by @liruilong940607 in #700
- Update IntersectTile.cu by @liruilong940607 in #701
- Alpha shouldn't be normalized or inversed? by @RongLiu-Leo in #704
- Enforce eval3d with UT is set by @liruilong940607 in #712
- Update 3dgut.md by @liruilong940607 in #713
- New experimental feature: fused bilagrid by @ichsan2895 in #706
- Support 2dgs with the latest viewer by @RongLiu-Leo in #707
- fix: solves issue, that opacity is reset at iteration 0 by @kleinicke in #735
- Add option to disable world space normalization for 2DGS by @JojiJoseph in #719
- Fix Fisheye Undistortion. by @liruilong940607 in #736
- fix 3dgut sample viewer by @inuex35 in #734
- Remove unnecessary abs() calls in scale/opacity loss calculation by @vincentwoo in #743
- Fix lack of submodules in CI/CD by @randomze in #751
- F-Theta Camera Model Support by @liruilong940607 in #745
- Bump to 1.5.3 by @liruilong940607 in #752
- update windows server in CI by @liruilong940607 in #753
- Use windows 2022 in CI by @liruilong940607 in #754
- Add "-allow-unsupported-compiler" for win by @liruilong940607 in #755
- Exclude cu118 and cu121 for windows build by @liruilong940607 in #756
New Contributors
- @ichsan2895 made their first contribution in #706
- @kleinicke made their first contribution in #735
- @inuex35 made their first contribution in #734
- @randomze made their first contribution in #751
Full Changelog: v1.5.2...v1.5.3
v1.5.2
Highlights
- 3DGUT is integrated. Now distorted cameras are supported, along with rolling shutter.
- 2DGS now supports camera gradients (camera pose).
- full nerfstudio-style viewer supported in the repo.
- PyPI package fix.
What's Changed
- Fixed redundant PyTest mark that was applied to a fixture. by @findeevy in #642
- Retire 20.04 in workflow by @liruilong940607 in #643
- fix workflow PyPI upload by @liruilong940607 in #644
- add 2dgs viewmats gradient by @FantasticOven2 in #645
- Update rendering.py by @liruilong940607 in #646
- Fix spelling: 'principle' => 'principal' by @brentyi in #647
- Fix up side down flipping for most of the cases by @liruilong940607 in #648
- Fix inverted scene when flipped by @samuelm2 in #656
- New Viewer with nerfview=0.1.2 by @JunchenLiu77 in #657
- Simplify tight rectangular bounding box calculation by @zerolover in #662
- [BUG] Fix strict "invalid mask" in gsplat.utils.save_ply(...) by @Crezle in #663
- Multiple minor fixes and update citation by @liruilong940607 in #664
- Increase maximum allowed far plane in viewer by @vincentwoo in #672
- Implement 3DGUT by @liruilong940607 in #667
- Update nerfview dep by @liruilong940607 in #673
- use c++17 by @liruilong940607 in #675
- expose learning rates in simple_trainer.py by @MrNeRF in #676
- Minor fix by @RongLiu-Leo in #677
- fix instructions by @liruilong940607 in #679
- fix format by @liruilong940607 in #680
- Fix _jit_compile arguments for torch>=2.7.0 by @shiukaheng in #651
- Fix manifest and upgrade to 1.5.2 by @liruilong940607 in #685
New Contributors
- @findeevy made their first contribution in #642
- @samuelm2 made their first contribution in #656
- @zerolover made their first contribution in #662
- @Crezle made their first contribution in #663
- @vincentwoo made their first contribution in #672
- @RongLiu-Leo made their first contribution in #677
Full Changelog: v1.5.1...v1.5.2
v1.5.1
Highlights
New exporter python api: from gsplat import export_splats, supprts three exporting formats (#628, #640):
.ply: A standard PLY file format. Supported by most viewers..splat: A custom Splat file format. Supported by antimatter15 viewer..ply_compressed: A compressed PLY file format. Used by Supersplat viewer.
What's Changed
- Update publish.yml by @liruilong940607 in #621
- faster fused-ssim by @MrNeRF in #622
- Added Gaussian Splat Exporters by @bolopenguin in #628
- Fix typo in strategy.rst code example by @buesma in #632
- Multiple small fixes by @liruilong940607 in #638
- slightly adjusting atol for test by @liruilong940607 in #639
- 🐛 Fix memory leak in exporters - splat2ply bytes by @mrcabellom in #640
- bump to 1.5.1 by @liruilong940607 in #641
New Contributors
- @bolopenguin made their first contribution in #628
- @buesma made their first contribution in #632
- @mrcabellom made their first contribution in #640
Full Changelog: v1.5.0...v1.5.1
v1.5.0
Highlights
- 3.5x faster compilation (4m19s -> 1m22s) via code refactoring.
- up to 25% faster
rasterizationfunction via more accurate GS-tile intersection. - support CUDA fused Adam Optimizer with mask support (
from gsplat.optimizers import SelectiveAdam)
What's Changed
- A set of comments and annotations to 2DGS CUDA kernels by @DylanWaken in #429
- densify after optimizer step. fixes #426 by @rahul-goel in #431
- Fix 2DGS for Correct Normal and Median Depth Calculation by @khokao in #430
- Selective Adam by @rahul-goel in #432
- Fix PyPI upload missing whl file by @liruilong940607 in #454
- add-support-for-non-trainable-params by @nikmo33 in #456
- remove unused code by @georghess in #482
- Reorganize file structure by @JunchenLiu77 in #480
- Fix inconsistency in the comments by @JiangWenPL in #441
- bugfix in rasterization2d_inria by @Golbstein in #499
- use mask in 2dgs by @Golbstein in #497
- Fix proj.cuh include guard by @desmondlzy in #504
- Fix evaluation scripts by @rjbaw in #510
- Reduce ram usage using fisheye as camera model by @aW4KeNiNG in #521
- Implement gaussian splatting ply file saving with o3d by @MrNeRF in #427
- Avoid jpeg compression artifacts when training Mip-NeRF360. by @jefequien in #507
- Update nerfview version in examples to avoid division by zero by @MotivaCG in #558
- minor fix to 2dgs corner case by @FantasticOven2 in #543
- refactor CUDA code for faster compilation and easier extensibility by @liruilong940607 in #583
- Fix minor typo in documentation about rasterization by @kikirizki in #580
- Fix incorrect comments for view matrices by @ScaryPG in #579
- fix the offset of K in projection packed fwd 2dgs kernel by @lapisliu in #569
- Fix channel padding for distortion and median depth computation by @jonathsch in #559
- Add disable_video flag for simple_trainer by @MotivaCG in #557
- fix: wrong torch cat dim when concatenating colors+depths in simple_trainer_2dgs.py by @Crescent-Saturn in #508
- Fixes build issues by @MrNeRF in #585
- move env yml to examples/ by @liruilong940607 in #587
- remove env yml by @liruilong940607 in #588
- Update _backend.py by @liruilong940607 in #589
- fix save ply if else by @liruilong940607 in #594
- Rect cull by @liruilong940607 in #596
- Optionally leverage opacity to tight the radii bounding box by @liruilong940607 in #597
- fix ALPHA_THRESHOLD by @liruilong940607 in #598
- fix setup.py for build by @liruilong940607 in #602
- Disable Auto Precompiled Header. Support Enabling it Manually. by @liruilong940607 in #603
- fix tight opa by @liruilong940607 in #606
- Fix build action: Upgraded upload-artifact@v3 / download-artifact@v3 -> upload-artifact@v4 / download-artifact@v4 by @shiukaheng in #616
- fix adam shape issue by @liruilong940607 in #618
- delay import for _check_and_build_extension_h_precompiler_headers by @liruilong940607 in #619
- bump to 1.5.0 by @liruilong940607 in #620
New Contributors
- @DylanWaken made their first contribution in #429
- @khokao made their first contribution in #430
- @nikmo33 made their first contribution in #456
- @georghess made their first contribution in #482
- @JunchenLiu77 made their first contribution in #480
- @JiangWenPL made their first contribution in #441
- @Golbstein made their first contribution in #499
- @desmondlzy made their first contribution in #504
- @rjbaw made their first contribution in #510
- @aW4KeNiNG made their first contribution in #521
- @MotivaCG made their first contribution in #558
- @kikirizki made their first contribution in #580
- @ScaryPG made their first contribution in #579
- @lapisliu made their first contribution in #569
- @jonathsch made their first contribution in #559
- @Crescent-Saturn made their first contribution in #508
- @shiukaheng made their first contribution in #616
Full Changelog: v1.4.0...v1.5.0
v1.4.0
Highlights
- support 2DGS
- Camera model: perspective, orthogonal, fish-eye
- Start to support pre-built wheels (python 10)
What's Changed
- Update build workflow by @liruilong940607 in #369
- fix (apparant) typos in compression docs by @christian-helms in #370
- eval supports multi-GPU by @liruilong940607 in #371
- correct a typo to fix #373 by @jckhng in #383
- Add option to render camera trajectory as an ellipse. by @jefequien in #380
- Add an option to disable world space normalization in examples/simple_trainer.py by @JojiJoseph in #379
- Fix points projection when sampling patches for training by @nnop in #386
- fix reshape error when multi GPU bachsize > 1 not packed by @Ultized in #382
- Fix typo by @cr333 in #392
- Make download script work on Windows, too by @cr333 in #397
- Fused differentiable SSIM by @rahul-goel in #396
- 2DGS by @FantasticOven2 in #208
- citation.bib by @maturk in #400
- Implement Bilateral Guided Gaussian Splatting. by @jefequien in #291
- Bump fused-ssim commit by @liruilong940607 in #405
- Update rendering.py by @liruilong940607 in #407
- Update CITATION.bib by @cr333 in #410
- Make commands easier in README by @MrNeRF in #420
- Implement Fisheye-GS. by @jefequien in #398
- Publish precompiled wheels in Github release and add wheel index by @martinResearch in #365
- 1.4.0 by @liruilong940607 in #421
- fix workflow by @liruilong940607 in #422
- Workflow fix by @liruilong940607 in #423
New Contributors
- @christian-helms made their first contribution in #370
- @jckhng made their first contribution in #383
- @JojiJoseph made their first contribution in #379
- @nnop made their first contribution in #386
- @Ultized made their first contribution in #382
- @cr333 made their first contribution in #392
- @rahul-goel made their first contribution in #396
- @FantasticOven2 made their first contribution in #208
- @MrNeRF made their first contribution in #420
- @martinResearch made their first contribution in #365
Full Changelog: v1.3.0...v1.4.0
v1.3.0
Highlight
- Support 3DGS Compression
- Support orthographic projection
- Support TanksAndTemples Dataset
- Various Bug Fix
What's Changed
- Make sure the build directory exists. by @keunhong in #319
- docs: update README.md by @eltociear in #322
- Fix typo in examples/simple_viewer.py by @simo23 in #321
- Consolidate simple_trainer.py and simple_trainer_mcmc.py by @brentyi in #325
- Compressing gaussian splats by @jefequien in #309
- Simplify
tyrousage insimple_trainer.pyby @brentyi in #332 - Cleanup C/CUDA code for C users by @liruilong940607 in #333
- Patch to make Strategy compatible with splatfacto by @kerrj in #334
- Fix minor typo by @zhiguotang5 in #342
- correct distCoeffs of SIMPLE_RADIAL by @Master-cai in #337
- Add np.random.choice fallback for many Gaussians exceeding torch.multinomial limits by @soskek in #338
- data parser for t&t dataset by @liruilong940607 in #347
- Added orthographic projection by @VladislavZavadskyy in #349
- Fix bug related to refine_scale2d and add pause_refine_after_reset to default strategy by @jb-ye in #354
- tt compression script by @liruilong940607 in #357
- Update to 1.3.0 by @liruilong940607 in #366
New Contributors
- @keunhong made their first contribution in #319
- @simo23 made their first contribution in #321
- @zhiguotang5 made their first contribution in #342
- @Master-cai made their first contribution in #337
- @soskek made their first contribution in #338
- @VladislavZavadskyy made their first contribution in #349
Full Changelog: v1.2.0...v1.3.0
v1.2.0
Highlight
Multi-GPU distributed rasterization is supported! E.g. 4 GPUs could lead to more than 3x speedup as well as 3x less memory usage at the same time.
What's Changed
- [Docs] Evaluation metrics for mcmc, antialiased, and absgrad. by @maturk in #300
- Update requirements.txt by @liruilong940607 in #308
- Fix projection for images with non-centered camera (e.g. crops) by @JonathonLuiten in #305
- prevent race condition when JIT in multiprocess by @liruilong940607 in #312
- Support Multi-GPU training based on the paper "On Scaling Up 3D Gaussian Splatting Training" by @liruilong940607 in #253
- Update version.py by @liruilong940607 in #313
New Contributors
- @JonathonLuiten made their first contribution in #305
Full Changelog: v1.1.1...v1.2.0
v0.1.13
Full Changelog: v0.1.12...v0.1.13
v1.1.1
v1.1.0
Highlight
Multiple densification strategies are now supported in gsplat, including
DefaultStrategy(): The original 3DGS densification process.DefaultStrategy(absgrad=True): Densification process from "AbsGS: Recovering Fine Details for 3D Gaussian Splatting"MCMCStrategy(). Densification process from "3D Gaussian Splatting as Markov Chain Monte Carlo"
What's Changed
- Update 3DGS examples to use the latest nerfview from pypi by @hangg7 in #206
- docs: update README.md by @eltociear in #210
- Added a guidance for installing gsplat on Windows by @KevinXu02 in #213
- Minor fix for _QuatScaleToCovarPreci back with sparse grad by @liruilong940607 in #214
- Fix wrong description in rasterization API doc by @yifanlu0227 in #216
- support 2^n+1 channels for rasterize_to_pixels by @liruilong940607 in #218
- workaround for n-dim rendering with n>32 by @wuzirui in #217
- Minor fix for _RasterizeToPixels back to avoid NaNs by @opipari in #235
- clean up the shape of the colors by @liruilong940607 in #228
- static shared mem -> dynamic shared mem by @liruilong940607 in #229
- updating background for different rendering modes [D, ED, RGB+D, RGB+… by @vye16 in https://github.com//pull/240
- Fix
max_rangein_torch_impl._rasterize_to_pixels()by @liruilong940607 in #242 - Implement 3DGS-MCMC in gsplat. by @jefequien in #238
- sqrt int to float by @liruilong940607 in #246
- Clamp
ratiosin MCMC'scompute_relocationby @yzslab in #247 - add poetry files, and fix numpy error and no data error. by @MasahiroOgawa in #251
- Separate C source into many translation units by @fwilliams in #255
- Fwilliams/fix headers and ninja by @fwilliams in #256
- template everything but don't actually support multiple precisions yet by @fwilliams in #259
- fix glm path in JIT building by @liruilong940607 in #260
- Fwilliams/atomics by @fwilliams in #261
- set the MAX_JOBS to 10 if not set. by @liruilong940607 in #262
- float3 -> vec3; float2 -> vec2; by @liruilong940607 in #267
- Start adding support for double, float16, and bfloat16 by @fwilliams in #270
- fix test_fully_fused_projection_packed test by @liruilong940607 in #289
- Add optional masks in
rasterize_to_pixels()to support Grendel by @alexis-mmm in #284 - Abstracting out the GS heuristics into a Strategy class by @liruilong940607 in #278
- Bump to 1.1.0 by @liruilong940607 in #290
New Contributors
- @yifanlu0227 made their first contribution in #216
- @wuzirui made their first contribution in #217
- @opipari made their first contribution in #235
- @jefequien made their first contribution in #238
- @yzslab made their first contribution in #247
- @MasahiroOgawa made their first contribution in #251
- @fwilliams made their first contribution in #255
- @alexis-mmm made their first contribution in #284
Full Changelog: v1.0.0...v1.1.0