Skip to main content
PointFlow logo

PointFlow

React-first engine for live point-cloud streams

WebGPU + automatic WebGL fallbackBounded memory by design393 tests passing in CI
npm install pointflow

Bounded memory

Ring buffer with configurable capacity. Memory stays flat no matter how fast your stream is or how long it runs.

Off-thread ingest

Chunk processing runs in a dedicated Web Worker. Your main thread and render loop never pay ingest cost.

WebGPU compute culling

A WGSL compute shader handles frustum culling and importance sampling on the GPU. Automatic WebGL fallback on every other browser.

Importance engine

One score drives both buffer eviction and per-frame sampling. High-value points survive longer and render more often.

Static file loading

PLY, XYZ, LAS, LAZ, and COPC files parse off-thread with progressive rendering. Points appear as they load.

React-native API

Drop-in components and hooks with full TypeScript types. Render live points in under 10 lines of code.

Up in minutes

Mount the component, connect your stream, push chunks. The buffer, worker, and renderer are all managed for you.

Read the quick start
import { StreamedPointCloud } from "pointflow";
import { createWebSocketAdapter } from "pointflow";

function Scene() {
const adapter = createWebSocketAdapter(
"wss://your-lidar-stream"
);

return (
<StreamedPointCloud
adapter={adapter}
maxPoints={50_000}
/>
);
}