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
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();
}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.
Verify correspondence
Radial inversion, stable compaction, H/E consensus and relative-pose checks.
Recover geometry
P3P/PnP RANSAC, robust multi-view triangulation and observation filtering.
Refine a scene
Fixed-intrinsics joint bundle adjustment with matrix-free Schur/PCG and explicit gauge control.
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 →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