Skip to main content

LOESS Project

PyPI fastloess (Python) CI

One LOESS to Rule Them All
One LOESS to Rule Them All

The fastest, most robust, and most feature-complete language-agnostic LOESS (Locally Estimated Scatterplot Smoothing) implementation for Rust, Python, R, Julia, Node.js, C++, Go, Java, and WebAssembly.

The loess-project also offers bindings for Rust, Python, R, Julia, Node.js, WebAssembly, C++, Go, and Java — see the full repository.


Installation & Documentation

Currently available for R, Python, Rust, Julia, Node.js, WebAssembly, and C++. See the Installation Guide for detailed installation instructions.

📚 View the full documentation


LOESS vs. LOWESS

Feature LOESS (This Crate) LOWESS
Polynomial Degree Linear, Quadratic, Cubic, Quartic Linear (Degree 1)
Dimensions Multivariate (n-D support) Univariate (1-D only)
Flexibility High (Distance metrics) Standard
Complexity Higher (Matrix inversion) Lower (Weighted average/slope)

Read more about how LOESS works in the Concepts.

Note: For a LOWESS implementation, use lowess-project.


Why this package?

Speed

fastLoess beats the competition by being 47.3× faster than R's stats::loess in serial mode and 236.4× faster in parallel compared to R's stats::loess; speedups vary by workload, and parallel execution is not always faster. For datasets of 1,000 points or fewer, serial execution is advised.

For more details on the performance comparison, see the Benchmarks page.

Robustness

This implementation is more robust than R's loess due to two key design choices:

MAD-Based Scale Estimation:

For robustness weight calculations, this crate uses Median Absolute Deviation (MAD) for scale estimation:

s = median(|r_i - median(r)|)

In contrast, R's loess uses the median of absolute residuals (MAR):

s = median(|r_i|)
  • MAD is a breakdown-point-optimal estimator—it remains valid even when up to 50% of data are outliers.
  • The median-centering step removes asymmetric bias from residual distributions.
  • MAD provides consistent outlier detection regardless of whether residuals are centered around zero.

Boundary Padding:

This crate applies a range of different boundary policies at dataset edges:

  • Extend: Repeats edge values to maintain local neighborhood size.
  • Reflect: Mirrors data symmetrically around boundaries.
  • Zero: Pads with zeros (useful for signal processing).
  • NoBoundary: Original Cleveland behavior

R's loess does not apply boundary padding, which can lead to:

  • Biased estimates near boundaries due to asymmetric local neighborhoods.
  • Increased variance at the edges of the smoothed curve.

Features

A variety of features, supporting a range of use cases:

Feature This package R (stats)
Polynomial Degree 5 (0–4) 2 (1 or 2)
Kernel 7 options only Tricube
Robustness Weighting 3 options only Bisquare
Scale Estimation 3 options only MAR
Distance Metric 6 options normalized only
Boundary Padding 4 options no padding
Zero Weight Fallback 3 options no
Auto Convergence yes no
Online Mode yes no
Streaming Mode yes no
Confidence Intervals yes no
Prediction Intervals yes no
Diagnostics (RMSE, R2, AIC) yes no
Cross-Validation 2 options no
Parallel Execution yes no
no-std Support yes no

Validation

All implementations are numerical twins of R's loess:

Aspect Status Details
Accuracy ✅ EXACT MATCH Max diff < 1e-12 across all scenarios
Consistency ✅ PERFECT Multiple scenarios pass with strict tolerance
Robustness ✅ VERIFIED Robust smoothing matches R exactly

Contributing

Contributions are welcome! Please see CONTRIBUTING.md for more information.

License

Licensed under MIT or Apache-2.0.

Citation

If you use this software in your research, please cite it using the CITATION.cff file or the BibTeX entry below:

