@plasius/gpu-shared
v0.1.6
Published
Shared browser-safe demo runtime and asset helpers for the Plasius gpu-* package family.
Maintainers
Readme
@plasius/gpu-shared
Shared browser-safe demo runtime and asset helpers for the Plasius gpu-*
package family.
Apache-2.0. ESM + CJS builds.
Install
npm install @plasius/gpu-sharedWhat It Solves
- Moves shared 3D showcase/demo runtime ownership out of
gpu-demo-viewer. - Provides one package home for GLTF loading and harbor/showcase mounting.
- Reuses
@plasius/gpu-cloth,@plasius/gpu-fluid,@plasius/gpu-lighting,@plasius/gpu-performance,@plasius/gpu-debug, and browser-safe physics planning from@plasius/gpu-physics/browser. - Keeps package demos aligned on the same family-owned scene contract instead of carrying duplicated runtime copies.
Usage
import { mountGpuShowcase } from "@plasius/gpu-shared";
const showcase = await mountGpuShowcase({
root: document.getElementById("app"),
packageName: "@plasius/gpu-demo-viewer",
title: "Flag by the Sea",
subtitle: "Shared 3D validation scene for the gpu-* family.",
});
// Teardown is safe to call repeatedly from a route/page cleanup.
showcase.destroy();For browser-only demos served without a bundler, keep the import surface on the published package name and resolve it with an import map rather than importing a viewer-private or workspace-private source file:
<script type="importmap">
{
"imports": {
"@plasius/gpu-shared": "../node_modules/@plasius/gpu-shared/dist/index.js"
}
}
</script>Asset Helpers
import {
loadGltfModel,
resolveShowcaseAssetUrl,
showcaseFocusModes,
} from "@plasius/gpu-shared";
const shipUrl = resolveShowcaseAssetUrl();
const shipModel = await loadGltfModel(shipUrl);
console.log(showcaseFocusModes);
console.log(shipModel.physics);Demo
npm run demoThen open http://localhost:8000/gpu-shared/demo/.
This package demo mounts the integrated harbor showcase so the shared runtime
can be validated independently of gpu-demo-viewer.
Current Boundary
@plasius/gpu-shared owns the shared browser/demo orchestration surface. It
does not replace @plasius/gpu-renderer as the long-term runtime renderer API.
The current showcase still centralizes scene drawing here because
@plasius/gpu-renderer does not yet expose a reusable scene/mesh submission
surface for these family demos.
API
mountGpuShowcase(options)- Returns
{ state, shipModel, canvas, destroy() }
- Returns
loadGltfModel(url)resolveShowcaseAssetUrl(baseUrl?)showcaseFocusModes
Development
npm ci
npm run lint
npm run typecheck
npm test
npm run build