-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Gaussian Splatting Utilities #1
Conversation
Sorting and texture generation utilities for gaussian splats
Hi @keyboardspecialist, is this PR ready for suggestions on project infrastructure and npm module configuration? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @keyboardspecialist! I'm excited to see that we're taking advantage of WASM to optimize CesiumJS runtime performance. Hopefully this can serve as a model for future optimizations!
I reviewed this PR through the lens of:
- project setup for a Cesium open source repository
- general best practices for testing, documentation, and CI
- setup for publishing an npm package
I did not review any of the rust code or build processes and would recommend a second reviewer for that aspect.
wasm-splats/README.md
Outdated
@@ -0,0 +1,84 @@ | |||
<div align="center"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I assume we'll want to customize this README to be specific to this project, correct?
When this is published on npm, this (or another README in a distribution directory) will serve as the landing page and should include setup instructions and usage examples. For instance, see @cesium/engine
, a package in the CesiumJS monorepo, or the Draco npm package for how a wasm package is positioned.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would also suggest adding the following files at the repository root:
README.md
: This can be fairly minimal with a brief description of project motivation and a link to this subfolder.CONTRIBUTING.md
: You can borrow the relevant parts of CesiumJS's. Definitely include a link to the Cesium Code of Conduct and instruction for completing the CLA
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added the contributing code and the code of conduct. I'm holding off on updating the readmes until I'm done with everything else.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Documentation is done, at least for the initial release. There's definitely some ambiguity around some management aspects here, but I think that's okay while we learn to live with this new monorepo.
Thanks for the updates @weegeekps! I'll take another pass. Could you please update the PR description with your current status? It's helpful to know what the known TODO's are so that I understand where it's useful to provide feedback. |
@ggetz and I met to talk about the release process. A few key notes from our discussion:
|
Hi @weegeekps, just checking in on status given the upcoming CesiumJS release. Is this PR ready for another review pass? |
Not yet. I am working on unit and integration tests, and since we no longer have the GTM hanging over our heads I am going to try to test as much as possible. Our shift in strategy will still likely use a lot of this code so I want to make sure we have comprehensive tests for when we start to incorporate the new method for storing splats. |
1e210e6
to
7cd55b7
Compare
7cd55b7
to
509e0e0
Compare
b457804
to
c957296
Compare
c957296
to
d581a40
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can't approve my own PR, but the rust code is good to go. 👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is looking great @weegeekps! I have lots of tiny cleanup comments, but overall this looks good to merge.
I'm assuming we're not going to bump the version and put out an official release until later.
name = "wasm-splats" | ||
version = "0.1.0-alpha.1" | ||
authors = ["Cesium GS, Inc. <https://cesium.com>"] | ||
edition = "2021" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a reason this is not 2025? Or am I missing something obvious 😅
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
edition
specifies the version of Rust we're using. Currently, we're using the 2021 edition of the language, as the 2024 edition was just stabilized last week. As with other languages, we will want to wait a while before moving to the latest edition.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Totally makes sense. I wasn't familiar with "edition" in the context of Rust.
# wasm-splats | ||
|
||
[](https://github.com/CesiumGS/cesium-wasm-utils/actions/workflows/wasm-splats-ci.yml) | ||
[](https://www.npmjs.com/package/@cesium/wasm-splats) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can't seem to reproduce this problem.
@ggetz this is ready for another review pass. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is looking good to me @weegeekps!
I think it may be helpful to have instructions here for how to install or update to a new version of this over in CesiumJS. However, I assume we'll want to work out the kinks over in CesiumGS/cesium#12364, and potentially go to version 1.0, first.
Could you open an issue to track?
Summary
WebAssembly package for CesiumJS for working with Gaussian Splats. Currently has sorting and attribute texture generation.