3dtiles-inspector 0.1.7 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +25 -10
  3. package/dist/inspector-assets/viewer/app.js +67990 -64471
  4. package/package.json +3 -3
  5. package/src/cli.js +1 -1
  6. package/src/index.js +11 -2
  7. package/src/server/fileUtils.js +81 -0
  8. package/src/server/httpHelpers.js +91 -0
  9. package/src/server/httpServer.js +172 -0
  10. package/src/server/matrix4.js +49 -0
  11. package/src/server/openBrowser.js +47 -0
  12. package/src/server/saveTransform.js +481 -0
  13. package/src/server/saveTransformHandler.js +199 -0
  14. package/src/server/session.js +197 -0
  15. package/src/server/splatCrop/gaussianPrimitives.js +250 -0
  16. package/src/server/splatCrop/gltfResource.js +417 -0
  17. package/src/server/splatCrop/index.js +113 -0
  18. package/src/server/splatCrop/normalize.js +124 -0
  19. package/src/server/splatCrop/traversal.js +953 -0
  20. package/src/server/splatCrop/worker.js +397 -0
  21. package/src/server/splatCrop/workerPool.js +182 -0
  22. package/src/server/staticFileReadGate.js +79 -0
  23. package/src/server/viewerAssets.js +85 -0
  24. package/src/server/viewerHtml.js +732 -0
  25. package/src/viewer/app.js +447 -1565
  26. package/src/viewer/config.js +49 -0
  27. package/src/viewer/dom/coordinateInputs.js +47 -0
  28. package/src/viewer/dom/cropUi.js +98 -0
  29. package/src/viewer/dom/elements.js +53 -0
  30. package/src/viewer/dom/events.js +159 -0
  31. package/src/viewer/dom/runtimeStats.js +119 -0
  32. package/src/viewer/dom/statusPanel.js +39 -0
  33. package/src/viewer/dom/viewerToggles.js +87 -0
  34. package/src/viewer/io/saveTransformRequest.js +86 -0
  35. package/src/viewer/io/setPositionController.js +72 -0
  36. package/src/viewer/io/setPositionPointerTracker.js +95 -0
  37. package/src/viewer/io/shutdown.js +27 -0
  38. package/src/viewer/navigation/flyTo.js +152 -0
  39. package/src/viewer/{cameraController.js → scene/cameraController.js} +142 -3
  40. package/src/viewer/scene/globeController.js +47 -0
  41. package/src/viewer/scene/sceneSetup.js +89 -0
  42. package/src/viewer/scene/tiles.js +162 -0
  43. package/src/viewer/scene/transformControls.js +73 -0
  44. package/src/viewer/screenSelection/cropController.js +451 -0
  45. package/src/viewer/screenSelection/farHandle.js +318 -0
  46. package/src/viewer/screenSelection/geometry.js +516 -0
  47. package/src/viewer/screenSelection/index.js +134 -0
  48. package/src/viewer/screenSelection/pointerTracker.js +113 -0
  49. package/src/viewer/screenSelection/sdf.js +95 -0
  50. package/src/viewer/screenSelection/state.js +149 -0
  51. package/src/viewer/transform/geoCamera.js +265 -0
  52. package/src/viewer/transform/geometricError.js +246 -0
  53. package/src/viewer/transform/rootTransformController.js +244 -0
  54. package/src/viewer/transform/tilesetTransform.js +120 -0
  55. package/src/viewer/transform/transformModeController.js +78 -0
  56. package/src/viewer/utils.js +127 -0
  57. package/src/viewer/session.js +0 -1532
  58. package/src/viewer-core.js +0 -16
package/CHANGELOG.md CHANGED
@@ -6,6 +6,36 @@ The format is based on Keep a Changelog and this project follows Semantic Versio
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.2.0] - 2026-05-03
10
+
11
+ ### Added
12
+
13
+ - Added `Crop Regions` for 3D Gaussian Splat tilesets, with screen-space rectangle selection, pending/confirmed region controls, preview overlays, and adjustable far-plane depth handles.
14
+ - Added save-time Gaussian Splat cropping for supported local `.gltf` and `.glb` resources using `KHR_gaussian_splatting_compression_spz_2`, including multi-resource writes, multi-bufferView rewrites, empty tile pruning, and progress updates.
15
+ - Added README documentation, a crop-region screenshot, and smoke-test fixtures for the 3DGS crop workflow.
16
+
17
+ ### Changed
18
+
19
+ - Moved inspector session, HTTP server, save handling, viewer asset generation, and splat-crop logic into focused `src/server/` modules.
20
+ - Refactored the browser viewer into focused DOM, IO, scene, navigation, screen-selection, and transform modules.
21
+ - Updated the public `./session` export to `src/server/session.js` and routed the CLI through the package entrypoint.
22
+ - Updated `3d-tiles-rendererjs-3dgs-plugin` from `0.1.4` to `0.1.5`.
23
+
24
+ ### Fixed
25
+
26
+ - Fixed repeated saves on Windows failing with `EPERM` when replacing recently streamed `.glb`, `.gltf`, `.bin`, or `.json` files, including races with active tile requests.
27
+
28
+ ## [0.1.8] - 2026-05-03
29
+
30
+ ### Added
31
+
32
+ - Added a camera pivot indicator for rotate, pan, and zoom interactions.
33
+ - Added bottom-right tile runtime stats for downloading, parsing, loaded, and visible tile counts.
34
+
35
+ ### Changed
36
+
37
+ - Moved the `Canvas` toolbar section above `Transform`.
38
+
9
39
  ## [0.1.7] - 2026-04-27
