Changelog

The revamp is a full modernization of Pts. Most existing sketches should continue to work, while the library is now faster, more predictable, easier to integrate, and better tested. This page summarizes the major changes made since work on the revamp began in August 2026.

1.0.1

New capabilities

Correctness and reliability

Every core module received a detailed review. Around sixty confirmed bugs were fixed and covered by tests. The most visible fixes include:

Faster everyday drawing

Hot paths throughout the library were measured and optimized. Major improvements include polygon hit testing, curve generation, Bound coordinate access, Group insertion and segmentation, pointer dispatch, UI tracking, matrix operations, noise generation, random distribution, Delaunay triangulation, image processing, typography, sound analysis, and canvas state updates.

Benchmarks now compare changes against the previous build in both Node.js and Chromium. Recorded baselines and correctness checks help prevent performance work from changing results accidentally.

TypeScript and packages

Documentation, demos, and accessibility

Testing and project maintenance

The old test setup was replaced by a larger Vitest suite covering Node.js, real-browser behavior, type contracts, integrations, and visual regressions. CI now checks formatting, linting, types, tests, documentation, bundles, package publishing, benchmarks, browser behavior, and the generated website before a change is merged.

The repository also gained consistent formatting and line-ending rules, cleaner package metadata, documented implementation plans, and repeatable generation scripts for builds, docs, guides, and the editor.

Compatibility notes

Most API changes are additive, but corrected bugs may produce different results when old code depended on incorrect behavior. TypeScript users may also see new compile errors where a function can legitimately return undefined; check the result before using it.

Img.load now returns a Promise instead of an Img: use const img = await Img.load(url), or use .then(...). If you need the instance before loading finishes, use const img = new Img() and then await img.load(url).

The original SVG static drawing helpers still accept a legacy DOM context; the explicit *Element names are available too, such as SVGForm.circleElement(ctx, pt, radius). SVGForm.styleTo is no longer available: use the form's fill, stroke, alpha, and font methods. Use form.text([10, 14], message) instead of form.log(message).

The following older APIs remain available but are deprecated:

For exact behavioral and TypeScript migration details, see the full project changelog.