Commit Graph
2064 Commits
Author SHA1 Message Date
Afloat f182828122 Preserve arbitrary ray batch dimensions in compositing weights
The density and alpha compositing helpers are annotated for arbitrary leading ray batch dimensions, but create identity prefixes from only the first batch axis. The alpha helper also accumulates and slices along dimension 1. Unbatched rays and image-shaped ray batches consequently fail or composite along the wrong axis.
2026-10-02 06:57:31 -07:00
couperle 50e0e3c70c Add image tiling option to ColmapDataParser to use less memory (#3685)
Add tiling option to ColmapDataParser
2025-07-28 19:28:48 -07:00
Qizhi Chen 04a6cb6268 Add documentation for LiveScene (#3577)
* Add support for LiveScene as an external method

* update link
2025-07-22 16:12:37 -07:00
Frédéric DevernayandBrent Yi 83fe2f6cd4 fix core tests (#3687)
* fix core tests

* Try alternative fix for pyright errors

* Run ruff, bump core code checks to 3.11

* Run correct ruff version

* Use the previous pyright version 👀

* cv2 ignore, pin dev dependency to newer pytorch version

* ruff

* Remove pyright error suppressions

---------

Co-authored-by: Brent Yi <yibrenth@gmail.com>
2025-07-15 16:35:57 -07:00
Emmanuel Ferdman 2adcc380c6 Fix Viser reference (#3654)
Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
2025-05-21 14:22:20 -07:00
Daniel Crispell 5003d0e271 sample pixels from all data in variable-resolution batches (#2772)
* sample pixels from all data in variable-resolution batches

* sort import block

* sort imports

* reorder imports

* clean up warnings

* simplify index extraction
2025-04-23 20:14:28 -07:00
Anthony Zhang 2091a0d927 Removing unnecessary print statement (#3639)
removing unnecessary print
2025-04-21 17:36:39 -07:00
Anthony Zhang 94357f82c1 Dataloading Followup (#3604)
* fixing ns-eval when datamanager is set to disk for splats

* fixing prefetch_factor type issues if user decides to use 0 workers

* removing accidental file

* fixing depth nerfacto config for issue 3592

* ruff linting the imports

* fixing workers creating GPU tensors serialization error

* finished next_eval

* adding flowcharts!

* fixing ruff

* added flowcharts into datamanagers.md

* simplying code and adding GPU serialization fix for both datamanagers

* fixing nits with consistent styling

* last optional nit

* fixing num workers
2025-04-20 11:46:18 -07:00
HeaInandBrent Yi 54b127f870 Fixing bounding box issue when exporting poisson mesh (#3591)
Co-authored-by: Brent Yi <yibrenth@gmail.com>
2025-04-04 14:49:43 -07:00
klimermanaandBrent Yi 047100d465 Allow up to v5 of protobuf (#3580)
Co-authored-by: Brent Yi <yibrenth@gmail.com>
2025-04-04 14:49:00 -07:00
Anthony Zhang 352cae6b84 Updating github actions cache version (#3624)
updating github actions versions
2025-04-04 14:44:43 -07:00
Dávid Komorowicz 73fe54dda0 Fix seams/gaps when exporting mesh using marching cubes Fixes #2721 (#3598) 2025-02-24 07:17:09 -08:00
Anthony Zhang f604fd960e Fixing Assertion issues when exporting NeRFs to poisson meshes and pointclouds (#3587)
fixing assertion issues for a successful poissonMesh and pointcloud export
2025-02-09 23:05:31 -08:00
4a3e3e6403 Dataloading Revamp (#3216)
* initial debugging and testing works

* pwais changes with RayBatchStream to alleviate training

* few bugs to iron out with multiprocessing, specifically pickled collate_fn

* working version of RayBatchStream

* additional docstrings

* cleanup

* much more documentation

* successfully trained AEA-script2_seq2 closed_loop without OOM

* porting over aria dataset-size feature

* added logic to handle eviction of a worker's cached_collated_batch

* antonio's implementation of stream batches

* training on a dataset with 4000 images works!

* some configuration speedups, loops aren't actually needed!

* quick fix adjustment to aria

* removed unnecessary looping

* much faster training when adding i variable to collate every 5 ray bundles

* cleanup unnecssary variables in Dataloader

* further cleanup

* adding caching of compressed images to RAM to reduce disk bottleneck

* added caching to RAM for masks

* found fast way to collate - many tricks applied

* quick update to aria to test on different datasets

* cleaned up the accelerated pil_to_numpy function

* cleaning up PR

* this commit was used to generate the time metrics and profiling metrics

* REAL commit used to run tests

* testing with nerfacto-big

* generated RayBundle collate and converting images from uint8s to float32 on GPU tests

* updating nerfacto to support uint8 easily, will need to figure out a way to contain this within the datamanager API

* datamanager updates, both splat and nerf

* must use writeable arrays because torch requires them

* cleaned up base_dataset, added pickle to utils, more code in full_image, and cleaner desc for base_datamanager

* lots of process on a parallel FullImageDatamanger

* can train big splats with pre-assertion hack or ROI hack and 0 workers

* fixed all undistortion issues with ParallelImageDatamanager

* adding some downsampling and parallel tests with splatfacto!

* deleted commented code in dataloaders.py and added bugfix to shuffling

* testing splatfacto-big

* cleaned up base_pipeline.py

* cleaned up base_pipeline.py ACTUALLY THIS TIME, forgot to save last time

* cleaned up a lot of code

* process_project_aria back to main branch and some cleanup in full_image_datamanager

* clarifying docstrings

* further PR cleanup

* updating models

* further cleanup

* removed caching of images into bytestrings

* adding caching of compressed images to RAM, forgot that hardware matters

* removing oom methods, adding the ability to add a flag to dataloading

* removed CacheDataloader, moved RayBatchStream to dataloaders.py, new vanilla_datamanager rewritten

* fixing base_piplines, deleting a weird datamanager_configs file that was accidently created

* cleaning up next_train

* replaced parallel datamanager with new datamanager

* reverted the original base_datamanager.py, new datamanager replaced parallel_datamanager.py

* modified VanillaConfig, but VanillaDataManager is the same as before

* cleaning up, 2 datamanagers now - original and new parallel one

* able to train with new nerfstudio dataloader now

* side by side datamanagers, moved tons of logic into dataloaders.py and created new files for our parallel datamangers

* added custom ray processing API to support implementations like LERF, cleaned up FullImageDatamanager to original because of new ParallelImageDatamanger

* adding functionality for ns-eval by adding FixedIndicesEvalDataloader to the setup_eval

* adding both ray API and image-view API to datamanagers for custom parallelization

* updating splatfacto config for 4k tests

* updating docstrings to be more descriptive

* new datamanager API breaks when setup_eval() has multiple workers, not sure why but single worker will have to do

* adding custom_view_processor to ImageBatchStream

* reverting full_images_datamanager to main branch

* removing nn.Module inheritance from Datamanager class

* don't need to move datamanger to device anymore since Datamanager is not a subclass of nn.Module

* finished integration test with nerfacto

* simplified config variables, integrated the parallelism/disk-data-loading all into one datamanager

* updated the splatfacto config to be simpler with the dataloading and now uses FullImageDatamanager (which has been changed)

* style checks and some cleanup

* new splatfacto test, cleaning up nerfacto integration test

* removing redundant parallel_full_images_datamaanger, as the OG full_image_datamanager now has full parallelized support

* ruff linting and pyright fixing

* further pyright fixing

* another pyright fixing

* fixing pyright error, camera optimization no longer part of datamanager

* fixing one pyright

* fixing dataloading error when camera is not undistorted with dataloader

* fixing comments and updating style

* undoing a style change i made

* undoing another style change i made by accident

* fixing slow runtime

* fixing a more general camera undistortion bug

* move images to device properly

* minor improvements

* add print statement about >500 images, cleanup method configs

* make method configs consistent across nerfacto models

* adding description comments

* updating description

* resolving some pyright issues with export.py, explained in PR desc

* fixing pyright issues in base_pipeline.py

* ran pyright on exporter and base_pipeline.py without issues

* adding a git ignore to a clearly checked pyright issue

* typo

* fixing most ns-dev-test cases

* cleanup, passing final ns-dev-test

* oops, accidentally pushed the deletion of a docstring, undoing that

* another cleanup

* some fixes to eval pipeline

* lint

* add asserts for spawn

* lint

* cleaning up import statements in parallel_datamanager.py

* adding new developer documentation if users would like to migrate their custom datamanagers to support new features

* removing unnecessary to_device no-op

* further updates to documentation

* lint

* more docs

* docs

* remove comment

* add docs, fix depth dataset with parallel datamanager, fix mask sampling bug

* remove profiling

* more profile removal

* custom_view_processor->custom_image_processor

* doc clarification

* datamanager doc nit

* whitespace

* nits

* remove stuff from __post_init__, tune num workers more, add random offset in raybatchstream

* removing unnecessary assertion, updating docstring because DataManager is no longer an nn.Module

* clarifying configuration with num_images_to_sample_from and num_times_to_repeat_images, cleaning up functions

* adding logic so that nerfacto users can load_from_disk and customize image batch sizes and repeat parameters

* ruff formatting! whoops forgot to format

* fixing logic, now if users set load_from_disk to true, datamanager will use 50 and 10. If users set it and specify their own values, we support that as well

* adding separate datamanager config so that target can be removed in method_configs

---------

Co-authored-by: Justin Kerr <justin.g.kerr@gmail.com>
Co-authored-by: Brent Yi <yibrenth@gmail.com>
2025-01-31 10:40:01 -08:00
beckyfeng08 189328ec79 Fixes in Maya plugin page (#3576)
* doc and plugin

* small fixes in plugin
2025-01-22 04:15:39 +00:00
1dc2ebd9dc Fix cli bug in high version of tyro (#3567)
* limited the tyro version up to 0.9.2

* bump tyro>=0.9.8

* Bump typeguard

* Runtime checking with jaxtyping hook instead of typeguard

* Fix test for Python >=3.11, caused by missing default_factory

---------

Co-authored-by: Brent Yi <yibrenth@gmail.com>
Co-authored-by: Justin Kerr <justin.g.kerr@gmail.com>
2025-01-21 03:32:35 -08:00
beckyfeng08 3057c68570 Maya plugin and documentation (#3575) 2025-01-20 00:11:35 -08:00
Brian XuandJonáš Kulhánek 62ab373f7e Add GLOMAP to Dockerfile (#3565)
add GLOMAP to dockerfile

Co-authored-by: Jonáš Kulhánek <jonas.kulhanek@live.com>
2025-01-17 10:42:33 -08:00
Justin Kerr 66cd6817f9 rerun formatting with ruff 0.9.1 (#3569)
rerun with ruff 0.9.1
2025-01-13 10:46:11 -08:00
Yudong JinandJ.Y. 5be513e968 Write camera path to output dir if saving to the data dir fails (#3476)
* Update render_panel.py

* Update render_panel.py

* Update render_panel.py

* Update render_panel.py

* isort fix

* Update render_panel.py

---------

Co-authored-by: J.Y. <132313008+jb-ye@users.noreply.github.com>
2025-01-08 09:10:43 +00:00
Tim de Jager 7be0ed98c5 refactor: use depends-on instead of depends_on (#3561) 2025-01-06 08:57:50 -08:00
Roger Q. ecd40dfab8 Adding docs for feature-splatting as an external method (#3557)
Add support for feature splatting as an external method
2025-01-03 19:44:04 +00:00
c7bd953972 Finalize MCMC strategy and some tiny fix (#3548)
---------

Co-authored-by: KevinXu02 <xucr2002@gmail.com>
Co-authored-by: Justin Kerr <justin.g.kerr@gmail.com>
2025-01-03 19:41:13 +00:00
Jameson Crate 0ced5cecdd Add a point cloud option for Record3D (#3556)
* Add a point cloud option for Record3D

* Change parameter names and add voxel size parameter

* fix record3d point cloud docs formatting
2024-12-24 01:02:52 +00:00
clonefetchandAlexander Kristoffersen 14f1d4ed62 chore: remove redundant words in comment (#3544)
* chore: remove redundant words in comment

Signed-off-by: clonefetch <c0217@outlook.com>

* small typo change

---------

Signed-off-by: clonefetch <c0217@outlook.com>
Co-authored-by: Alexander Kristoffersen <alexanator28@icloud.com>
2024-12-22 19:52:11 +00:00
555d554008 Improve default launch device for train (#3523)
* feat: improve launch device

* add licence header

* crash instead of trying to set the available option

* set cuda as default

---------

Co-authored-by: Noé Pion <noe.pion@onfido.com>
Co-authored-by: J.Y. <132313008+jb-ye@users.noreply.github.com>
2024-12-05 18:29:13 +00:00
Alexander Kristoffersen a8888e7d9e Move util functions out of splatfacto (#3538)
* Move util functions out of splatfacto

Nothing else currently uses some of the SH utils, but it might make sense to get them out of splatfacto.

I also moved the k nearest neighbors to utils since it doesn't depend on the model class.

* fix assert

* fix sh test

* convert to using degrees, not levels
2024-12-05 13:25:55 -05:00
Qizhi Chen e8bf472692 add time interpolation support for ns-render interpolate (#3481)
add time interpolation support
2024-11-29 10:29:43 -05:00
Daniel Wang 4d73c4e61e Fix: number of iterations wasn't set correctly (num_iterations directly set to equal to max_num_iterations) (#3526)
Fix: number of iterations wasn't set correctly

The original code causes iteration to go over max_num_iterations, causing progress tracker be unable to estimate time needed to finish, and causes unwanted extra iterations
2024-11-28 11:50:37 -08:00
J.Y. 11ca6e379e Fix build error (#3533) 2024-11-26 14:10:12 -08:00
Kevin Chen 758ea1918e Fix: --crop-bottom for equirect data (#3525) 2024-11-20 00:37:31 -08:00
J.Y. 6b60855003 bump version to 1.1.5 (#3521) v1.1.5 2024-11-11 16:20:42 -05:00
Lei Lei 9e5bbd9819 fix: saving ckpt error when ckpt folder has some folder inside (#3516) 2024-11-08 17:44:39 -05:00
SebastiaanandJ.Y. cef95890f3 Restrict pymeshlab version on Windows (3461) (#3474)
Co-authored-by: J.Y. <132313008+jb-ye@users.noreply.github.com>
2024-10-24 19:12:25 +00:00
Justin Kerr fc4fc5cb15 Properly reset train state after render lock in viewer (#3486)
* properly reset train state after render locK

* finally block
2024-10-18 11:37:58 -07:00
Justin Kerr d2f2ad9474 update gsplat version to >=1.3.0 (#3478)
* update gsplat version

* 1.4.0
2024-10-16 12:32:06 -07:00
Simon Bethke adc743c3a0 tag exported ply files (#3472)
* tag exported ply files

* Added the version

* fix import order

* Added information about the up-axis
2024-10-13 18:48:52 -07:00
Brent Yi 67be06009e Add option to change .ply output filename for Gaussian exports (#3467)
Add option to configure .ply output filename for Gaussian exports
2024-10-09 22:22:52 +00:00
Nicholas Pfaff 8e27e5f54d Add option for refining the TSDF using the mesh's AABB (#3459) 2024-10-06 21:23:16 -07:00
Brent Yi 1bc1e1aaf6 Add max_frames + max_output_size arguments for Aria data processing (#3466)
* Add max_frames + max_image_size arguments for Aria data processing

* Change max_output_size
2024-10-06 21:22:16 -07:00
Nicholas PfaffandJ.Y. 866a069777 Keep depth_image on CPU (#3449)
Co-authored-by: J.Y. <132313008+jb-ye@users.noreply.github.com>
2024-10-01 19:39:26 +00:00
Nicholas Pfaff 334a1c8afe Make PixelSampler the depth-nerfacto default (#3454)
* Make PixelSampler the depth-nerfacto default

* Add note about PairPixelSampler and DepthLossType.SPARSENERF_RANKING
2024-10-01 16:59:31 +00:00
Nicholas Pfaff 56556d22fa Rejection sample mask for patch pixel sampler (#3457)
Use mask rejection sampling in PatchPixelSampler
2024-10-01 09:54:28 -07:00
Nicholas Pfaff 4c7297c75a Speed up PairPixelSampler (#3452) 2024-09-30 17:31:49 -07:00
Nicholas Pfaff 6da94443fd Change depth from float64 to float32 (#3453) 2024-09-28 16:51:05 -07:00
J.Y. 01d3f73e2c Fix #3417 (#3441) 2024-09-24 18:01:43 -07:00
Aayush GuptaandJ.Y. e6941aca47 Zipnerf point cloud and tsdf mesh export support (#3429)
Co-authored-by: J.Y. <132313008+jb-ye@users.noreply.github.com>
2024-09-24 15:28:18 -04:00
Aayush Gupta 516fd7c9ac Fix splatfacto crash in eval when using viewer (#3430) 2024-09-17 12:31:42 -07:00
3e638da635 Adding Random Seed for Frame Processing (#3416)
* Adding Random Seed for Frame Processing

* Added Unit Tests

* Updating Unit Tests for Ffmpeg

* Make Logs More Detailed

---------

Co-authored-by: Anthony-Tafoya <anthonytafoya@berkeley.edu>
Co-authored-by: J.Y. <132313008+jb-ye@users.noreply.github.com>
2024-09-17 15:32:09 +00:00
Nicholas Pfaff 27b8e14798 Fix crop obb masking in pointcloud generation (#3433) 2024-09-16 16:44:31 -04:00