10
40
 
11
41
  ### Changed
package/README.md CHANGED
@@ -14,6 +14,13 @@
14
14
 
15
15
  Requires Node.js 18 or newer.
16
16
 
17
+ ## Built On
18
+
19
+ This project is based on and integrates work from:
20
+
21
+ - [WilliamLiu-1997/3D-Tiles-RendererJS-3DGS-Plugin](https://github.com/WilliamLiu-1997/3D-Tiles-RendererJS-3DGS-Plugin)
22
+ - [NASA-AMMOS/3DTilesRendererJS](https://github.com/NASA-AMMOS/3DTilesRendererJS)
23
+
17
24
  ## Install
18
25
 
19
26
  ```bash
@@ -76,7 +83,7 @@ const {
76
83
 
77
84
  ## Inspector Features
78
85
 
79
- <img src="https://raw.githubusercontent.com/WilliamLiu-1997/3DTiles-Inspector/main/screenshot.png" alt="screenshot" width="960" />
86
+ <img src="https://raw.githubusercontent.com/WilliamLiu-1997/3DTiles-Inspector/main/screenshot.png" alt="screenshot" />
80
87
 
81
88
  - `Translate`, `Rotate`, and `Reset` for root transform edits
82
89
  - `Move Camera` to a WGS84 latitude / longitude / height
@@ -85,8 +92,25 @@ const {
85
92
  - `Terrain` to toggle Cesium World Terrain while keeping satellite imagery
86
93
  - `Geometric Error` scaling from `1/16x` to `16x`
87
94
  - `Layer Multiplier` scaling from `1/8x` to `8x` for each tile's geometric-error difference from the tileset's global leaf baseline
95
+ - `Crop Regions` for drawing screen-space exclude regions on 3D Gaussian Splat tilesets
88
96
  - `Save` to persist the updated root transform and geometric-error scale back to disk
89
97
 
98
+ ### Crop Regions
99
+
100
+ `Crop Regions` appears when the loaded tileset contains 3D Gaussian Splat content. It lets you draw one or more screen-space exclude rectangles, preview them in the viewer, then apply the crop when you click `Save`.
101
+
102
+ The basic workflow is:
103
+
104
+ 1. Click `Screen Select` and drag a rectangle over the splats to remove.
105
+ 2. Drag the far-plane handle to set how deep the crop region extends into the scene.
106
+ 3. Click `Confirm` to add the region to the save list, or `Cancel` to discard the pending rectangle.
107
+ 4. Select a confirmed region row if you need to adjust its 3D far plane with the transform handle.
108
+ 5. Click `Save` to persist the root transform and delete splats inside the confirmed crop regions.
109
+
110
+ <img src="https://raw.githubusercontent.com/WilliamLiu-1997/3DTiles-Inspector/main/region.png" alt="Crop Regions" />
111
+
112
+ Crop saving rewrites supported local `.gltf` / `.glb` Gaussian Splat resources that use `KHR_gaussian_splatting_compression_spz_2`. Fully deleted splat primitives are removed from their glTF, and empty tile content can be pruned from the tileset JSON. Remote content and unsupported Gaussian Splat encodings are rejected instead of being modified.
113
+
90
114
  If `build_summary.json` exists next to the root tileset, `Save` also updates:
91
115
 
92
116
  - `root_transform`
@@ -95,15 +119,6 @@ If `build_summary.json` exists next to the root tileset, `Save` also updates:
95
119
  - `viewer_geometric_error_scale`
96
120
  - `viewer_geometric_error_layer_scale`
97
121
 
98
- ## Package Surface
99
-
100
- - `src/index.js` exports the public Node API
101
- - `src/cli.js` implements the standalone CLI
102
- - `src/viewer/session.js` manages the local server, temporary assets, browser launch, and save handling
103
- - `src/viewer/app.js` contains the browser runtime source
104
- - `dist/inspector-assets/viewer/` contains the generated browser bundle and local decoder assets built by `npm run build:viewer`
105
- - `src/viewer/cameraController.js` contains the vendored camera controller used by the runtime
106
-
107
122
  ## Development
108
123
 
109
124
  ```bash