@kaminos/moge
v0.1.0
Published
MoGe-2 depth estimation running entirely in WebGPU compute shaders
Maintainers
Readme
MoGe In Your Application
MoGe turns a photograph into depth, surface normals, and a 3D point map on your application's GPU. Install the package and pass it your application's GPU device. Hosted weights load by default; you can supply your own weight URL. Reuse the model across images, then dispose of its resources without destroying your device.
Install
npm install @kaminos/mogeimport { MoGeInference } from '@kaminos/moge';Load, Run, Release
gpu is your application's { device, adapter, backendIdentity } context. images contains RGBA images shaped as { width, height, data }. Each result includes depth, normals, points, colors, width, and height.
import { MoGeInference } from '@kaminos/moge';
export async function inferDepth(gpu, images, { weightsUrl, onProgress } = {}) {
const inference = new MoGeInference(gpu, { weightsUrl });
try {
await inference.init(onProgress);
const outputs = [];
for await (const image of images) {
outputs.push(await inference.run(image, {
scheduler: {
mode: 'cooperative', splitVitBlocks: true,
splitDecoderResBlocks: true, pacing: 'bounded-prefix',
},
}));
}
return outputs;
} finally {
await inference.dispose();
}
}For an application creating a new WebGPU device, the package exports the device helper:
import { initGPU } from '@kaminos/moge';
const gpu = await initGPU();onProgress receives downloaded and total weight bytes. weightsUrl accepts the URL of a MoGe weight file. Loading and initialization errors reject rather than substituting synthetic output. Serve the application over HTTPS or localhost.
For rendering alongside inference, use the kit's shared-device getting-started example and the Material Photograph composition.
Build From Source
From the MoGe WebGPU checkout:
npm ci
npm run build:libOutput: dist-lib/moge-inference.js. For a direct-module application, replace the package import with the URL where you serve that file. Include LICENSE and THIRD_PARTY_NOTICES.txt when distributing it.
