Support NumFOCUS during our 2021 Year-End Fundraiser!

Affiliated Projects

NumFOCUS Affiliated Projects benefit from their association with NumFOCUS through access to community, certain funding opportunities, and promotion of the project through our network. NumFOCUS Affiliated Projects are scientifically oriented, open, and kind. (What does that mean?) Affiliated Projects are not fiscally sponsored by NumFOCUS.

Affiliated Projects enjoy a number of benefits. If your project is interested in becoming a NumFOCUS Affiliated Project, click here to learn more.

Application Dates

Project Applications are accepted on a quarterly basis.

Application rounds will close on the following yearly dates:

January 15 (Round 1)
April 15 (Round 2)
July 15 (Round 3)
October 15 (Round 4)

Notifications will be sent on or before:

February 29 (Round 1)
May 31 (Round 2)
August 31 (Round 3)
November 30 (Round 4)

For questions or additional information about our Fiscal Sponsorship or Affiliation programs, please email us at .

In an effort to include more community input and involvement in our work, NumFOCUS has formed a committee around the selection process for our Affiliated Projects. This committee will be responsible for evaluating applications from open source projects for Affiliated Project status with NumFOCUS and working with applicant projects throughout the review process.

Affiliated Project Selection Committee Members



Dr. Larry Gray

Vice President


Florian Roscheck




Leopold Talirz



Logan Kilpatrick




Mark Mikofski



Paul Anzel



Rocco Meli


Vyas Ramasubramani





Adrin Jalali


Filipe Fernandes



AiiDA is a workflow manager for computational science with a strong focus on provenance, performance and extensibility. 

Read More

When executing a workflow, AiiDA records the provenance − calculations performed, codes used and data generated − in a directed acyclic graph tailored to provide full reproducibility of any given result.


Bqplot is a 2-D plotting library for Jupyter. Built upon the Jupyter widgets frameworks, it implements the grammar of graphics constructs. Beyond plotting, bqplot is focused on using plots to take user inputs in a rich fashion, and using it in combination with other Jupyter interactive widgets to build applications.


CB-Geo MPM is an HPC-enabled Material Point Method solver for large-deformation modeling. It supports isoparametric elements to model complex geometries and creates photo-realistic rendering.


Clawpack (“Conservation Laws Package”) is a collection of finite volume methods for linear and nonlinear hyperbolic systems of conservation laws.


Colour is an open-source Python package providing a comprehensive number of algorithms and datasets for colour science. It is freely available under the New BSD License terms.


Conda is an open source package management system and environment management system for installing multiple versions of software packages and their dependencies and switching easily between them.

Read More

It works on Linux, OS X and Windows, and was created for Python programs but can package and distribute any software.


CuPy is an open-source matrix library accelerated with NVIDIA CUDA. It also uses CUDA-related libraries including cuBLAS, cuDNN, cuRand, cuSolver, cuSPARSE, cuFFT and NCCL to make full use of the GPU architecture.
Read More

CuPy’s interface is highly compatible with NumPy; in most cases it can be used as a drop-in replacement. All you need to do is just replace numpy with cupy in your Python code. It supports various methods, indexing, data types, broadcasting and more.


Cython is an optimising static compiler for both the Python programming language and the extended Cython programming language (based on Pyrex). It makes writing C extensions for Python as easy as Python itself.


Dash is a Python framework for building analytical web applications. No JavaScript required. Built on top of Plotly.js, React, and Flask, Dash ties modern UI elements like dropdowns, sliders, and graphs to your analytical Python code.

Data Retriever

The Data Retriever is a package manager for data. It downloads, cleans, and stores publicly available data, so that analysts spend less time cleaning and managing data, and more time analyzing it.​


Devito is a Python package to implement optimized stencil computation (e.g., finite differences, image processing, machine learning) from high-level symbolic problem definitions. Devito builds on SymPy and employs automated code generation and just-in-time compilation to execute optimized computational kernels on several computer platforms, including CPUs, GPUs, and clusters thereof.


DyND is a C++ library for dynamic, multidimensional arrays.

Read More

It is inspired by NumPy, the Python array programming library at the core of the scientific Python stack, but tries to address a number of obstacles encountered by some of its users. Examples of this are support for variable-sized string, ragged array types, and convenient usage from C++. The library is in a preview development state, and can be thought of as a sandbox where features are being tried and tweaked to gain experience with them.

