{
  "_id": "6acbadb4fe5cc25786e92384",
  "Type": "Package",
  "Package": "particles",
  "Title": "A Graph Based Particle Simulator Based on D3-Force",
  "Version": "0.2.4.9000",
  "Authors@R": "c(\nperson(\"Thomas Lin\", \"Pedersen\", , \"thomasp85@gmail.com\", role = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0000-0002-5147-4711\")),\nperson(\"Andrei\", \"Kashcha\", role = \"ctb\")\n)",
  "Maintainer": "Thomas Lin Pedersen <thomasp85@gmail.com>",
  "Description": "Simulating particle movement in 2D space has many\napplication. The 'particles' package implements a particle\nsimulator based on the ideas behind the 'd3-force' 'JavaScript'\nlibrary. 'particles' implements all forces defined in\n'd3-force' as well as others such as vector fields, traps, and\nattractors.",
  "License": "MIT + file LICENSE",
  "URL": "https://github.com/thomasp85/particles",
  "BugReports": "https://github.com/thomasp85/particles/issues",
  "VignetteBuilder": "knitr",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.2",
  "Config/build/compilation-database": "true",
  "Config/pak/sysreqs": "libglpk-dev libicu-dev libxml2-dev",
  "Repository": "https://thomasp85.r-universe.dev",
  "Date/Publication": "2024-12-03 09:10:14 UTC",
  "RemoteUrl": "https://github.com/thomasp85/particles",
  "RemoteRef": "HEAD",
  "RemoteSha": "6c3af60216aa4188c65c0054bd9d10d9e3b8cf54",
  "NeedsCompilation": "yes",
  "Packaged": {
    "Date": "2026-10-11 15:34:42 UTC",
    "User": "root"
  },
  "Author": "Thomas Lin Pedersen [aut, cre] (ORCID:\n<https://orcid.org/0000-0002-5147-4711>),\nAndrei Kashcha [ctb]",
  "_user": "thomasp85",
  "_type": "src",
  "_file": "particles_0.2.4.9000.tar.gz",
  "_fileid": "https://r2.ropensci.org/5425a18f9e08fba50dc7f92c94be4f38b832840cc37793ab90a920085806be63",
  "_filesize": 960957,
  "_sha256": "5425a18f9e08fba50dc7f92c94be4f38b832840cc37793ab90a920085806be63",
  "_expires": "2027-01-19T15:39:31.000Z",
  "_created": "2026-10-11T15:34:42.000Z",
  "_published": "2026-10-11T15:39:32.855Z",
  "_buildurl": "https://github.com/r-universe/thomasp85/actions/runs/38151635668",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_jobs": [
    {
      "job": 114506871417,
      "time": 151,
      "config": "linux-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11706767412"
    },
    {
      "job": 114506871480,
      "time": 164,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11707321056"
    },
    {
      "job": 114506871496,
      "time": 146,
      "config": "linux-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11707045934"
    },
    {
      "job": 114506871429,
      "time": 158,
      "config": "linux-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11707231192"
    },
    {
      "job": 114506871456,
      "time": 126,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11706727843"
    },
    {
      "job": 114506871441,
      "time": 241,
      "config": "macos-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11707191631"
    },
    {
      "job": 114506871464,
      "time": 129,
      "config": "macos-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11707390425"
    },
    {
      "job": 114506871494,
      "time": 210,
      "config": "macos-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11707181504"
    },
    {
      "job": 114506180644,
      "time": 201,
      "config": "source",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11707495345"
    },
    {
      "job": 114506871576,
      "time": 100,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "11707206232"
    },
    {
      "job": 114506871437,
      "time": 215,
      "config": "windows-devel-arm64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11706787522"
    },
    {
      "job": 114506871476,
      "time": 164,
      "config": "windows-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "11706762417"
    },
    {
      "job": 114506871425,
      "time": 113,
      "config": "windows-oldrel-x86_64",
      "r": "4.5.3",
      "check": "OK",
      "artifact": "11705844739"
    },
    {
      "job": 114506871471,
      "time": 212,
      "config": "windows-release-arm64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11707470366"
    },
    {
      "job": 114506871406,
      "time": 134,
      "config": "windows-release-x86_64",
      "r": "4.6.1",
      "check": "OK",
      "artifact": "11707445787"
    }
  ],
  "_upstream": "https://github.com/thomasp85/particles",
  "_commit": {
    "id": "6c3af60216aa4188c65c0054bd9d10d9e3b8cf54",
    "author": "Thomas Lin Pedersen <thomasp85@gmail.com>",
    "committer": "Thomas Lin Pedersen <thomasp85@gmail.com>",
    "message": "Increment version number to 0.2.4.9000\n",
    "time": 1733217014
  },
  "_maintainer": {
    "name": "Thomas Lin Pedersen",
    "email": "thomasp85@gmail.com",
    "login": "thomasp85",
    "mastodon": "@thomasp85@fosstodon.org",
    "linkedin": "in/thomasp85",
    "orcid": "0000-0002-5147-4711",
    "twitter": "@thomasp85",
    "description": "Maker of tools focusing on data science and data visualisation",
    "uuid": 1775316
  },
  "_distro": "resolute",
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "cpp11",
      "role": "LinkingTo"
    },
    {
      "package": "digest",
      "role": "Imports"
    },
    {
      "package": "dplyr",
      "role": "Imports"
    },
    {
      "package": "igraph",
      "role": "Imports"
    },
    {
      "package": "mgcv",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "tidygraph",
      "role": "Imports"
    },
    {
      "package": "covr",
      "role": "Suggests"
    },
    {
      "package": "ggraph",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "role": "Suggests"
    }
  ],
  "_owner": "thomasp85",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [],
  "_tags": [],
  "_topics": [
    "d3js",
    "graph-layout",
    "network",
    "network-visualization",
    "particles",
    "simulation",
    "cpp"
  ],
  "_stars": 122,
  "_contributors": [
    {
      "user": "thomasp85",
      "count": 125,
      "uuid": 1775316
    },
    {
      "user": "waschina",
      "count": 2,
      "uuid": 32539757
    }
  ],
  "_userbio": {
    "uuid": 1775316,
    "type": "user",
    "name": "Thomas Lin Pedersen",
    "followers": 3282,
    "description": "Maker of tools focusing on data science and data visualisation"
  },
  "_downloads": {
    "count": 301,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/particles"
  },
  "_mentions": 6,
  "_devurl": "https://github.com/thomasp85/particles",
  "_searchresults": 51,
  "_rbuild": "4.6.1",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/manual.pdf",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/particles.html",
    "extra/readme.html",
    "extra/readme.md",
    "LICENSE"
  ],
  "_homeurl": "https://github.com/thomasp85/particles",
  "_realowner": "thomasp85",
  "_cranurl": true,
  "_releases": [
    {
      "version": "0.2.1",
      "date": "2018-02-26"
    },
    {
      "version": "0.2.2",
      "date": "2019-01-14"
    },
    {
      "version": "0.2.3",
      "date": "2022-08-19"
    },
    {
      "version": "0.2.4",
      "date": "2024-12-03"
    }
  ],
  "_exports": [
    "activate",
    "add_particles",
    "aquarium_genesis",
    "bigbang_genesis",
    "center_force",
    "clear_history",
    "collision_force",
    "dominator_constraint",
    "evolutions",
    "evolve",
    "field_force",
    "filter",
    "get_history",
    "history_length",
    "impose",
    "infinity_constraint",
    "is.simulation",
    "link_force",
    "manybody_force",
    "map_force",
    "mean_force",
    "mutate",
    "mutate_all",
    "mutate_at",
    "particles",
    "path_constraint",
    "petridish_genesis",
    "phyllotactic_genesis",
    "polygon_constraint",
    "position",
    "predefined_genesis",
    "random_force",
    "record",
    "reheat",
    "reimpose",
    "replace_particles",
    "reset_force",
    "rewield",
    "simulate",
    "slice",
    "trap_force",
    "unimpose",
    "unwield",
    "velocity",
    "velocity_constraint",
    "wield",
    "x_constraint",
    "x_force",
    "y_constraint",
    "y_force"
  ],
  "_help": [
    {
      "page": "center_force",
      "title": "Center all particles around the origin without affecting velocity",
      "concept": [
        "forces"
      ],
      "topics": [
        "center_force"
      ]
    },
    {
      "page": "collision_force",
      "title": "Models particles as circles with a given radius and pushes overlapping particles apart",
      "concept": [
        "forces"
      ],
      "topics": [
        "collision_force"
      ]
    },
    {
      "page": "dominator_constraint",
      "title": "Restrict child position based on parent position",
      "concept": [
        "constraints"
      ],
      "topics": [
        "dominator_constraint"
      ]
    },
    {
      "page": "evolve",
      "title": "Move the simulation forward one or more steps",
      "topics": [
        "evolve"
      ]
    },
    {
      "page": "field_force",
      "title": "Apply a vector field to particles",
      "concept": [
        "forces"
      ],
      "topics": [
        "field_force"
      ]
    },
    {
      "page": "genesis",
      "title": "Particle initialisation",
      "topics": [
        "aquarium_genesis",
        "bigbang_genesis",
        "genesis",
        "petridish_genesis",
        "phyllotactic_genesis",
        "predefined_genesis"
      ]
    },
    {
      "page": "wield",
      "title": "Assign a force or constraint to a simulation",
      "topics": [
        "impose",
        "reimpose",
        "rewield",
        "unimpose",
        "unwield",
        "wield"
      ]
    },
    {
      "page": "infinity_constraint",
      "title": "Reposition particles outside a canvas so they wrap around",
      "concept": [
        "constraints"
      ],
      "topics": [
        "infinity_constraint"
      ]
    },
    {
      "page": "link_force",
      "title": "Attract or repel linked particles",
      "concept": [
        "forces"
      ],
      "topics": [
        "link_force"
      ]
    },
    {
      "page": "manybody_force",
      "title": "Model attraction or repulsion between all particles in the system",
      "concept": [
        "forces"
      ],
      "topics": [
        "manybody_force"
      ]
    },
    {
      "page": "map_force",
      "title": "Apply a map to particles",
      "concept": [
        "forces"
      ],
      "topics": [
        "map_force"
      ]
    },
    {
      "page": "mean_force",
      "title": "Apply the mean velocity of all the neighbors to a particle",
      "concept": [
        "forces"
      ],
      "topics": [
        "mean_force"
      ]
    },
    {
      "page": "path_constraint",
      "title": "Limit particle position to be along a path or outline",
      "concept": [
        "constraints"
      ],
      "topics": [
        "path_constraint"
      ]
    },
    {
      "page": "polygon_constraint",
      "title": "Fixes particles to be inside a polygon",
      "concept": [
        "constraints"
      ],
      "topics": [
        "polygon_constraint"
      ]
    },
    {
      "page": "random_force",
      "title": "Modify the velocity randomly at each step",
      "concept": [
        "forces"
      ],
      "topics": [
        "random_force"
      ]
    },
    {
      "page": "reset_force",
      "title": "Reset the velocity verlet of particles to a fixed value",
      "concept": [
        "forces"
      ],
      "topics": [
        "reset_force"
      ]
    },
    {
      "page": "simulate",
      "title": "Start a simulation based on a graph",
      "topics": [
        "clear_history",
        "evolutions",
        "get_history",
        "history_length",
        "is.simulation",
        "particles",
        "position",
        "record",
        "reheat",
        "simulate",
        "simulation",
        "velocity"
      ]
    },
    {
      "page": "simulation_modification",
      "title": "Modify the particles in a simulation",
      "topics": [
        "add_interaction",
        "add_particles",
        "replace_particles",
        "simulation_modification"
      ]
    },
    {
      "page": "trap_force",
      "title": "Attract and trap particles within polygons",
      "concept": [
        "forces"
      ],
      "topics": [
        "trap_force"
      ]
    },
    {
      "page": "velocity_constraint",
      "title": "Limits particles to a specific velocity range",
      "concept": [
        "constraints"
      ],
      "topics": [
        "velocity_constraint"
      ]
    },
    {
      "page": "x_constraint",
      "title": "Fixes particles to a horizontal position",
      "concept": [
        "constraints"
      ],
      "topics": [
        "x_constraint"
      ]
    },
    {
      "page": "x_force",
      "title": "Attract particles towards a horizontal position",
      "concept": [
        "forces"
      ],
      "topics": [
        "x_force"
      ]
    },
    {
      "page": "y_constraint",
      "title": "Fixes particles to a vertical position",
      "concept": [
        "constraints"
      ],
      "topics": [
        "y_constraint"
      ]
    },
    {
      "page": "y_force",
      "title": "Attract particles towards a vertical position",
      "concept": [
        "forces"
      ],
      "topics": [
        "y_force"
      ]
    }
  ],
  "_pkglogo": "https://github.com/thomasp85/particles/raw/HEAD/man/figures/logo.png",
  "_readme": "https://github.com/thomasp85/particles/raw/HEAD/README.md",
  "_rundeps": [
    "cli",
    "cpp11",
    "digest",
    "dplyr",
    "generics",
    "glue",
    "igraph",
    "lattice",
    "lifecycle",
    "magrittr",
    "Matrix",
    "mgcv",
    "nlme",
    "pillar",
    "pkgconfig",
    "purrr",
    "R6",
    "rlang",
    "stringi",
    "stringr",
    "tibble",
    "tidygraph",
    "tidyr",
    "tidyselect",
    "utf8",
    "vctrs",
    "withr"
  ],
  "_sysdeps": [
    {
      "shlib": "libstdc++",
      "package": "libstdc++6",
      "source": "gcc",
      "version": "16-20260322-1ubuntu1",
      "name": "c++",
      "homepage": "http://gcc.gnu.org/",
      "description": "GNU Standard C++ Library v3"
    }
  ],
  "_vignettes": [
    {
      "source": "intro.Rmd",
      "filename": "intro.html",
      "title": "Introduction to Particles",
      "author": "Thomas Lin Pedersen",
      "engine": "knitr::rmarkdown",
      "headings": [
        "What is particles?",
        "Setting up a simulation",
        "Tidy eval",
        "Iteration callback",
        "Summing up"
      ],
      "created": "2018-02-21 21:06:56",
      "modified": "2022-08-19 11:49:32",
      "commits": 4
    }
  ],
  "_score": 7.271051261492348,
  "_indexed": true,
  "_nocasepkg": "particles",
  "_universes": [
    "thomasp85"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.4.9000",
      "date": "2026-10-11T15:37:06.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "6c3af60216aa4188c65c0054bd9d10d9e3b8cf54",
      "fileid": "https://r2.ropensci.org/31cfa07c0e654c4722340924eca0f96ed85fafe2d3f0d0ed73caae42322b66a6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/thomasp85/actions/runs/38151635668"
    },
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "0.2.4.9000",
      "date": "2026-10-11T15:37:09.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "6c3af60216aa4188c65c0054bd9d10d9e3b8cf54",
      "fileid": "https://r2.ropensci.org/f18c059bc3438bdab7143d5a1092de24d13e014d57b3f7872ba4c433abf60b14",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/thomasp85/actions/runs/38151635668"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.2.4.9000",
      "date": "2026-10-11T15:37:05.000Z",
      "distro": "resolute",
      "arch": "aarch64",
      "commit": "6c3af60216aa4188c65c0054bd9d10d9e3b8cf54",
      "fileid": "https://r2.ropensci.org/e69c510dfe3d1f1a61ec629ddca3a600231a2e3bf72804634084f7dce68f96a7",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/thomasp85/actions/runs/38151635668"
    },
    {
      "r": "4.6.1",
      "os": "linux",
      "version": "0.2.4.9000",
      "date": "2026-10-11T15:37:20.000Z",
      "distro": "resolute",
      "arch": "x86_64",
      "commit": "6c3af60216aa4188c65c0054bd9d10d9e3b8cf54",
      "fileid": "https://r2.ropensci.org/2d3be23cef4223b144742d508f5a7d858f0159148dc63c5389d2b584e104d40f",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/thomasp85/actions/runs/38151635668"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.2.4.9000",
      "date": "2026-10-11T15:37:33.000Z",
      "arch": "aarch64",
      "commit": "6c3af60216aa4188c65c0054bd9d10d9e3b8cf54",
      "fileid": "https://r2.ropensci.org/f79480cd09444c00f08a5284f49143c612a6cbad86f53a78fa8739aee7fdaf65",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/thomasp85/actions/runs/38151635668"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "0.2.4.9000",
      "date": "2026-10-11T15:38:04.000Z",
      "arch": "x86_64",
      "commit": "6c3af60216aa4188c65c0054bd9d10d9e3b8cf54",
      "fileid": "https://r2.ropensci.org/f12d0e72d1127e58ee812df2a1098130ef13e704bd0f962502f3a5019e832a47",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/thomasp85/actions/runs/38151635668"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.2.4.9000",
      "date": "2026-10-11T15:37:48.000Z",
      "arch": "aarch64",
      "commit": "6c3af60216aa4188c65c0054bd9d10d9e3b8cf54",
      "fileid": "https://r2.ropensci.org/1979da121f74028ce8fb875c15df7b843ae8792bce36190547ecec1874f8d5c0",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/thomasp85/actions/runs/38151635668"
    },
    {
      "r": "4.6.1",
      "os": "mac",
      "version": "0.2.4.9000",
      "date": "2026-10-11T15:37:53.000Z",
      "arch": "x86_64",
      "commit": "6c3af60216aa4188c65c0054bd9d10d9e3b8cf54",
      "fileid": "https://r2.ropensci.org/bb0e545ff23313b3b806b12a7e567b68e5f63b521c325e5f912e43e843068458",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/thomasp85/actions/runs/38151635668"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "0.2.4.9000",
      "date": "2026-10-11T15:36:47.000Z",
      "arch": "emscripten",
      "commit": "6c3af60216aa4188c65c0054bd9d10d9e3b8cf54",
      "fileid": "https://r2.ropensci.org/92d3fa2c0fe9ceb53bc2b39261c6e72035c64ee8766745976750161b9281ea08",
      "status": "success",
      "buildurl": "https://github.com/r-universe/thomasp85/actions/runs/38151635668"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.2.4.9000",
      "date": "2026-10-11T15:37:48.000Z",
      "arch": "aarch64",
      "commit": "6c3af60216aa4188c65c0054bd9d10d9e3b8cf54",
      "fileid": "https://r2.ropensci.org/c17652f5fd44395b8b5751a0aae30a5472b2af047369f1f0f9a78b46b1ffb3b6",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/thomasp85/actions/runs/38151635668"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "0.2.4.9000",
      "date": "2026-10-11T15:36:08.000Z",
      "arch": "x86_64",
      "commit": "6c3af60216aa4188c65c0054bd9d10d9e3b8cf54",
      "fileid": "https://r2.ropensci.org/574d79a032ba6c786b14d9038cdf3e0e258438f8e3b6f313cacb316076433df0",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/thomasp85/actions/runs/38151635668"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "0.2.4.9000",
      "date": "2026-10-11T15:35:58.000Z",
      "arch": "x86_64",
      "commit": "6c3af60216aa4188c65c0054bd9d10d9e3b8cf54",
      "fileid": "https://r2.ropensci.org/5095d2df330beefa812faad067c3a0fab0c17d780efc1e98ed4f4cbb55e03ff8",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/thomasp85/actions/runs/38151635668"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.2.4.9000",
      "date": "2026-10-11T15:37:48.000Z",
      "arch": "aarch64",
      "commit": "6c3af60216aa4188c65c0054bd9d10d9e3b8cf54",
      "fileid": "https://r2.ropensci.org/cc5f0b62f6602d69ef28033e2d30a56cdd11872f9b89b32a704fab3349c8a913",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/thomasp85/actions/runs/38151635668"
    },
    {
      "r": "4.6.1",
      "os": "win",
      "version": "0.2.4.9000",
      "date": "2026-10-11T15:36:24.000Z",
      "arch": "x86_64",
      "commit": "6c3af60216aa4188c65c0054bd9d10d9e3b8cf54",
      "fileid": "https://r2.ropensci.org/b1b050bce78f9cf79ec172cc701f84f9176b50f2f68fa9fe05c80233cabf8fab",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/thomasp85/actions/runs/38151635668"
    }
  ]
}