What Is the Current Project Status and Toolset of SciRuby?
Updated
SciRuby is an active collection of Ruby libraries for scientific computing, and its most mature component is NMatrix, a released linear algebra library that supports both dense and sparse matrix storage. The project has also added tensor support and offers tools for machine learning and linear mixed modelling, alongside several experimental plotting libraries. If you need a battle-tested numerical stack, treat these gems as usable but not fully hardened — the project itself warns that mission-critical use should expect bugs.
Core toolset
NMatrix (linear algebra)
- Released and described as the SciRuby linear algebra library.
- Supports dense and sparse matrix storage.
- Recently gained tensor support.
- Documentation is available through the project's docs.
MDArray
- Listed as an ongoing linear algebra development target alongside NMatrix.
Visualisation and domain tools
- The project states it has "great visualisation tools" and tools for machine learning and linear mixed modelling.
- Experimental plotting libraries include Rubyvis, Plotrb, and Nyaplot.
- There is also interest in improving existing APIs such as Gnuplot.
Project status and short-term goals
| Area | Current state |
|---|---|
| Linear algebra | NMatrix released; MDArray under continued development |
| Matrix storage | Dense and sparse supported |
| Tensors | Support added recently |
| Visualisation | Several experimental libraries; APIs like Gnuplot targeted for improvement |
| Domain tools | Machine learning and linear mixed modelling available |
The stated short-term goals are:
- Improved visualisation software.
- Continued development of the linear algebra software (NMatrix and MDArray).
Getting the components
Installation instructions for the various SciRuby components are in the project's docs, with NMatrix documentation available separately. The project gives a direct caution: these gems have been tested but are not battle-hardened. If you plan to use NMatrix or other SciRuby components for mission-critical code — the project's own examples are a self-driving car or controlling an ARKYD 100 satellite — expect to encounter bugs and be prepared for them.
Community and contribution
- Google Group: subscription is available via an email signup form on the site.
- IRC:
#scirubyon Freenode.net; most active during Google Summer of Code months, though generally a few people are around. - Developers: the full roster is on the project wiki.
- Getting involved: the NMatrix issue tracker on GitHub is recommended as the best starting point — pick something that interests you and fork. The SciRuby issue tracker is an alternative if matrices aren't your focus.
Licensing
SciRuby and NMatrix are available under the BSD three-clause license.