Effective Quadratures

Effective Quadratures is an open-source library for uncertainty quantification, machine learning, optimisation, numerical integration and dimension reduction – all using orthogonal polynomials. 

Read More

It is particularly useful for models / problems where output quantities of interest are smooth and continuous; to this extent it has found widespread applications in computational engineering models (finite elements, computational fluid dynamics, etc). It is built on the latest research within these areas and has both deterministic and randomized algorithms.


Gensim is a Python library providing scalable statistical semantics, analysis of plain-text documents for semantic structure, and retrieval of semantically similar documents.


GeomScale is open-source project that lies at the intersection of data science, optimization, geometric and statistical computing. It combines cutting-edge research efforts and results with state-of-the-art open source software tools for scientific computing , with the ambition to solve both research oriented and real-life problems.


GeoPandas is an open source project to make working with geospatial data in Python easier, focusing on tabular vector data.

Read More

GeoPandas extends the pandas data analysis library to allow spatial operations on geometric types provided by Shapely (python interface to GEOS). In addition, it provides file access based on fiona (GDAL) and coordinate transformations based on pyproj (PROJ). GeoPandas enables you to easily do operations in python that would otherwise require a spatial database or desktop GIS application.

GNU Radio

GNU Radio is a free & open-source software development toolkit that provides signal processing blocks to implement software radios.

Read More

 It can be used with readily-available low-cost external RF hardware to create software-defined radios, or without hardware in a simulation-like environment. It is widely used in research, industry, academia, government, and hobbyist environments to support both wireless communications research and real-world radio systems.


Gonum is a set of numeric and scientific libraries written for the Go programming language. Our primary aim was to build functionality similar to that of numpy + scipy and today we are close to achieving this goal.


Gridap provides a rich set of tools for the grid-based approximation of partial differential equations (PDEs) written 100% in the Julia programming language.


Numba gives you the power to speed up your applications with high performance functions written directly in Python.

Read More

With a few annotations, array-oriented and math-heavy Python code can be just-in-time compiled to native machine instructions, similar in performance to C, C++ and Fortran, without having to switch languages or Python interpreters.


ObsPy is an open-source project dedicated to provide a Python framework
for processing seismological data.

Read More

The goal of the ObsPy project is to facilitate rapid application
development for seismology.

 It provides parsers for common file formats, clients to access data
centers and seismological signal processing routines which allow the
manipulation of seismological time series (see Beyreuther et al. 2010,
Megies et al. 2011, Krischer et al. 2015).


Project Optuna

Project Optuna develops tools for optimizing deep learning and other tasks that use hyperparameters. Project Optuna is comprised of Optuna and Chainer.

Read More

Optuna is an open source hyperparameter optimization framework to automate hyperparameter search. Optuna provides eager search spaces for automated search for optimal hyperparameters using Python conditionals, loops, and syntax, state-of-the-art algorithms to efficiently search large spaces and prune unpromising trials for faster results, and easy parallelization for hyperparameter searches over multiple threads or processes without modifying code.

Chainer is a powerful, flexible, and intuitive deep learning framework, and other tools to automate machine learning in development as well, as part of its mission to simplify machine learning.


Open source data visualization and data analysis for novice and expert. Interactive workflows with a large toolbox.


poliastro is an open source (MIT) collection of Python functions useful in Astrodynamics and Orbital Mechanics, focusing on interplanetary applications. It provides a simple and intuitive API and handles physical quantities with units.


pomegranate is a Python module for fast and flexible probabilistic modeling inspired by the design of scikit-learn.

Read More

A primary focus of pomegranate is to abstract away the intricacies of a model from its definition, allowing users to easily prototype with complex models and training strategies. Its modular implementation allows for probability distributions to be swapped in or out for each other with ease and for models to be stacked within each other, yielding such delights as a mixture of Bayesian networks or a Gaussian mixture model Bayes classifier.


The Policy Simulation Library (PSL) is a collection of models and other software for public-policy decisionmaking. PSL is developed by independent projects that meet standards for transparency and accessibility. 

Read More

