github ↗

community

Built on Raven.

Research code and libraries that use Raven, from the people who write them.

Built something with Raven? Add it to this page with a pull request, or tell us about it in an issue.

add your project ↗open an issue ↗

01 — research

Methods from papers, in OCaml.

The Hennequin lab also teaches Raven to its new members: its getting-started course ↗ works through Nx, Rune and Vega with runnable examples and exercises, ending in a small model trained end to end.

02 — libraries

Libraries on top of Raven.

ModelKit

asara-io

Classical machine learning, like scikit-learn: immutable estimator specifications, pipelines fitted only on training rows, deterministic cross-validation and search, and portable fitted models. Its modelkit-nx and modelkit-talon packages take Nx tensors and Talon columns, checked.

geom

hennequin-lab/murder

Batched geometric algebra for robotics: Euclidean, projective and conformal models of space, with forward and differential kinematics. Every multivector is an Nx tensor, so it broadcasts, differentiates with Rune and compiles.

dilqr

hennequin-lab/murder

Differentiable iterative LQR for discrete-time optimal control. Gradients come implicitly from the solution rather than by unrolling the iterations, in reverse or forward mode, and a fixed-iteration solve compiles with Rune into one program whose size does not grow with the horizon.

SoundML

gabyfle

Audio processing for OCaml, on Nx: reading, writing and resampling audio files.

What people who use Raven say

in use

We chose OCaml early, for the language itself: the type system, the expressiveness, the confidence that comes from code that doesn’t fall over at runtime. For years we made that choice despite the numerical ecosystem, not because of it. We wrote a lot of our own tooling, and we accepted the tradeoff.

Raven removes the tradeoff. Our models are type-safe from end to end. JIT compilation to GPU makes acceleration seamless, without rewriting our code or leaving the language. And the effects-based design is a joy to use: it feels like OCaml, not like a port of something else.

What impressed me most was how effortless raven made porting and unifying our previously disparate libraries under one framework. We have never been more productive.”

Guillaume Hennequin ↗Professor of Computational Neuroscience, University of Cambridge