three-kit

Find and fix what makes a three.js scene slow or broken.

Five small packages that measure, inspect, check and batch three.js scenes. Use one, or all.

  • no third-party deps
  • vanilla three + R3F
  • typed
  • MIT
bun add -d @zkmake/three-meter
import {
  PerformanceMonitor, wrapAnimationLoop,
} from "@zkmake/three-meter";
import { mountPerfHud }
  from "@zkmake/three-meter/ui";

const monitor =
  new PerformanceMonitor({ renderer });
mountPerfHud(monitor);
renderer.setAnimationLoop(
  wrapAnimationLoop(monitor, render),
);
import { PerfHud, PerfSampler }
  from "@zkmake/three-meter/react";

<>
  <Canvas>
    <PerfSampler />
    {/* scene */}
  </Canvas>
  <PerfHud />
</>;

three-meter, measuring this page: 4,096 cubes in 1 draw callhover to make ripples

Five packages, one kit

Each installs on its own; the four dev tools as dev dependencies.