This version introduces a major new export stack, expands dataset support, improves rendering capabilities, and adds broad compatibility fixes for new hardware and installation workflows.
Notable features:
- Added USD, USDZ, PLY, NuRec, and lightfield export infrastructure with mesh injection and roundtrip tests
- Added NCore-v4 dataset support with accelerated simplejpeg decoding and GPU-cached camera rays
- Added playground path tracing, PBR material meshes, Viser UI, and headless mode
- Improved training with MCMC densification/pruning, Sparse Adam, and multi-camera support
- Expanded platform compatibility for Blackwell, CUDA 12/13, DGX Spark/ARM64, Windows, and uv-based installs
- Added code formatting (Black, isort, clang-format) and expanded CI workflows
What's Changed
- Update README.md by @wilsonCernWq in #49
- revise JIT setup, update for new torch & cuda12 by @wilsonCernWq in #46
- Compatibility pytorch 2.7.0 and blackwell by @johnnynunez in #36
- fix alpha & depth map, enable hit count by @wilsonCernWq in #50
- Decouple polyscope raygen+cameras & move functionality to kaolin by @orperel in #43
- Headless Mode by @orperel in #44
- Switch to loading images on the fly by @zgojcic in #52
- Update README.md by @wilsonCernWq in #53
- MCMC densificastion and prunning strategy by @zgojcic in #55
- Add support for image masks by @zgojcic in #56
- Add support for Sparse Adam optimizer. by @zgojcic in #58
- Bug fix for 3DGRT visibility mask. Add & refine benchmark scripts. by @wilsonCernWq in #60
- #45 : Clarify rotation matrix from quaternion by @moennen in #67
- #45 : Fix rotation matrix namings by @moennen in #69
- Enable training with all images by @zgojcic in #65
- Fix for colmap dataset.test_split_interval=0 by @orperel in #75
- fix typo on README.md. mcmck->mcmc by @kikirizki in #78
- Playground 2.0 - Updated Path Tracer with Cook Torrance, PBR materials, Env Maps by @orperel in #89
- QOL operations to MixtureOfGaussians - index buffers, clone, join by @orperel in #90
- Fix memory leak for 3DGS strat and can handle multiple image sizes by @half-potato in #93
- Add USDZ export by @nvibd in #97
- Viser gui for playground (community PR) by @orperel in #98
- [BUG FIX] Multi-threading support for torch dataset loaders during training + Adding installation script [WINDOWS] by @Arcanous98 in #110
- Multi-Cam Support (Cleaned Up) by @wilsonCernWq in #112
- Move to LFS for Large Files, Add a Rebase Helper Script by @wilsonCernWq in #114
- Remember to build bvh in case model is resumed from a checkpoint file by @wilsonCernWq in #115
- fixing macros issue on Windows by @Arcanous98 in #118
- Fix for colored background by @wilsonCernWq in #122
- Fix Camera ID by @wilsonCernWq in #123
- Update build scripts and playground build instructions by @wilsonCernWq in #117
- Fix to install_env.sh to unbreak non-WITH_GCC11 install by @nmwsharp in #126
- Fix ScannetppDataset intrinsics iteration after dict refactor by @ipekoztas in #128
- Multicam subfolder fix by @TimSchimansky in #129
- Uniformize min kernel density (has to be greated than 0 for usdz export) by @wilsonCernWq in #131
- Fix Playground ObjectTransform rotations to right handed by @orperel in #134
- Fix mismatched computeMeshFaceBuffer defination by @wilsonCernWq in #125
- Add announcement about vk_gaussian_splatting by @wilsonCernWq in #137
- Test Untrack LFS by @wilsonCernWq in #143
- Fix dependency conflicts by @wilsonCernWq in #127
- Fix undefined iJIT_NotifyEvent by @wilsonCernWq in #148
- Fix Depth Supervision by @wilsonCernWq in #155
- fix shell shebang for install script by @nmwsharp in #153
- Improve PLY loading robustness and error handling by @Hermanye996 in #150
- Use median instead of mean and max to estimate scene scale by @nvibd in #157
- Fix windows setup script by @marviej in #154
- Fine-Grained Load Balancing with Warp-per-Pixel Rendering by @OrangeEarth15 in #162
- Formatting all Python Files by @wilsonCernWq in #158
- Allow passing fused point cloud in the training by @ApdowJN in #161
- Slang bug fixes by @wilsonCernWq in #184
- fix: build setup and JIT loading for Blackwell architecture by @ahamboeck in #177
- fix: use JIT return module for CUDA 12.8.1 (Blackwell) to avoid import failures by @Niloux in #166
- Fix UI bug in gui.py for interactive training by @SeanComeOn in #169
- Fix formatting issues by @wilsonCernWq in #185
- add viser viewer for training, with background image and point cloud viz by @tangkangqi in #135
- Format files, update readme, add viser dependency by @wilsonCernWq in #187
- Add PPISP post-processing by @nvibd in #183
- Add mesh injection tool for 3DGRUT-style USDZ packages by @ApdowJN in #195
- Lightfield & NuRec Update by @wilsonCernWq in #198
- Export USD lightfied : remove MDL, add color space and fix usdz by @moennen in #199
- Fix PPISP controller distillation; Add use_controller flag by @nvibd in #200
- Add NCore-v4 dataset by @janickm in #202
- Fix #197 : fix depth gradient computation (missing cross terms and su… by @moennen in #205
- Update README.md to recommend gsplat by @wilsonCernWq in #207
- [format] Cleaned up formatting related to USDZ export by @wilsonCernWq in #203
- Improve NCore performance by @janickm in #206
- NCore Formatting and Announcement by @wilsonCernWq in #208
- fix(camera-models): Replace with native ncore.data types by @janickm in #212
- fix(ncore): make get_observer_points return split-filtered frames by @janickm in #213
- fix(initialization): Use fixed seed for all rng in initialization by @janickm in #214
- bug(dataloader): Fix mask path for Colmap by @wilsonCernWq in #215
- fix(trainer): Move GUI imports inside conditional statements, add viser in dependency by @wilsonCernWq in #216
- Fix sphere primitive center/radius buffer allocation by @meetbanthia in #211
- refactor(ncore): merge adapter into NCoreDataset, remove intermediate types by @janickm in #219
- Format CPP Files by @wilsonCernWq in #222
- fix(dataset): read cx/cy from COLMAP PINHOLE intrinsics instead of de… by @ApdowJN in #223
- Update rebase_helper.sh to exclude .gitlab-ci.yml by @wilsonCernWq in #225
- Fix 3DGRT Compilation by @wilsonCernWq in #226
- fix(dataset): gracefully handle missing world->world_global pose graph edge by @nvibd in #228
- fix(3dgut): Fix CUDA compilation error when k_buffer_size > 0 by @wilsonCernWq in #230
- Support for ARM64 (DGX-Spark) by @wilsonCernWq in #227
- feat(benchmark): add mipnerf360_ncore.sh script for training configur… by @wilsonCernWq in #229
- feat: migrate ncore point cloud loading to PointCloudsSourceProtocol by @janickm in #237
- [Bug Fix] venv needs to be activated before installing dependencies, … by @dibyabiva in #241
- Fix Viser GUI by @wilsonCernWq in #234
- Update formatter.sh and pyproject.toml for improved formatting and dependency management by @wilsonCernWq in #242
- Add v1.1.0 package version metadata by @moennen in #254
New Contributors
- @johnnynunez made their first contribution in #36
- @kikirizki made their first contribution in #78
- @half-potato made their first contribution in #93
- @nvibd made their first contribution in #97
- @Arcanous98 made their first contribution in #110
- @ipekoztas made their first contribution in #128
- @TimSchimansky made their first contribution in #129
- @Hermanye996 made their first contribution in #150
- @marviej made their first contribution in #154
- @OrangeEarth15 made their first contribution in #162
- @ApdowJN made their first contribution in #161
- @ahamboeck made their first contribution in #177
- @Niloux made their first contribution in #166
- @SeanComeOn made their first contribution in #169
- @tangkangqi made their first contribution in #135
- @janickm made their first contribution in #202
- @meetbanthia made their first contribution in #211
- @dibyabiva made their first contribution in #241
Full Changelog: v1.0.0...v1.1.0