The PSL community encourages collaborative contribution and makes the tools it develops accessible to a diverse group of users.


pvlib python provides a set of functions and classes for simulating the performance of photovoltaic energy systems.


Fast and flexible physics-based battery models


PyLops is a Python library which facilitates solving large-scale inverse problems.

Read More

It provides many commonly used linear operators (e.g. convolution, wavelet transform, etc.) as matrix-free objects, and leverages them within iterative algorithms to solve ill-conditioned problems. Its high-level, expressive interface resembles the underlying mathematical formulation. Finally, it supports fully interchangeable CPU and GPU backends that are compatible with other native Python libraries such as NumPy and CuPy.


pyiron is an integrated development environment (IDE) for computational materials science. It enables scientists to upscale their workflows from rapid prototyping to high-performance computing.


PySAL is an open source cross-platform library for geospatial data science with an emphasis on vector data written in Python. It supports the development of high level applications for spatial analysis.


Free scientific and engineering development software used for numerical computations, and analysis and visualization of data using the Python programming language


PyTorch-Ignite is a high-level library to help with training neural networks in PyTorch


QuTiP is a software for simulating quantum systems. QuTiP aims to provide tools for user-friendly and efficient numerical simulations of open quantum systems.

Read More

It can be used to simulate a wide range of physical phenomenon in areas such as quantum optics, trapped ions, superconducting circuits and quantum nanomechanical resonators. In addition, it contains a number of other modules to simplify the numerical simulation and study of many topics in quantum physics such as quantum optimal control, quantum information, and computing.


scikit-bio is an open-source, BSD-licensed, python package providing data structures, algorithms, and educational resources for bioinformatics.


Sgkit is a Python package that provides a variety of population and statistical genetics methods through the use of general-purpose frameworks such as Xarray, Pandas, Dask and Zarr.


The signac framework is a complete solution for managing workflows operating on file-based data designed to scale to HPC systems.

Read More

By using a well-defined, indexable storage layout for data and metadata, signac streamlines generation of, access to, and analysis of data through a straightforward interface that naturally scales from laptops and workstations to leadership-class supercomputers. Additionally, operations on this data can be managed, parallelized, and easily submitted on supercomputing clusters.

The project has been published in the Journal of Computational Materials Science (DOI:10.1016/j.commatsci.2018.01.035) and the Proceedings of the SciPy 2018 conference (DOI:10.25080/Majora-4af1f417-016). It has also been presented at PyData Ann Arbor as well as eight scientific conferences in chemical engineering, materials science, and applied physics.


Solcore is a complete semiconductor solver able of modelling the optical and electrical properties of a wide range of solar cells, from quantum well devices to multi-junction solar cells.


Spack is a flexible package manager that builds multiple versions of packages for different configurations, platforms, and compilers.  It was created to deploy large-scale scientific simulations on HPC systems, but it can deploy software on Linux and macOS machines, as well.


Spyder is a powerful scientific environment written in Python, for Python, and designed by and for scientists, engineers and data analysts.

Read More

It features a unique combination of the advanced editing, analysis, debugging, and profiling functionality of a comprehensive development tool with the data exploration, interactive execution, deep inspection, and beautiful visualization capabilities of a scientific package. Furthermore, Spyder offers built-in integration with many popular scientific packages, including NumPy, SciPy, Pandas, IPython, QtConsole, Matplotlib, SymPy and more.


Statsmodels is a Python package that provides a complement to Scipy for statistical computations including descriptive statistics and estimation of statistical models.


Parallel and heterogeneous programming with high performance and simultaneous high productivity


Theano is a Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently.


Yellowbrick is a Python package that visualizes the data science workflow, allowing users to visually steer the feature, algorithm, and hyperparameter selection process by directly extending the Scikit-Learn API.


WESTPA (The Weighted Ensemble Simulation Toolkit with Parallelization and Analysis) is a high-performance Python framework

Read More

 for carrying out extended-timescale simulations of rare events with rigorous kinetics using the weighted ensemble algorithm of Huber and Kim (1996) (an overview is provided in this document and these slides). The software also includes (1) options for further enhancing the sampling efficiency through reassignment of weights according to either equilibrium or nonequilibrium steady state, and (2) plugins for using a weighted ensemble-based string method and the WExplore method.