Quality

By default a field watches its own frame times and lowers particles, ribbons and resolution when the device cannot hold about 60 fps, then raises them again when there is headroom. Add load below and watch the level rise; the frame rate recovers.

Quality level 0 Particles – Canvas – Page – fps
new ParticleField("#particles", {
  look: "galaxy-drift",
  quality: "auto",              // default; "high" | "medium" | "low" pin a level
  onQualityChange: (level) => console.log("quality level", level),
  poster: "/fallback.jpg",      // shown instead of the field if WebGL2 is unavailable
});
field.setQuality("low");        // e.g. from a battery-saver switch
field.qualityLevel;             // 0 = as authored, higher = lighter