@software{loess_project,
  author = {Valizadeh, Amir},
  title = {LOESS Project: High-Performance Locally Estimated Scatterplot Smoothing},
  year = {2026},
  url = {https://github.com/thisisamirv/loess-project},
  license = {MIT OR Apache-2.0}
}

Metadata

Release files for fastloess 3.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fastloess 3.0.0
File Size Uploaded Provenance Actions
fastloess-3.0.0.tar.gz 1.0 MB With provenance Details for fastloess-3.0.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for fastloess 3.0.0
File Actions
fastloess-3.0.0-cp38-abi3-win_arm64.whl CPython 3.8 abi3 Windows ARM64 Details for fastloess-3.0.0-cp38-abi3-win_arm64.whl
fastloess-3.0.0-cp38-abi3-win_amd64.whl CPython 3.8 abi3 Windows x86-64 Details for fastloess-3.0.0-cp38-abi3-win_amd64.whl
fastloess-3.0.0-cp38-abi3-musllinux_1_2_x86_64.whl CPython 3.8 abi3 Linux musl 1.2+ x86-64 Details for fastloess-3.0.0-cp38-abi3-musllinux_1_2_x86_64.whl
fastloess-3.0.0-cp38-abi3-musllinux_1_2_aarch64.whl CPython 3.8 abi3 Linux musl 1.2+ ARM64 Details for fastloess-3.0.0-cp38-abi3-musllinux_1_2_aarch64.whl
fastloess-3.0.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 abi3 Linux glibc 2.17+ x86-64 Details for fastloess-3.0.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
fastloess-3.0.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.8 abi3 Linux glibc 2.17+ ARM64 Details for fastloess-3.0.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
fastloess-3.0.0-cp38-abi3-macosx_11_0_arm64.whl CPython 3.8 abi3 macOS 11.0+ ARM64 Details for fastloess-3.0.0-cp38-abi3-macosx_11_0_arm64.whl
fastloess-3.0.0-cp38-abi3-macosx_10_12_x86_64.whl CPython 3.8 abi3 macOS 10.12+ x86-64 Details for fastloess-3.0.0-cp38-abi3-macosx_10_12_x86_64.whl

Total release size: 6.7 MB

Release files / fastloess-3.0.0.tar.gz

Download URL fastloess-3.0.0.tar.gz
Size 1.0 MB
Tags Source
SHA-256 checksum
How to use checksums
d4a2e3192c0691dd19993379ac1d6cf5f6fcf1888e3447bf9a81f00d06152c90
BLAKE2b-256 checksum
How to use checksums
18c1d6154dc9788cff39e929a14128b72178069da1e4ed54ed3c9b3b2fa9ea6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / fastloess-3.0.0-cp38-abi3-win_arm64.whl

Download URL fastloess-3.0.0-cp38-abi3-win_arm64.whl
Size 545.3 kB
Tags CPython 3.8 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
8bda16443344afb675c53b516f88638c15afc5494b6facefe645ba4dce2b225a
BLAKE2b-256 checksum
How to use checksums
4a182aea88260c96c054603c0d55c17a26f355fdb8a29b69aa3e8bd355ea32f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / fastloess-3.0.0-cp38-abi3-win_amd64.whl

Download URL fastloess-3.0.0-cp38-abi3-win_amd64.whl
Size 596.0 kB
Tags CPython 3.8 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
36b54ecd346e3e28688a9fbf781fc4c0ebd328a4e02a7bb0b803e360dfa1865e
BLAKE2b-256 checksum
How to use checksums
f4446423e7c057c4a87fd6ca1f8cddddb1f577fbc6a94606bd9f624fae7ced1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / fastloess-3.0.0-cp38-abi3-musllinux_1_2_x86_64.whl

Download URL fastloess-3.0.0-cp38-abi3-musllinux_1_2_x86_64.whl
Size 929.2 kB
Tags CPython 3.8 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
351647f20b85c35881b4435579260fa41d2be93e6cdb9b50b0dd2aa5db432fdf
BLAKE2b-256 checksum
How to use checksums
8cfe9905d19edc625162089ce673d378af48c59e6b4cfee60fb3be7c94203532
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / fastloess-3.0.0-cp38-abi3-musllinux_1_2_aarch64.whl

Download URL fastloess-3.0.0-cp38-abi3-musllinux_1_2_aarch64.whl
Size 856.0 kB
Tags CPython 3.8 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
cdb513d68b137c5b24d39a0deb39f075e48ed83392ce5377a888c1c3465d32e0
BLAKE2b-256 checksum
How to use checksums
e7ae16ffcd53a127994d3ddac1589ca5b246f81e9c7d7b33755ddbe2fbc18d78
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / fastloess-3.0.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL fastloess-3.0.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 716.2 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
fa48a1f5a931654b7f1d1e3bf71fdc53ad6f0bf540b528eaaf60f1f4558a6b71
BLAKE2b-256 checksum
How to use checksums
601470db4701bf04b5d05d3acd64d96f0074571f2ff85ad86e62d41869be21e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / fastloess-3.0.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL fastloess-3.0.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 677.4 kB
Tags CPython 3.8 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
0ab6c384ac9e050842db99d9bad85ac339f52003beb39cb3ecebe1300c55ebfd
BLAKE2b-256 checksum
How to use checksums
d2544a9181525a017e32ce67c714ed9f7d7fd5a19a7bf76c333dfbb125fc92ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / fastloess-3.0.0-cp38-abi3-macosx_11_0_arm64.whl

Download URL fastloess-3.0.0-cp38-abi3-macosx_11_0_arm64.whl
Size 640.1 kB
Tags CPython 3.8 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ebd0dcb54c2fb1331a4fee288bf60f642bfd8fbe63bca0f438d33a68edf59332
BLAKE2b-256 checksum
How to use checksums
4106981b55a8674d8e275dd4d3ddd44ee36462a1ac34971e97f1e2aa01e447d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / fastloess-3.0.0-cp38-abi3-macosx_10_12_x86_64.whl

Download URL fastloess-3.0.0-cp38-abi3-macosx_10_12_x86_64.whl
Size 674.6 kB
Tags CPython 3.8 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
6c3f115be15d7cfdede87278b2acfc3ba00d7ccfd7e631a158a4289024a9add0
BLAKE2b-256 checksum
How to use checksums
b8f1155989aeb07f0f078158b4bbe8e178268f7b23fcfad874010aeb6e547dfb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Security for fastloess 3.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 9 files in this release have been uploaded with provenance metadata.

Select from 9 files

Attestation for fastloess-3.0.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page