frnsys / djinn

Urban simulation and market dynamics toolkit with connectors to popular machine learning tools

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Plugin architecture

MaxwellRebo opened this issue · comments

We'll need a clean, modular, extensible Plugin architecture. In particular these will be used to interface with third party tools, databases, other simulators (e.g. Gazebo), or provide custom data logging.

TODOs:

  • Define plugin architecture and interfaces with other components/classes
  • Define Plugin class
  • Define sensible subclasses, e.g. LoggingPlugin, DBPlugin

Note that in these issues I use the terms "class" and "subclass" loosely with respect to Rust's particular flavor of OOP. They may simply be traits, or some other way of accomplishing the same thing.

Also (maybe this should be a separate issue) but some kind of Python interop for plugins would be really nice.

(edit: nvm, see that this is already covered by #2)

It should be relatively straightforward to create bindings that way. A simple sklearn example would be a good place to start, clustering agent behaviors or something.