Willow Project
Sierra Project
Thoth Project

SPArse Modeling Software
now open-source!


What is SPAMS?

SPAMS (SPArse Modeling Software) is an optimization toolbox for solving various sparse estimation problems.
  • Dictionary learning and matrix factorization (NMF, sparse PCA, ...)
  • Solving sparse decomposition problems with LARS, coordinate descent, OMP, SOMP, proximal methods
  • Solving structured sparse decomposition problems (l1/l2, l1/linf, sparse group lasso, tree-structured regularization, structured sparsity with overlapping groups,...).
It is developed and maintained by Julien Mairal (Inria), and contains sparse estimation methods resulting from collaborations with various people: notably, Francis Bach, Jean Ponce, Guillermo Sapiro, Rodolphe Jenatton and Guillaume Obozinski.

It is coded in C++ with a Matlab interface. Interfaces for R and Python have been developed by Jean-Paul Chieze, and archetypal analysis was written by Yuansi Chen. Release of version 2.6 and porting to R-3.x and Python3.x was done by Ghislain Durif (Inria).

The porting to Python3.x is based on this patch.


This work was supported in part by the SIERRA and VIDEOWORLD ERC projects, and by the MACARON ANR project.


Version 2.1 and later are open-source under licence GPLv3. For other licenses, please contact the authors.

A monograph about sparse estimation

We encourage the users of SPAMS to read the following monograph, which contains numerous applications of dictionary learning, an introduction to sparse modeling, and many practical advices.

Related publications

You can find here some publications at the origin of this software.
The "matrix factorization" and "sparse decomposition" modules were developed for the following papers: The "proximal" module was developed for the following papers: The feature selection tools for graphs were developed for" The incremental and stochastic proximal gradient algorithm correspond to the following papers


27/02/2017: SPAMS v2.6 is released, including precompiled Matlab packages, R-3.x and Python3.x compatibility.
25/05/2014: SPAMS v2.5 is released.
12/05/2013: SPAMS v2.4 is released.
05/23/2012: SPAMS v2.3 is released.
03/24/2012: SPAMS v2.2 is released with a Python and R interface, and new compilation scripts for a better Windows/Mac OS compatibility.
06/30/2011: SPAMS v2.1 goes open-source!
11/04/2010: SPAMS v2.0 is out for Linux and Mac OS!
02/23/2010: Windows 32 bits version available! Elastic-Net is implemented.
10/26/2009: Mac OS, 64 bits version available!

Last modification: