Open Code = Better Science

NumFOCUS supports and promotes world-class, innovative, open source scientific software. Most individual projects, even the wildly successful ones, find the overhead of a non-profit to be too large for their community to bear. NumFOCUS provides a critical service as an umbrella organization for this projects.

The following projects will be participating under the NumFOCUS umbrella:

  • Cantera - Cantera is a library to solve problems involving thermodynamics, chemical kinetics, and transport.
  • conda-forge - A community led collection of recipes, build infrastructure and distributions for the conda package manager.
  • Data Retriever - The Data Retriever is a package manager for data.
  • FEniCS Project - FEniCS is an automated finite element library used to solve equations used in modeling, featuring a domain-specific language and automated code generation.
  • Gensim - "Topic Modelling for Humans." Gensim is an open-source Python library for topic modelling, document indexing and similarity retrieval with large corpora.
  • Julia - Julia is a high-level, high-performance dynamic programming language for numerical computing. It provides a sophisticated compiler, distributed parallel execution, numerical accuracy, and an extensive mathematical function library.
  • MDAnalysis - MDAnalysis is a Python library to analyze trajectories from molecular dynamics (MD) simulations.
  • PyMC3 - PyMC3 is a python module for Bayesian statistical modeling and model fitting which focuses on advanced Markov chain Monte Carlo and variational fitting algorithms.
  • Stan - Stan is a probabilistic programming language for data analysis, enabling automatic inference for a large class of statistical models.
  • Shogun - Shogun is and open-source machine learning library that offers a wide range of efficient and unified machine learning methods.
  • yt - yt is a community-developed analysis and visualization toolkit for examining datasets in a variety of scientific disciplines.

Visit our page for more information.

lightbulb_outline View ideas list


  • python
  • julia
  • r
  • javascript
  • c++


  • Science and Medicine
  • statistical computing
  • machine learning
  • high performance computing
  • big data
  • data visualization
email Mailing list
mail_outline Contact email

NumFOCUS 2018 Projects

  • Fabian Löschner
    [fenics] Maximizing performance on modern architectures with data-level parallelism
    In the solution process of problems discretized using FEM, the assembly of element level tensors to the global matrix often contributes a significant...
  • Yiannis Simillides
    A FEniCS wrapper in Julia
    We continue work done on a FEniCS wrapper in Julia. We further optimize it, and add more functionality, so users can access a richer API, and solve...
  • Pietro Vertechi
    A modern tool for data exploration based on JuliaDB and WebIO
    We will combine the JuliaDB.jl package, for tabular data manipulations in Julia, with WebIO.jl and InteractNext.jl to build a user-friendly web-based...
  • Ashley Kelly
    Accessing SPH data and interpolating onto grids
    yt is a package for analyzing and visualizing volumetric data. The current infrastructure of yt is designed to deal with adaptive mesh refinement...
  • Sharan Yalburgi
    Alternative computational engines for PyMC3
    PyMC3 is based on Theano, and uses it for creating and computing the graph that comprises the probabilistic model. Given the discontinuation of...
  • Sean Innes
    Compiling Julia to WebAssembly
    This project would bring the mathematical prowess of Julia to the web with the near native performance of WebAssembly. The expected outcome of this...
  • Igor Baratta
    Complex Number support in FEniCS
    In many fields of science and engineering (such as electrodynamics, acoustics, and quantum mechanics), the partial differential equations (PDEs) can...
  • Avik Pal
    Computer Vision using Flux.jl
    Currently, FluxML/model-zoo has very few examples demonstrating the usage of Flux. In this project, I propose to implement several Convolutional...
  • Justin Calamari
    Conda-Forge Bot for Automatic Updates of Recipes
    Conda-forge is a collection of recipes, build infrastructure, and distributions for the conda package manager that makes it easy for developers to...
  • Wuwei Lin
    Continuous Detoxification
    Shogun is a powerful machine learning toolkit. The project has a long history and a huge codebase. Some parts are very outdated and not...
  • Tejan Karmali
    Enriching Model Zoo of Flux.jl
    I propose to add a wide variety of models in the model zoo of Flux. Currently, the model zoo lacks the latest architectures and algorithms in...
  • Bill Engels
    Extending Gaussian Process Functionality in PyMC3
    This main focus of this project will be to extend the functionality of the PyMC3 Gaussian process module. I plan to focus my contribution on...
  • Mohamed Mohamed
    Fast Extremal Eigenvalue Iterative Solver with Preconditioners
    In this project, I will implement the locally optimal block preconditioned conjugate gradient (LOBPCG) algorithm for finding extremal generalized...
  • Neethu Mariya Joy
    FluxJS Demos
    FluxJS is a tool to export Flux models to javascript using deeplearn.js. Since Flux is a new library, it is essential to have lots of examples...
  • Eeshan Gupta
    Guaranteed Root Finding and Global Optimization with Intervals
    Interval arithmetic provides a way to perform computations with continuous sets of real numbers or vectors, for example to bound the range of a...
  • Yuanjie Jiang
    Implement a Plug Flow Reactor Model with Surface Chemistry
    In this proposal, the governing equations and boundary conditions of the plug flow reactor with surface chemistry are discussed (Details see Section...
  • Lauri Nyman
    Implementing Eigenvalue Problem Solvers for Sparse Matrices in Julia
    The aim of this project is to implement eigenvalue problem solvers for sparse matrices in Julia in order to reduce the dependency of Julia language...
  • Davide Cruz
    Implementing on-the-fly coordinate transformations
    Implement trajectory transformations on the MDAnalysis API, to be called on-the-fly by the user, eliminating the requirement for multiple...
  • Ayush Suhane
    Improve Distance Search Methods in MDAnalysis
    With the capability of multiple MD codes to easily handle milions of atoms, a major roadblock to analysis of this vast amount of data corresponding...
  • Abhishek Singh
    Improve Test Coverage and Test Performance
    This project focuses to improve yt's test framework. At present, yt's Python code coverage is only 25% (unit and answer testing) and the test runtime...
  • Jiawei Li
    Improvements for JuliaNLSolvers
    Improvements for JuliaNLSolvers could be made in three parts: documentation, benchmarks and functionality. Currently, LsqFit.jl, and NLsolve.jl only...
  • Shubham Shukla
    Inside the Black Box
    Shogun Machine Learning Toolbox aims at offering a wide range of efficient and unified machine learning algorithms with great accessibility. In this...
  • Benjamin Chu
    Iterative Hard thresholding for Genetic Analysis
    Recent advances in molecular biotechnologies demand fast and innovative algorithms to analyze them effectively. One promising proximal-type algorithm...
  • Aditya Puranik
    Julia package for Minecraft API
    A package which uses the Minecraft Pi API and corresponding mod for Java version to build cool stuff. Accompanied with documentation and tutorials to...
  • Anthony Wang
    Makie.jl – GSoC 2018 Proposal
    Makie.jl is a new plotting library for Julia, providing an interface for GLVisualize, with emphasis on interactivity and speed. The current...
  • Ayush Shridhar
    Model Import, Export and Computer Vision in Julia
    In the upcoming summers, I aim to achieve six objectives in three different fields. These are: 1. Model Import : I plan on making a reader for...
  • Agustina Arroyuelo
    Module for Approximate Bayesian Computation
    Module for Approximate Bayesian Computation Approximate Bayesian Computation (ABC) algorithms, also called likelihood free inference techniques, are...
  • Dmitry Persiyanov
    Multi-stream API
    Gensim is an NLP library which claims to be highly effective during training and produce linear performance growth with increasing the number of...
  • Xingjian Guo
    Native Julia Implementation of Exponential Runge-Kutta Integrators
    Exponential integrators have received a lot of attention in recent years as a viable alternative to implicit schemes for stiff systems. In...
  • Shubham Maddhashiya
    Native Julia solvers for ordinary differential equations and algebraic differential equations
    I propose to implement Variable Step Size Multistep Methods, Variable Order Variable Step Size Multistep Methods, IMEX Multistep Methods and IMEX...
  • Aneesh Yogesh Joshi
    Neural Networks for Similarity Learning
    Reseachers and Industry experts alike turn to gensim for easy-to-pick up and production ready code. Recently, Deep Learning techniques have taken the...
  • Arijit Kar
    Object Tracking in Julia
    Object tracking is the process of locating a moving object (or multiple objects) over time using a camera. It has a variety of uses, some of which...
  • Soham Tamba
    Parallel Graph Development
    LightGraphs is a Julia package that implements several commonly used graph algorithms. The objective of the package is to provide the functionality...
  • Vaibhav Dixit
    Parameter estimation for nonlinear dynamical models.
    A differential equation model of a dynamical system is a nonlinear parameterized model that is created to match realistic scenarios and occasionally...
  • Sebastian Pfitzner
    Performance Linting for Juno
    Julia is capable of delivering very good performance (in many cases on par with optimized C), but some of the concepts that enable this performance...
  • Matthew C. Kelley
    Speech recognition for the Flux model zoo
    Details of deep learning models and their performance are, unfortunately, often published without accompanying implementation code. Those models that...
  • Apoorva Pandey
    Status Server and Dashboard
    Data retriever provides a number of publicly available datasets. These datasets are not stored at a single location but are downloaded from various...
  • Yingbo Ma
    Stiffness Detection and Automatic Switching Algorithms for OrdinaryDiffEq.jl and Tooling for ModelingToolkit.jl
    Stiff ordinary differential equations (ODEs) and differential algebraic equations (DAEs) with high index number are problems present in physical...
  • Pranita Sharma
    Synchronize R API with the Python Data Retriever API and improve usability of R package
    Augment R API for Data Retriever with a versatile install function, robust Python detection and visualization widgets.
  • Mikhail Vaganov
    Tooling for N-body Simulations in Julia
    A large number of interacting bodies is the key component in explanation of many physical phenomena. From the gravitational interaction of stars and...