Add "Generate LODs" option to publish dialog#910
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds an “Generate LODs” publish option that switches the publish pipeline between single-SOG (publishFormat: "sog") and streaming-SOG with generated LOD chunks (publishFormat: "ssog"), exposed via the publish settings dialog and localized across all supported languages.
Changes:
- Extended
PublishSettingswithautoLodsand derivedpublishFormatfrom it for both publish and republish requests. - Added a new publish-settings dialog toggle with a default heuristic based on total splat count and unioned scene bounds.
- Added
popup.publish.auto-lodstranslations for all 9 locale files.
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
src/ui/publish-settings-dialog.ts |
Adds “Generate LODs” toggle, computes default from splat count + union bounds, and threads autoLods into resolved settings. |
src/publish.ts |
Adds autoLods to PublishSettings and uses it to select publishFormat (sog vs ssog) in publish/republish payloads. |
static/locales/en.json |
Adds localized label for the new toggle. |
static/locales/de.json |
Adds localized label for the new toggle. |
static/locales/es.json |
Adds localized label for the new toggle. |
static/locales/fr.json |
Adds localized label for the new toggle. |
static/locales/ja.json |
Adds localized label for the new toggle. |
static/locales/ko.json |
Adds localized label for the new toggle. |
static/locales/pt-BR.json |
Adds localized label for the new toggle. |
static/locales/ru.json |
Adds localized label for the new toggle. |
static/locales/zh-CN.json |
Adds localized label for the new toggle. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Re-qi
pushed a commit
to Re-qi/ReSplat
that referenced
this pull request
Jun 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a user-facing "Generate LODs" toggle to the publish settings dialog. When enabled, the publish request sends
publishFormat: 'ssog'instead of'sog', telling the server pipeline to decimate the PLY into LOD chunks (streaming SOG) rather than producing a single SOG.The toggle is visible in both new-scene and republish flows and defaults to ON when both:
Otherwise it defaults to OFF, preserving today's single-SOG behavior.
Changes:
src/publish.ts: extendedPublishSettingswithgenerateLods; bothdoPublishanddoRepublishpayloads now derivepublishFormatfrom it.src/ui/publish-settings-dialog.ts: newBooleanInputrow, default computed from splat count + world-bound extents, threaded into the resolvedPublishSettings. The row is hidden when republishing animation-only (no model upload).static/locales/*.json: addedpopup.publish.generate-lodsfor all 9 supported languages.Test plan:
publishFormat: "sog"in request.publishFormat: "ssog".PUT /splats/:id/republishbody carriespublishFormat: "ssog"."sog".Generate LODsrow is hidden.