Skip to content
Merged
Show file tree
Hide file tree
Changes from 59 commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
aef98a6
Add GaussianProjectionUT for 3D to 2D Gaussian projection
fwilliams Jan 20, 2026
1938d8a
Add rotation matrix to quaternion conversion function
fwilliams Jan 20, 2026
f96a05d
Add pose interpolation functionality and related tests
fwilliams Jan 20, 2026
39a1cac
Remove unused Tensor.h include from GaussianProjectionUTTest.cpp
fwilliams Jan 20, 2026
a9baa6f
comments
fwilliams Jan 20, 2026
37a879d
why not more functions?
fwilliams Jan 20, 2026
3930fd4
checkpoint
fwilliams Jan 26, 2026
7a31ae3
checkpoint
fwilliams Jan 26, 2026
35ee440
enum
fwilliams Jan 27, 2026
6c00b10
rm enum
fwilliams Jan 27, 2026
1e262ad
clang format
fwilliams Jan 27, 2026
c5d4e00
clang format
fwilliams Jan 27, 2026
64904bf
clang format
fwilliams Jan 27, 2026
e78a670
format
fwilliams Jan 27, 2026
b022698
fix bug
fwilliams Jan 27, 2026
9936c0d
fix clang format
fwilliams Jan 27, 2026
61d1352
logscales
fwilliams Jan 27, 2026
b2cad81
address copilot comments
fwilliams Jan 27, 2026
4813306
clang format
fwilliams Jan 27, 2026
b40d20d
Update src/fvdb/detail/ops/gsplat/GaussianProjectionUT.h
fwilliams Jan 27, 2026
d6e8739
Update src/fvdb/detail/ops/gsplat/GaussianProjectionUT.h
fwilliams Jan 27, 2026
b1f981b
Update src/fvdb/detail/ops/gsplat/GaussianUtils.cuh
fwilliams Jan 27, 2026
c9bd1a2
rm
fwilliams Jan 27, 2026
ff11d66
fix copilot
fwilliams Jan 27, 2026
ec68cc5
clang format
fwilliams Jan 27, 2026
97828b1
rolling shutter issue
fwilliams Jan 27, 2026
c8a3bae
clang format
fwilliams Jan 27, 2026
1a236c0
remove (void)
fwilliams Jan 27, 2026
b5c981e
tests use accessors
fwilliams Jan 28, 2026
e77db1f
Update src/CMakeLists.txt
fwilliams Jan 28, 2026
c9a3b2b
fix segfault
fwilliams Jan 28, 2026
7eada65
Merge branch 'fw/ut2' of github.com:fwilliams/fvdb-core into fw/ut2
fwilliams Jan 28, 2026
9e8e1bf
fixed
fwilliams Jan 28, 2026
2fcf679
host side check for num sigma points
fwilliams Jan 28, 2026
c09877f
robustness
fwilliams Jan 28, 2026
7215540
no sync
fwilliams Jan 28, 2026
c79b88f
docstring
fwilliams Jan 29, 2026
ff5c7aa
move a lot of code into a camera model
fwilliams Jan 29, 2026
e44bd79
opencv camera model
fwilliams Jan 29, 2026
f7e5498
clean up pose stuff
fwilliams Jan 29, 2026
f3eb963
refactor
fwilliams Jan 29, 2026
d49655b
refactor
fwilliams Jan 29, 2026
6856d68
rename
fwilliams Jan 29, 2026
bb44edc
cleanup
fwilliams Jan 29, 2026
84050f6
more refactoring
fwilliams Jan 29, 2026
f8359b7
revert accessor helper changes
fwilliams Jan 29, 2026
ba96359
camera model
fwilliams Jan 30, 2026
7e85a0e
orthographic
fwilliams Jan 30, 2026
5c15eee
comments
fwilliams Jan 30, 2026
c325096
docstrings
fwilliams Jan 30, 2026
f8f65ce
accessorhelpers
fwilliams Jan 30, 2026
30d5a5c
fix UB
fwilliams Jan 30, 2026
352ee00
format
fwilliams Jan 30, 2026
44d3864
cache R
fwilliams Jan 30, 2026
b2a3465
fix copilot comments
fwilliams Jan 30, 2026
0862255
std exp
fwilliams Jan 30, 2026
6a8afb0
fix
fwilliams Jan 30, 2026
2678db1
Enhance documentation for rotationMatrixToQuaternion function with de…
fwilliams Jan 30, 2026
ec6fb21
clang format
fwilliams Feb 2, 2026
d211647
remove raw pointers where applicable
fwilliams Feb 3, 2026
1715910
format
fwilliams Feb 3, 2026
fb51967
fix copilot issue
fwilliams Feb 3, 2026
c68e34d
clang format
fwilliams Feb 3, 2026
5bdcbd3
rerun CI
fwilliams Feb 4, 2026
2b2acae
rerun CI?
fwilliams Feb 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ set(FVDB_CU_FILES
fvdb/detail/ops/gsplat/GaussianMCMCRelocation.cu
fvdb/detail/ops/gsplat/GaussianProjectionBackward.cu
fvdb/detail/ops/gsplat/GaussianProjectionForward.cu
fvdb/detail/ops/gsplat/GaussianProjectionUT.cu
fvdb/detail/ops/gsplat/GaussianProjectionJaggedBackward.cu
fvdb/detail/ops/gsplat/GaussianProjectionJaggedForward.cu
fvdb/detail/ops/gsplat/GaussianRasterizeBackward.cu
Expand Down
6 changes: 3 additions & 3 deletions src/fvdb/detail/GridBatchImpl.cu
Original file line number Diff line number Diff line change
Expand Up @@ -1307,7 +1307,7 @@ GridBatchImpl::deserializeV0(const torch::Tensor &serialized) {
};

TORCH_CHECK(serialized.scalar_type() == torch::kInt8, "Serialized data must be of type int8");
TORCH_CHECK(serialized.numel() >= sizeof(V01Header),
TORCH_CHECK(serialized.numel() >= static_cast<int64_t>(sizeof(V01Header)),
"Serialized data is too small to be a valid grid handle");

const int8_t *serializedPtr = serialized.data_ptr<int8_t>();
Expand All @@ -1316,7 +1316,7 @@ GridBatchImpl::deserializeV0(const torch::Tensor &serialized) {
TORCH_CHECK(header->magic == 0x0F0F0F0F0F0F0F0F,
"Serialized data is not a valid grid handle. Bad magic.");
TORCH_CHECK(header->version == 0, "Serialized data is not a valid grid handle. Bad version.");
TORCH_CHECK(serialized.numel() == header->totalBytes,
TORCH_CHECK(static_cast<uint64_t>(serialized.numel()) == header->totalBytes,
"Serialized data is not a valid grid handle. Bad total bytes.");

const uint64_t numGrids = header->numGrids;
Expand Down Expand Up @@ -1752,7 +1752,7 @@ GridBatchImpl::dilate(const int64_t dilationAmount) {
c10::intrusive_ptr<GridBatchImpl>
GridBatchImpl::dilate(const std::vector<int64_t> dilationAmount) {
c10::DeviceGuard guard(device());
TORCH_CHECK_VALUE(dilationAmount.size() == batchSize(),
TORCH_CHECK_VALUE(static_cast<int64_t>(dilationAmount.size()) == batchSize(),
"dilationAmount should have same size as batch size, got ",
dilationAmount.size(),
" != ",
Expand Down
10 changes: 1 addition & 9 deletions src/fvdb/detail/ops/gsplat/GaussianProjectionForward.cu
Original file line number Diff line number Diff line change
Expand Up @@ -91,15 +91,7 @@ template <typename T, bool Ortho> struct ProjectionForward {
mOutDepthsAcc(outDepths.packed_accessor64<T, 2, torch::RestrictPtrTraits>()),
mOutConicsAcc(outConics.packed_accessor64<T, 3, torch::RestrictPtrTraits>()),
mOutCompensationsAcc(outCompensations.defined() ? outCompensations.data_ptr<T>()
: nullptr) {
mMeansAcc = means.packed_accessor64<T, 2, torch::RestrictPtrTraits>();
mQuatsAcc = quats.packed_accessor64<T, 2, torch::RestrictPtrTraits>();
mLogScalesAcc = logScales.packed_accessor64<T, 2, torch::RestrictPtrTraits>();
mWorldToCamMatricesAcc =
worldToCamMatrices.packed_accessor32<T, 3, torch::RestrictPtrTraits>();
mProjectionMatricesAcc =
projectionMatrices.packed_accessor32<T, 3, torch::RestrictPtrTraits>();
}
: nullptr) {}

inline __device__ Mat3
computeCovarianceMatrix(int64_t gid) const {
Expand Down
Loading
Loading