Skip to content
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

Merged
merged 24 commits into from
Feb 25, 2025
Merged

Gaussian Splatting Utilities #1

merged 24 commits into from
Feb 25, 2025

Conversation

keyboardspecialist
Copy link
Contributor

Summary

WebAssembly package for CesiumJS for working with Gaussian Splats. Currently has sorting and attribute texture generation.

Sorting and texture generation utilities for gaussian splats
@ggetz
Copy link
Contributor

ggetz commented Dec 10, 2024

Hi @keyboardspecialist, is this PR ready for suggestions on project infrastructure and npm module configuration?

Copy link
Contributor

@ggetz ggetz left a 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.

@@ -0,0 +1,84 @@
<div align="center">
Copy link
Contributor

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.

Copy link
Contributor

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:

Copy link
Contributor

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.

Copy link
Contributor

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.

@ggetz ggetz mentioned this pull request Dec 13, 2024
8 tasks
@ggetz
Copy link
Contributor

ggetz commented Jan 17, 2025

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.

@weegeekps
Copy link
Contributor

@ggetz and I met to talk about the release process. A few key notes from our discussion:

  • I will be removing the pack step from the CI build process, and we won't be storing those artifacts on AWS.
  • We are looking at potentially automating the deploy to NPM by creating an Actions workflow to publish to NPM when a repo admin dispatches the workflow manually.
  • We're going to otherwise keep what we have now for the CI actions and look to improve it as we scale up in the future.

@ggetz
Copy link
Contributor

ggetz commented Jan 27, 2025

Hi @weegeekps, just checking in on status given the upcoming CesiumJS release.

Is this PR ready for another review pass?

@weegeekps
Copy link
Contributor

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.

Copy link
Contributor Author

@keyboardspecialist keyboardspecialist left a 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. 👍

@weegeekps weegeekps marked this pull request as ready for review February 21, 2025 19:10
Copy link
Contributor

@ggetz ggetz left a 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"
Copy link
Contributor

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 😅

Copy link
Contributor

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.

Copy link
Contributor

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

[![wasm-splats CI](https://github.com/CesiumGS/cesium-wasm-utils/actions/workflows/wasm-splats-ci.yml/badge.svg)](https://github.com/CesiumGS/cesium-wasm-utils/actions/workflows/wasm-splats-ci.yml)
[![npm](https://img.shields.io/npm/v/@cesium/wasm-splats)](https://www.npmjs.com/package/@cesium/wasm-splats)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The link works, but the image shows up as broken for me:

image

Copy link
Contributor

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.

@weegeekps
Copy link
Contributor

@ggetz this is ready for another review pass.

Copy link
Contributor

@ggetz ggetz left a 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?

@ggetz ggetz added this pull request to the merge queue Feb 25, 2025
Merged via the queue into main with commit eb1528f Feb 25, 2025
2 checks passed
@ggetz ggetz deleted the wasm-splats branch February 25, 2025 18:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants