Skip to main content
Version: v0.1.0

TypeScript types

All public types are exported from "pointflow". Import them with import type to avoid including them in your runtime bundle.

Core types

PointRecord

type PointRecord = {
x: number;
y: number;
z: number;
attributes?: Record<string, number>;
};

PointChunk

type PointChunk = {
points: PointRecord[];
};

PackedAttributeChannel

type PackedAttributeChannel = {
key: string;
values: Float32Array;
present: Uint8Array; // 1 = value present, 0 = missing
};

DenseAttributeChannel

type DenseAttributeChannel = {
key: string;
values: Float32Array; // all values present — no presence bitmap needed
};

PickedPoint

type PickedPoint = {
x: number;
y: number;
z: number;
attributes: Record<string, number>;
screenDist: number;
slotIndex: number;
confidence: number;
};

PickStrategy

type PickStrategy = "highestImportance" | "nearest" | "recentFirst";

RendererBackend

type RendererBackend = "auto" | "webgpu" | "webgl";

PointCloudSource

type PointCloudSource = string | URL | Request | File | Blob;

Policy types

RuntimeMode

type RuntimeMode = "eco" | "balanced" | "max_throughput" | "custom";

TierLevel

type TierLevel = "L" | "M" | "H";

UserConstraints

type UserConstraints = {
pointBudgetCap?: number;
updateCadenceMinMs?: number;
};

ActivePolicy

type ActivePolicy = {
tier: TierLevel;
mode: RuntimeMode;
pointBudget: number;
updateCadenceMs: number;
expensivePassesEnabled: boolean;
};

Streaming metrics

StreamedPointCloudRenderMetrics

type StreamedPointCloudRenderMetrics = {
drawCalls: number;
renderedPoints: number;
gpuTimeMs: number | null;
frameTimeMs: number;
fps: number;
};

TemporalStats

type TemporalStats = {
windowedCount: number;
totalCount: number;
oldestPointAgeMs: number;
};

COPC types

AtlasTierConfig

type AtlasTierConfig = {
slotCount: number;
pointsPerSlot: number;
};

CopcPrefetchStrategy

type CopcPrefetchStrategy =
| "frustum-priority"
| "depth-first"
| "nearest"
| "bandwidth-saver";

Quantized transport types

QuantizedSchema

type QuantizedSchema = {
attributes: QuantizedAttrSchema[];
};

QuantizedAttrSchema

type QuantizedAttrSchema = {
key: string;
min: number;
max: number;
};

Load lifecycle

PointCloudLoadTelemetryEvent

type PointCloudLoadTelemetryEvent = {
phase: "start" | "header" | "chunk" | "done" | "error" | "abort";
progress?: number; // 0-1, present on "chunk" and "done"
};

PointCloudStatus

type PointCloudStatus = "idle" | "loading" | "ready" | "error" | "aborted";