Thank you for your interest in contributing! Rich Learning is a C#/.NET framework for continual reinforcement learning with topological graph memory.
- New Domain Encoders — Implement
IStateEncoderfor robotics, NLP, game AI, finance, etc. - Alternative Graph Backends — Implement
IGraphMemorywith SQLite, Redis, in-memory, or other databases. - New PoC Experiments — Demonstrate continual learning on your domain. Real data is strongly preferred.
- Performance Optimizations — SIMD intrinsics, Span usage, GPU acceleration, parallel processing.
- Documentation & Tutorials — Help others understand and use the framework.
- Bug Fixes — Found an issue? Fix it and send a PR.
- Fork the repo and clone your fork.
- Install .NET 10 SDK and Neo4j.
- Run the tests:
dotnet build && dotnet run -- SplitMnist - Create a feature branch:
git checkout -b feature/my-awesome-encoder - Make your changes with clear commit messages.
- Submit a Pull Request.
- C# 12+ with nullable reference types enabled.
- async/await for all I/O operations (Neo4j, file, network).
- XML doc comments on all public APIs.
- Records for immutable data models.
- Interfaces for extensibility points (IStateEncoder, IGraphMemory, etc.).
- No external ML frameworks — pure C# numerical code for core components.
- Create a folder under
src/RichLearning/PoC/YourDomain/ - Implement a domain-specific
IStateEncoder - Create a demo class with a
RunAsyncmethod - Use real data — download datasets or include small test datasets
- Compare against at least one baseline (bare neural net, EWC, etc.)
- Wire it up in
Program.cs
- Code builds without errors:
dotnet build - New code has XML doc comments
- No new warnings introduced
- PR description explains what and why
- Real data used (not simulated/hardcoded) for PoCs
Be respectful, constructive, and welcoming. We're here to advance the science of continual learning together.
Open an issue or start a discussion. We're happy to help you get started!