PackageTrack
Sign in Get early access

perfect_freehand

Draw perfect pressure-sensitive freehand lines. A set of functions for turning input points into a polygon of outline points.

2.5.2 6.4K downloads/mo #3506 most downloaded on pub.dev steveruizok/perfect-freehand-dart

What this package is like to depend on

Last release 6 months ago

26 Jan 2026

Ships unpredictably

gaps range from 8 days to 2.3 years

Nearly every release is documented

notes for 19 of 19 stable releases

Nothing withdrawn

no release was ever pulled

5 years old

19 releases · first in 2021

5 releases in the last 12 months

see the full history below

Release timeline

19 releases · Oct 2021 to Jan 2026
2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 19
  1. 2.5.2 26 Jan 2026
    Release notes
    • Added more dartdoc comments.
    • Gave some love to the online demo.
    Open source →
  2. 2.5.2+1 26 Jan 2026
    Release notes
    • Fixed a pub.dev analysis issue with dot shorthands.
    Open source →
  3. 2.5.1 13 Nov 2025
    Release notes
    • Fix: Fixed NaN values appearing with some inputs, especially those with non-null pressure values.
    Open source →
  4. 2.5.0 06 Sep 2025
    Release notes
    • Fix: Path segments (separated by sharp angles) are now properly connected, preventing unexpected thinness at elbows.
    • Fix: Right angles are now properly treated as sharp angles (so the corner can be rounded out).
    • Fix: Less detail is lost near the end of a stroke. This results in less flickering while drawing.
    • Fix: PointVector.lerp better handles the case when one point has a non-null pressure and the other has a null pressure.

    Before and after with sharp corners:

    <img width="300" height="180" alt="v2.4.0" src="https://github.com/user-attachments/assets/46951a57-3f29-4792-97fd-3383627aa5f0" /> <img width="300" height="180" alt="v2.5.0" src="https://github.com/user-attachments/assets/110267f5-3dfd-4223-bb06-30accbaf4146" />

    You can see more before/after comparison images in the Fix elbows and sharp corners, #24 pull request.

    As always, you can demo the new version in the online demo.

    Open source →
  5. 2.4.1 29 Aug 2025
    Release notes
    • Round stroke end caps are now full circles again (i.e. the change from 2.4.0 was reverted). This fixes sharp corners caused by small turns at the end of a stroke: see #23 for more details.
    Open source →
  6. 2.4.0 26 Aug 2025
    Release notes
    • Round stroke end caps are now half circles instead of full circles, reducing unnecessary polygon points, thanks to @dodgog in #14.
    • Fixed a bug when using the rememberSimulatedPressure flag with a list of exactly 2 points, thanks to @ZebraVogel94349 in #21.
    • Implemented PointVector.toString().
    Open source →
  7. 2.4.0+1 26 Aug 2025
    Release notes
    • Fixed image not loading on pub.dev README
    Open source →
  8. 2.3.2 14 Feb 2024
    Release notes
    • Fixed an error in toJson() when taperEnabled is true but customTaper is null.
    Open source →
  9. 2.3.1 06 Feb 2024
    Release notes
    • Fixed an error that occured when trying to lerp a NaN point.
    Open source →
  10. 2.3.0 14 Jan 2024
    Release notes
    • Added toJson() and fromJson() methods to StrokeOptions.
    Open source →
  11. 2.2.0 13 Jan 2024
    Release notes
    • Breaking change: The properties of StrokeOptions are now non-nullable. This means that e.g. StrokeOptions.smoothing now defaults to StrokeOptions.defaultSmoothing instead of null. Note that you can change the defaults.
    Open source →
  12. 2.1.0 12 Jan 2024
    Release notes
    • Breaking change: getStroke(points, options) is now getStroke(points, options: options).
    • You can now run getStroke(points, rememberSimulatedPressure: true) to store the simulated pressure values in the points list. (#12)
    Open source →
  13. 2.0.1 11 Jan 2024
    Release notes
    • Fixed an edge case where we have an input of two equal points.
    Open source →
  14. 2.0.0 11 Jan 2024
    Release notes
    • 2.0.0 is a complete re-port of the original JavaScript library to Dart. There are some breaking changes, but the API is mostly the same and some automatic migration is possible by running dart fix --apply.
    Open source →
  15. 1.0.4 05 Oct 2021
    Release notes
    • One more fix to README.
    Open source →
  16. 1.0.3 05 Oct 2021
    Release notes
    • Pub score optimizations.
    • Improve README.
    • Add FUNDING.
    Open source →
  17. 1.0.2 04 Oct 2021
    Release notes
    • Fix README.
    Open source →
  18. 1.0.1 04 Oct 2021
    Release notes
    • Fix README.
    Open source →
  19. 1.0.0 04 Oct 2021
    Release notes
    • Initial version
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive