Open Source Projects Link to heading
This page lists some open source projects I’m working on, which I hope may useful for at least someone other than me!
If you do go check anything out - send me some feedback (e.g. via a GitHub issue), I’d love to know what you think!
Python Link to heading
BTreeny Link to heading
I’m a big fan of PyTrees as a comprehensive and robust way to build Behaviour Trees in Python, however I’ve always felt that the class-based lifecycles and significant number of batteries-included decisions make it quite boilerplate-y. It also doesn’t leverage the type system as well as I’d like, meaning blackboard types can easily get out of whack.
I initially built BTreeny as a learning tool, a way of expressing trees using simple Python functions, with some basic visualizations. However the more I’ve played with it the more I’ve enjoyed its simplicity and type-safety-first approach to tree creation and management!
If you do go check it out - send me some feedback (e.g. via a GitHub issue), I’d love to know what you think!
UtilitAI Link to heading
While Behaviour trees are a brilliantly flexible and composable way of generating complex behaviours, including retrying and interruption, it doesn’t help your agent solve the problem of “what should I do next?”. This is where utilitai comes in as a neat implementation of the Utility AI framework in Python.
Rust Link to heading
RSTIN Link to heading
I stumbled across MARTINI a while back and thought it was just brilliant. This is an (early-stage) Rust rewrite of that project, with a focus on exporting GLB and OBJ files for 3D printing and computer graphics. There’s an example working with Bevy too, but I’ve yet to get a GeoTIFF import going, or figure out the best way to do texture mapping from satellite data (or mapbox-like slippy tiles, which is a Bevy plugin I’d love to make).