GSoC/GCI Archive
Google Summer of Code 2015

Ruby Science Foundation

License: New and Simplified BSD licenses

Web Page:

Mailing List:!forum/sciruby-dev

We believe that the time for a Ruby science and visualization package has come. Sometimes when a solution of sugar and water becomes super-saturated, from it precipitates a pure, delicious, and diabetes-inducing crystal of sweetness, induced by no more than the tap of a finger. So it is today with numeric and visualization libraries for Ruby.

The SciRuby project is oriented towards providing computational research infrastructure. Infrastructure was the single common area of need identified by scientists, researchers, and engineers in discussions at the GSoC 2013 mentor summit. SciRuby consists of a fairly large number of gems, including statsample, statsample-glm, statsample-timeseries, distribution, minimization, integration, rubyvis, plotrb, Nyaplot, MDArray, Publisci, Ruby-Band, and NMatrix.

The last of these has been awarded grants by the Ruby Association (which develops the Ruby language) as well as Brighter Planet, and has a goal of supplying Ruby with a robust, versatile linear algebra library with support for both dense and sparse matrices. Statsample and its related packages (e.g., distribution) aim to provide the Ruby language with statistical analysis packages.

A major portion of our gems have been written by GSoC students — including Nyaplot, plotrb, PubliSci, Ruby-Band, statsample-timeseries, and statsample-glm. Others, like minimization and integration, have been overhauled over the course of Summer of Code projects.

Working on SciRuby is a chance to get involved at the ground floor on a project which is viewed as critical by many Rubyists, including Ruby's creator, Matz. Further, since we are a science-related project, we expect that successful student projects could lead to publications. Better yet, you might get to see your code go into orbit, or used to save lives in biomedical research.


  • Adding Linear Mixed Effects Models Support to SciRuby The GSoC 2015 SciRuby Linear Mixed Model project suits my skills and interests nearly perfectly. I am a third year Mathematics PhD student at Tulane University working on statistics and machine learning. I have substantial experience with mixed models. I have worked with basic linear mixed effects models, mixed effect smoothing spline methods, and incorporation of linear mixed effects into sparse linear regression models. My programming languages of choice are R, C++ and, more recently, Ruby.
  • Create new nmatrix gem for advanced linear algebra features NMatrix installation is difficult because it requires the ATLAS library which provides advanced linear algebra features. I propose to remove the dependency on ATLAS by moving these features to a separate gem package and by allowing the use of alternate linear algebra libraries.
  • Gnuplot gem update The goal of this project is to redesign gnuplot gem from the ground. The old one was developed a long ago and nowadays requires some hacks to use new gnuplot features and avoid bugs. I aim to provide SciRuby with new easy-to-use robust gem for gnuplot.
  • Increasing the capabilities of daru (Data Analysis in Ruby) Daru (Data Analysis in Ruby) is a gem which aims to bring analysis, manipulation and visualization of data to ruby. It already offers data storage and compatibility with other SciRuby gems. This project aims to increase the capabilities of daru with: * Complete compatibility with statsample * Indexing on TimeSeries and compatibility with statsample-timeseries. * Arel-like querying syntax for DataFrame.
  • Ruby bindings to the CSymPy C++ symbolic library CSymPy is a fast C++ library for symbolic manipulation, it has optional Python bindings (that provide seamless interoperation with SymPy. The goal of this project would be to provide Ruby bindings, thus providing a very fast computer algebra system for Ruby.