Skip to content

Commit

Permalink
Move to Julia v1.9 and other doc updates (#817)
Browse files Browse the repository at this point in the history
* remove unused Requires package

* re-write README and make it doc intro

* re-work a bit the features list

* updated Latest news

* change doc generation to standardized JuliaDynamics

* initialize visualizations extension module

* port files from InteractiveDynamics

* include files

* extend abmplot

* extent ABMObservable

* extend convenience

* remove no longer necessary stuff

* also mention `nothing` on filtering in random nearby

* also highlight small source code

* also highlight small code

* port doc file from interactive dyns

* mvoe to Julia 1.9

* add update message

* visualization extension compiles

* change features to highlights

* remove using InteractiveDynamics

* define JuliaDynamics colors

* video typo

* daisywprld can be plotted with heatmap

* bring back utils

* version correction

* agent2string

* remove all references to interactive dynamics

* fix typo, commit an initial build docs with style

* actually no, dont commit build docs with style

* correct link to examples

* use light osm in docs

* simpler readme

* better default resolution

* add OSMMakie as conditional dependency and fix Zombies

* add zombie to zoo

* half examples done

* add a contributing section

* finish all examples but animations don't work...?

* example zoo is finally done...

* Update README.md

Co-authored-by: Tortar <[email protected]>

* cite example zoo in docs

* better mention the plotting change.

* just say "much" faster

---------

Co-authored-by: Tortar <[email protected]>
  • Loading branch information
Datseris and Tortar authored Jun 7, 2023
1 parent 8420209 commit 1112bdc
Show file tree
Hide file tree
Showing 33 changed files with 2,803 additions and 190 deletions.
3 changes: 1 addition & 2 deletions .codecov.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
ignore:
- "examples" # No need to cover the examples
- "src/models" # Examples provide integration testing here
- "src/visualization" # Plot recipes are soon to be unsupported
- "src/visualizations" # Plot recipes aren't tested
- "test"
- "docs"

6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# main

# v5.15
- Agents.jl moved to Julia 1.9+, and now exports visualization
and interactive applications automatically once Makie (or Makie backends
such as GLMakie) come into scope, using the new package extension system.
The only downside of this is that now to visualize ABMs on open street
maps, the package OSMMakie.jl must be explicitly loaded as well.
- Nearby look-ups with `nearby_positions`, `nearby_ids` and derivatives are now incrementally faster than before more the radius increases.
- The `randomwalk!` function is now supported for any number of dimensions in ContinuousSpace when used to create isotropic/uniform random walks. For all type of `AbstractGridSpace`, the `randomwalk!` function supports a new keyword `force_motion`, which is false by default. See the docs to be informed on the effect of setting this keyword. Besides, in the continuous space default case random walks are up to 2 times faster than before.
- The `ByProperty` scheduler can now accept any type of (ordered) properties, while before it was restricted to only floats. The `ByID` scheduler of an `UnremovableABM` is now as fast as the `Fastest` scheduler since in this case they are actually equivalent.
Expand Down
16 changes: 11 additions & 5 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name = "Agents"
uuid = "46ada45e-f475-11e8-01d0-f70cc89e6671"
authors = ["George Datseris", "Tim DuBois", "Aayush Sabharwal", "Ali Vahdati"]
version = "5.14.0"
authors = ["George Datseris", "Tim DuBois", "Aayush Sabharwal", "Ali Vahdati", "Adriano Meligrana"]
version = "5.15.0"

[deps]
CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b"
Expand All @@ -18,12 +18,19 @@ LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
ProgressMeter = "92933f4c-e287-5a05-a399-4b506db050ca"
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
Requires = "ae029012-a4dd-5104-9daa-d747884805df"
Rotations = "6038ab10-8711-5258-84ad-4b1120ba62dc"
Scratch = "6c6a2e73-6563-6170-7368-637461726353"
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91"

[weakdeps]
Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a"
OSMMakie = "76b6901f-8821-46bb-9129-841bc9cfe677"

[extensions]
AgentsVisualizations = "Makie"
AgentsOSMVisualizations = "OSMMakie"

[compat]
CSV = "0.9.7, 0.10"
DataFrames = "0.21, 0.22, 1"
Expand All @@ -34,12 +41,11 @@ JLD2 = "0.4"
LazyArtifacts = "1.3.0"
LightOSM = "0.2.0"
ProgressMeter = "1.5"
Requires = "0.5, 0.6, 0.7, 1.0, 1.1"
Rotations = "1.3"
Scratch = "1"
StaticArrays = "1"
StatsBase = "0.32, 0.33, 0.34"
julia = "1.5"
julia = "1.9"

[extras]
BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"
Expand Down
23 changes: 12 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# Agents.jl: agent-based modeling framework in Julia

![Agents.jl](https://github.com/JuliaDynamics/JuliaDynamics/blob/master/videos/agents/agents4_logo.gif?raw=true)

[![](https://img.shields.io/badge/docs-stable-blue.svg)](https://JuliaDynamics.github.io/Agents.jl/stable)
Expand All @@ -8,20 +6,23 @@
[![codecov](https://codecov.io/gh/JuliaDynamics/Agents.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/JuliaDynamics/Agents.jl)
[![Package Downloads](https://shields.io/endpoint?url=https://pkgs.genieframework.com/api/v1/badge/Agents)](https://pkgs.genieframework.com?packages=Agents)

Agents.jl is a [Julia](https://julialang.org/) framework for agent-based modeling (ABM). All further information about Agents.jl are provided in the docs.
Agents.jl is a pure [Julia](https://julialang.org/) framework for agent-based modeling (ABM): a computational simulation methodology where autonomous agents react to their environment (including other agents) given a predefined set of rules.
Some major highlights of Agents.jl are:

## Contributions
1. It is fast (faster than MASON, NetLogo, or Mesa)
2. It is simple: has a very short learning curve and requires writing minimal code
3. Has an extensive interface of thousands of out-of-the box possible agent actions
4. Straightforwardly allows simulations on Open Street Maps

Any contribution to Agents.jl is welcome! For example you can:
The simplicity of Agents.jl is due to the intuitive space-agnostic modelling approach we have implemented: agent actions are specified using generically named functions (such as "move agent" or "find nearby agents") that do not depend on the actual space the agents exist in, nor on the properties of the agents themselves. Overall this leads to ultra fast model prototyping where even changing the space the agents live in is matter of only a couple of lines of code.

* Add new feature or improve an existing one (plenty to choose from the "Issues" page)
* Improve the existing documentation
* Add new example ABMs into our existing pool of examples
* Report bugs and suggestions in the Issues page
More information and an extensive list of features can be found in the documentation, which you can either find [online](https://juliadynamics.github.io/Agents.jl/stable/) or build locally by running the `docs/make.jl` file.

## Citation

If you use this package in a publication, please cite the paper below:
If you use this package in a publication, or simply want to refer to it,
please cite the paper below:

```
@article{Agents.jl,
doi = {10.1177/00375497211068820},
Expand All @@ -36,4 +37,4 @@ If you use this package in a publication, please cite the paper below:
volume = {0},
number = {0},
}
```
```
2 changes: 1 addition & 1 deletion docs/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ FileIO = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549"
GLMakie = "e9467ef8-e4e7-5192-8a1a-b1aee30e663a"
GraphRecipes = "bd48cda9-67a9-57be-86fa-5b3c104eda73"
ImageMagick = "6218d12a-5da1-5696-b52f-db25d2ecc6d1"
InteractiveDynamics = "ec714cd0-5f51-11eb-0b6e-452e7367ff84"
Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6"
LightOSM = "d1922b25-af4e-4ba3-84af-fe9bea896051"
OSMMakie = "76b6901f-8821-46bb-9129-841bc9cfe677"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
Literate = "98b081ad-f1c9-55d3-8b20-4c87d4299306"
Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7"
Expand Down
Loading

0 comments on commit 1112bdc

Please sign in to comment.