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.
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)
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.
AiiDA is a workflow manager for computational science with a strong focus on provenance, performance and extensibility.
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.
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.
It works on Linux, OS X and Windows, and was created for Python programs but can package and distribute any software.
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.
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.
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 is an open-source library for uncertainty quantification, machine learning, optimisation, numerical integration and dimension reduction – all using orthogonal polynomials.
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.
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.
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 is a free & open-source software development toolkit that provides signal processing blocks to implement software radios.
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.
Numba gives you the power to speed up your applications with high performance functions written directly in Python.
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.
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 develops tools for optimizing deep learning and other tasks that use hyperparameters. Project Optuna is comprised of Optuna and Chainer.
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.
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.
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.
The PSL community encourages collaborative contribution and makes the tools it develops accessible to a diverse group of users.
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.
QuTiP is a software for simulating quantum systems. QuTiP aims to provide tools for user-friendly and efficient numerical simulations of open quantum systems.
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.
The signac framework is a complete solution for managing workflows operating on file-based data designed to scale to HPC systems.
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.
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.
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.
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
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.
NumFOCUS plays such a critical role in the scientific python ecosystem. Happy to support a great cause!