Scruff is an AI framework to build agents that sense, reason, and learn in the world using a variety of models. It aims to integrate many different kinds of models in a coherent framework, provide flexibility in spatiotemporal modeling, and provide tools to compose, share, and reuse models and model components.
Scruff is provided as a Julia package and is licensed under the BSD-3-Clause License.
Warning: Scruff is rapidly evolving beta research software. Although the software already has a lot of functionality, we intend to expand on this in the future and cannot promise stability of the code or the APIs at the moment.
To download the package, from the Julia package manager, run
(v1.7) pkg> add Scruff
The Scruff tutorial can be found in the tutorial section of the documentation.
Scruff examples can be found in the examples/ directory.
Scruff uses Documenter.jl to generate its documentation. To build, navigate to the docs
folder and run
Scruff.jl\docs> julia --project=.. --color=yes make.jl
This will create a docs/build
directory with an index.html
file, which will contain the documentation.
To run the tests, activate the project as above and just run test
from the pkg
prompt. From the julia
prompt, include("test/runtests.jl")
can be used to run the tests.
Development against the Scruff codebase should only be done by branching the develop
branch.
The Scruff packages are split into four (4) main modules: Models
, Algorithms
, SFuncs
, and Operators
.
- To add to the
Models
module, add a.jl
file to thesrc/models/
directory andinclude
it in thesrc/models.jl
file - To add to the
Algorithms
module, add a.jl
file to thesrc/algorithms/
directory andinclude
it in thesrc/algorithms.jl
file - To add to the
SFuncs
module, add a.jl
file to thesrc/sfuncs/
directory andinclude
it in thesrc/sfuncs.jl
file - To add to the
Operators
module, add a.jl
file to thesrc/operators
directory andinclude
it in thesrc/operators.jl
file