recurrentjs
Deep Recurrent Neural Networks and LSTMs in Javascript. More generally also arbitrary expression graphs with automatic differentiation.
RecurrentJS is a JavaScript library for building and training RNN and LSTM neural networks directly in the browser, letting you generate text like character-by-character sentence prediction.
What RecurrentJS Does
RecurrentJS is a JavaScript library that lets you build and train neural networks—specifically powerful ones designed to understand sequences of data, like text or time series. The main appeal is that you can run these models directly in a web browser. The included demo shows this in action: you feed it sentences, and it learns to predict what letter comes next. After training, it can generate entirely new sentences that sometimes read almost naturally, all from learning the patterns character by character.
How It Works
The library's core is a system called a "Graph" that tracks how data flows through mathematical operations. You define matrices (numbers arranged in grids) and connect them with operations like multiplication and addition. The clever part is automatic differentiation—the library automatically figures out how to adjust the weights backwards through all these operations to improve the model's predictions. This is similar to how professional machine learning frameworks work, but written in JavaScript so it runs in your browser. The library comes pre-built with two popular neural network architectures: RNNs (Recurrent Neural Networks) and LSTMs (Long Short-Term Memory networks), which are especially good at learning from sequences because they have memory that carries information forward.
Who Would Use It
This is for people who want to experiment with neural networks without setting up heavy software infrastructure. A researcher might use it to build a quick prototype or demo. A student learning how neural networks work would find it useful because they can see the code and watch the training happen in real time in a browser. Web developers interested in adding machine learning capabilities to interactive projects could use it to generate text, predict sequences, or build other pattern-recognition features—all without needing a backend server.
Important Caveat
The README itself warns this is beta-quality code. It works, but it's rough around the edges and requires you to understand neural networks fairly well to use effectively. You need to manually set up loss functions and understand backpropagation. It's not a polished, beginner-friendly framework—it's more of a learning tool or experimental playground for people who already know what they're doing.
Where it fits
- Train a character-level text generator that runs entirely in the browser, no backend needed.
- Prototype a sequence model quickly to demo how RNNs and LSTMs learn from data.
- Study automatic differentiation and backpropagation by reading and running the library's Graph code live.
- Add text generation or sequence prediction features to an interactive web project.