TYPECV / COMPUTER VISION

A clearer view.
From code to geometry.

Reusable computer vision in TypeScript, with computation on the GPU. Start with geometric vision and sparse reconstruction, within a broader foundation for images, correspondence, motion and 3D.

TypeScript → TypeShade → WebGPU

PAIR VERIFICATIONpair.ts
import { ShadeDevice, verifyImagePairGpu } from './dist/gpu.js';

const device = await ShadeDevice.open();
try {
  const pair = await verifyImagePairGpu(
    device, matches, firstCamera, secondCamera,
    { iterations: 256, threshold: 0.001, seed: 71 },
  );
  console.log(pair.inlierRows, pair.geometry?.R, pair.reason);
} finally {
  await device.dispose();
}
pixels→H / E→R, t

One resident pair verification plan. Original correspondence indices and a relative-pose summary return to the host.

01 / OPERATORS

What runs today

The current implementation concentrates on geometry and sparse 3D. Operators are reusable independently of an SfM graph.

02 / FOUNDATION

CV is the scope. SfM is a subset.

Image processing, native feature extraction and matching, optical flow, dense depth and learned-vision integration are planned. The roadmap distinguishes available operators from future work.

Explore the roadmap →

Project documentation is currently written in English.

03 / REPRODUCIBLE

Inspect the evidence

The recorded pyramid experiment registers 8 of 8 views with 1,723 sparse points. Its calibration is assumed and it has no ground truth. Software WebGPU checks establish execution and numerical behavior; physical-GPU performance remains to be measured.

Open the full experiment record →
8 / 8registered views
1,723sparse points

SWIFTSHADER · ASSUMED CALIBRATION

04 / GET STARTED

Start from source

TypeCV is early and has no published npm package. Build the library locally, then import the compiled entry points. The root entry is the independent CPU reference; the GPU entry uses TypeShade.

Documentation →
git clone https://github.com/typeshade/typecv.git
cd typecv
npm ci
npm run build
node examples/two-view.mjs