## Proposal
I would like to add a Sandcastle gallery example showing a large satellite catalog (about 16,000 objects from CelesTrak) propagated with SGP4 and rendered on the globe, with orbit paths, regime filtering (LEO, MEO, GEO, HEO), search by name or NORAD ID, hover labels and picking.
The example uses [cesium-sgp4-viewer]( GitHub - dsanchez31/cesium-sgp4-viewer: Show a whole satellite catalog on a CesiumJS globe, from a list of TLEs: every object at its SGP4 position, its orbit, its name, following the scene's clock. · GitHub ), an Apache-2.0 library I maintain. Live demo in Sandcastle today: <SANDCASTLE_SHARE_LINK>
## How it works
- The library ships an IIFE build on npm, loaded from jsDelivr at a pinned version. It reads the global `Cesium`, so it shares the instance Sandcastle already loaded.
- SGP4 propagation runs in web workers created from `blob:` URLs. Nothing else is served.
- Satellites are drawn with a point primitive collection; orbits use a custom vertex and fragment shader.
- The TLE snapshot is fetched from the library repository through jsDelivr, pinned to a release tag.
## Open questions for maintainers
1. **Third-party code in the gallery.** No current gallery example loads an external library. `CONTRIBUTING.md` asks to discuss this first. Is a plugin showcase acceptable in the gallery, or would you prefer another place (forum showcase, a community plugins page)?
2. **Undocumented API.** The orbit rendering relies on renderer classes that are exported but not documented (`DrawCommand`, `VertexArray`, `ShaderProgram`, …). If a CesiumJS release changes them, the library disables orbits with a console warning while points, labels and picking keep working. Is that acceptable for a gallery entry?
3. **External hosting.** Both the script and the TLE file come from jsDelivr. Would you rather host the TLE file with the other Sandcastle assets?
If the answer is yes, I will open a PR adding `packages/sandcastle/gallery/` (`index.html`, `main.js`, `sandcastle.yaml`, `thumbnail.jpg`) plus the `CHANGES.md` and `CONTRIBUTORS.md` entries.